Abstract Search

ISEF | Projects Database | Finalist Abstract

Back to Search Results | Print PDF

Pyco: An Algorithmic Composer

Booth Id:

Systems Software


Finalist Names:
Kaimio, Lassi
Hauhio, Iikka

In this paper we describe a composing program written in Python. The purpose of the program is to ease the work of a human composer by providing inspiration. It is also possible to generate music in situations where hiring a composer is not possible. The algorithm could be used for example by small companies that need songs for advertisements. The program works in several phases. First, it generates verses, chord progressions and rhythms from given input. After this, it generates the melody by creating one measure long random melodies and combining these together. Lastly, the program improves the melody by applying a group of transformations to it that improve a “goodness metric” of notes. The user can customize the song in great detail and change the order of the verses, their structure and even select custom rythms and chord progressions. The program can save the composition as a MIDI, OGG or PDF sheet music file. These files can be used to play the composition with an instrument or create an electronic music arrangement. We succeeded in creating many good-sounding compositions. The program is easy to use and allows making music effortlessly. However, the generated music is quite simple and the program can’t create a structure for the composition. A human must arrange the pieces manually. In the future we are planning to add an option for the user to select the genre of the music, making it easier to create music that matches the needs.