- Classic RNN structure: Given a sequence of notes (e.g. 25 notes in a row), use the first 24 as data and the last 1 as label. Then train using the neural net
- Now, instead of using raw notes, cluster notes in a hierarchical manner:
- Chords
- Make sure to differentiate between chords and simultaneous notes (e.g. RH/LH)
- (common) Chord progressions
- Sections (e.g. verse, chorus, bridge)
A good clustering of these may be useful for transfer learning.
- Features: relative note timing (w.r.t. total song length & tempo), LH/RH likelihood (e.g. if a note is played in the LH, it is more likely to be a chord; a note in LH and RH cannot be a chord; how to determine this? look at the next section)
- Average the min/max notes in the song. Gives rough split
- Use the median note
- Use the mean note
- Hypothesis: improved music generation (better prediction of notes)