User Tools

Site Tools


deepcomposer

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

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 (LSTMarchitecture 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.
deepcomposer.1445782554.txt.gz ยท Last modified: 2015/10/25 10:15 by aljanaki