How are we going to represent each music imported from midi files?
Initial suggestion:
interval: In semitones. Interval of initial note is zero.
delta time: Time between last notes onset and this notes onset. This way we can easily represent arpeggios and chords.
duration: Maybe in seconds, maybe in beats, or as a fraction of the duration of one measure. If in beats or measures, we may also need tempo and/or time signature.
velocity: Very simple, just normalize midi velocity to [0, 1]
register: This might be tricky. Normalize the range of the piano to [0, 1] and add uniform noise with a certain width (maybe half or quarter of an octave) so that the network cannot learn exact pitches, just a general register. This will be necessary since we are using intervals instead of pitches, we might go outside the register.
How are we going to represent each music imported from midi files?
Initial suggestion: