← Back to Explore

Pyco: An Algorithmic Composer

ISEF · 2017 Systems Software

Overview

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.

Competition history

  • ISEF 2017 Systems Software · Entry SOFT040T

Resources

Related projects

Closest projects by meaning, across every fair and year in the corpus.

Source: Regeneron International Science and Engineering Fair

Save projects to your library

Sign in with Google to keep track of projects you find interesting, organized into folders. Browsing stays public.

Continue with Google