Jam Bot Music Theory Aware Chord Based Generation
Jam. Bot: Music Theory Aware Chord Based Generation of Polyphonic Music with LSTMs Gino Brunner, Yuyi Wang, Roger Wattenhofer, Jonas Wiesendanger Distributed Computing Group ETH Zurich Switzerland 1
2
C# C D# D F# E F G# G A# A C# H C 12 notes • Black and white keys of piano • Same pitch interval between notes • Notes names repeat 3
C# C D# D F# E F G# G A# A H Scale • Subset of the 12 Notes • Defined by pitch intervals • e. g. major scale: 2→ 2→ 1→ 2→ 2→ 2→ 1 4
C# C D# D F# E F G# G A# A H Key • root note + scale • e. g. , C major 5
C# C D# D F# E F G# G A# A H Key • root note + scale • e. g. , C major 6
C# C D# D F# E F G# G A# A H Chord • Subset of two or more (usually three) notes played at the same time • e. g. , C major 7
8
9
LSTMs (Long Short-Term Memory) 10
11
Dataset • MIDI (Musical Instrument Digital Interface) format • Like Sheet Music • No Sound • ~100’ 000 Songs 12
Scales of the Songs 1. Only use songs in major scale 2. Shift all songs to same root note 13
time pitch time 14
Extract Chords 1. Histogram of notes over every bar 15
1. Histogram of notes over every bar 16
1. Histogram of notes over every bar 2. 3 most played notes form chord 3. Assign id to 50 most occurring chords 17
Input: 10 -dimensional chord embedding chord id embedded chord Output: Probability of every chord to be played in next bar 18
Input: Output: Probability of every note to be played in next timestep 19
Music Generation 1. 2. 3. 20
Midi Synthesizer 21
Chord Embeddings Circle of Fifths 22
Song 1 Instrument: Bright Acoustic Piano Tempo: 160 BPM 23
Song 2 Instrument: Electric Piano Tempo: 110 BPM 24
What’s Next? Instrumentation and Tempo Note Duration and Velocity Long Term Structure and Style 25
Jam. Bot ? Gino Brunner brunnegi@ethz. ch 26
- Slides: 26