What it does
The program uses a weighted algorithm to generate rhythm and pitch for a 8 measure long segment. The algorithm currently utilizes mostly randomization of favored intervals, but will support a self balancing weight shift during generation.
How I built it
The program is built in Java and produces a .ly file for LilyPond Music Engraver (http://lilypond.org/) The program is geared to be modular for both key and meter, but only Common Time and C Major classes are currently implemented.
Challenges I ran into
The nature of music requires a knowledge of intended past and future actions, and is hard to replicate with an iterative process. While I have produced something that looks vaguely correct as "music", whether it actually fulfills that term is up for debate.
What's next for PartWriter
The next steps would be to expand the capabilities of the software. Enabling multiple keys and meters within the existing framework. The algorithm that selects the pitches could also use an overhaul to update the weights as the system generates each note. These expanded capabilities would also be bundled into some semblance of a user interface.
Built With
- java
- lilypond
Log in or sign up for Devpost to join the conversation.