Split a MIDI file into pieces and re-sequence them using its notes. Keep the same file while trying different parameters.
Classicalp_z_pete_wl1.mid
The algorithm is written in KeyKit. Source code.