====== Differences ====== This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
deepcomposer [2015/10/25 10:15] aljanaki [Datasets Used] |
deepcomposer [2015/10/25 17:28] (current) eraoul [Summary] |
||
---|---|---|---|
Line 2: | Line 2: | ||
| Authors | Anna Aljanaki, Stefan Balke, Ryan Groves, Eugene Krofto, Eric Nichols | | | Authors | Anna Aljanaki, Stefan Balke, Ryan Groves, Eugene Krofto, Eric Nichols | | ||
- | | Affiliation | Fake University | | ||
| Code | [[https://github.com/stefan-balke/hamr2015-lstm-music-gen|Github Link]] | | | Code | [[https://github.com/stefan-balke/hamr2015-lstm-music-gen|Github Link]] | | ||
Line 9: | Line 8: | ||
* Collect several symbolic song datasets, with melody and possibly chords | * Collect several symbolic song datasets, with melody and possibly chords | ||
* Represent data in a common vector format appropriate for input to a neural net | * Represent data in a common vector format appropriate for input to a neural net | ||
- | * Develop an LSTM architecture for generation of melody/chord output. | + | * Develop a Long Short-Term Memory (LSTM) architecture for generation of melody/chord output. |
* **Goal:** Given a melody and chord sequence, generate melody with chords. | * **Goal:** Given a melody and chord sequence, generate melody with chords. | ||
* Make music! | * Make music! | ||
Line 84: | Line 83: | ||
The Essen folk song collection does not include harmony, only monophonic melodies. We added chords ourselves, using a simplistic approach. Namely, the chords change every measure (there is only one chord associated with each measure). We find the suitable chord by creating a pitch class histogram for a measure (which takes into account the duration of the notes that sounded in the measure) and finding the smallest cosine distance with a mask of 24 major and minor chord triads. | The Essen folk song collection does not include harmony, only monophonic melodies. We added chords ourselves, using a simplistic approach. Namely, the chords change every measure (there is only one chord associated with each measure). We find the suitable chord by creating a pitch class histogram for a measure (which takes into account the duration of the notes that sounded in the measure) and finding the smallest cosine distance with a mask of 24 major and minor chord triads. | ||
- | |||
- | Here is an example. A song "Es flog ein klein Waldvogelein" is accompanied by chords (the long stripes under the melody are chords). | ||
- | |||
- | {{:esac_harm.png?800|}} | ||
Line 101: | Line 96: | ||
An example of one of the solos the Weimar Jazz Database (Note: harmony is omitted). | An example of one of the solos the Weimar Jazz Database (Note: harmony is omitted). | ||
+ | |||
+ | |||
+ | {{:esac_harm.png?800|}} | ||
+ | |||
+ | Here is an example. A song "Es flog ein klein Waldvogelein" is accompanied by chords (the long stripes under the melody are chords). | ||
+ | |||
+ | {{::rockwithharmony.png?800|}} | ||
+ | |||
+ | Another example of the rock corpus, the song "1999" by Prince. This time with harmony. | ||
+ | |||
==== Neural Network ==== | ==== Neural Network ==== | ||
Line 114: | Line 119: | ||
* 12 Pitch Classes (Chroma) with chord information. | * 12 Pitch Classes (Chroma) with chord information. | ||
* 5 levels of the metrical hierarchy. | * 5 levels of the metrical hierarchy. | ||
+ | |||
===== Libraries Used ===== | ===== Libraries Used ===== | ||
Line 121: | Line 127: | ||
* SQL Alchemy | * SQL Alchemy | ||
* NumPy | * NumPy | ||
+ | |||
+ | ===== Results ===== | ||
+ | |||
+ | ==== Train on ESAC, Random Seed ==== | ||
+ | |||
+ | {{:example_rnd_01.png?800|}} | ||
+ | {{:example_rnd_01.mp3|}} | ||
+ | |||
+ | ==== Train on ESAC, ESAC Seed, Probabilistic Sampling ==== | ||
+ | |||
+ | {{:example_rnd_02.png?800|}} | ||
+ | {{:example_rnd_02.mp3|}} | ||
+ | ===== Next Steps ===== | ||
+ | |||
+ | * Try out longer training and more epoches. | ||
+ | * Integrate harmony components. | ||
+ | * Cross-learn: Learn on ESAC and harmony from jazz etc. |