Logo

SuperWillow

Overview

SuperWillow is a Music Generation program.

Artists have many influences which they have accumulated over the years by listening to countless pieces of music, this principle is reflected in SuperWillow. The computer analyses (listens to) many pieces of music and composes music by sampling from the analysis.

Demos

Demos
midipdf
Human Input 1listenread
Human Input 2listenread
Partial AI 1listenread

Current Status (Alpha)

Currently the system is able to compose music using (visible and hidden) Markov models (of higher and first order) or user input. The next step is implementing mixed order.

Technical

The library of music pieces which are analysed by SuperWillow are all in MusicXML format. This notation format is widely used by music notation programs, like Finale, Sibelius, Guitar Pro, etc. making it a standard for exchanging music notation data. PyScore, a python package, includes converts to Guido and MIDI formats and with its extension PyScore-Ly is can also convert to Lilypond format, implying usability in the opensource community.

Generation uses a sequence of XML operations. These XML operations use the xml tools: DOM and XSLT and can recieve input from probabilistic models or human input. Each step outputs valid MusicXML and can be imported into any supporting software. The generated music can then be edited using these software to capture riffs, add another instrument, change timbre, etc.

History

This project was created as part of a Walter Schulze's masters thesis, A Formal Language Theory Approach To Music Generation.

Thesis Abstract: We investigate the suitability of applying some of the probabilistic and automata theoretic ideas, that have been extremely successful in the areas of speech and natural language processing, to the area of music style imitation. By using music written in a certain style as training data, parameters are calculated for (visible and hidden) Markov models (of mixed, higher or first order) in order to capture the music style of the training data in terms of mathematical models. These models are then used to imitate two instrument music in the trained style. Since tree based models have recently attracted significant interest in natural language processing, the suitability of these formalisms when applying them to the problem of generating music in a MusicXML format is investigated.

Links

Download
Walter Schulze (Creator)
Willow (Original Spawn)
Python Powered SourceForge.net Logo Valid XHTML 1.0 Transitional Valid CSS! LibXML2 wxWidgets Lilypond KGuitar Inkscape