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 | ||||
---|---|---|---|---|
composition | midi | audio | MusicXML | |
Human Input - First Order | listen | read | Please Refresh or go to Adobe and download flash player | |
Human Input - First Order | listen | read | Please Refresh or go to Adobe and download flash player | |
Partial AI - First Order | listen | read | Please Refresh or go to Adobe and download flash player | |
AI - Mixed Order (style Burger) | listen | Please Refresh or go to Adobe and download flash player | import | |
AI - Mixed Order (style Burger) | listen | Please Refresh or go to Adobe and download flash player | import | |
AI - Higher Order (style Burger) | listen | Please Refresh or go to Adobe and download flash player | import | |
AI - Mixed Order (style Melted) | listen | Please Refresh or go to Adobe and download flash player | import | |
AI - Mixed Order (style Melted) | listen | Please Refresh or go to Adobe and download flash player | import | |
AI - Higher Order (style Melted) | listen | Please Refresh or go to Adobe and download flash player | import | |
AI - Mixed Order (style Schulze) | listen | Please Refresh or go to Adobe and download flash player | import | |
AI - Mixed Order (style Schulze) | listen | Please Refresh or go to Adobe and download flash player | import | |
AI - Higher Order (style Schulze) | listen | Please Refresh or go to Adobe and download flash player | import |
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 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 (visible and hidden Markov models of mixed, higher or first order) or human input. Each step outputs valid MusicXML and can be imported into any supporting software for viewing/editing.
History
This project was created as part of 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 musical 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 musical style of the training data in terms of mathematical models. These models are then used to imitate two instrument music in the trained style.
Links
Download (beta) |
Installation |
Article on IEEE Multimedia - Music Generation with Mixed and Higher Order Markov Models |
Walter Schulze (Creator) |
Willow (Original Spawn) |
Thesis Latex Template |