Hex editing any kind of file is no easy task,BUT there is nothing that cannot be hex edited!
Of course,you'll have a better chance of learning assembly than hex editing an EXE.
Midi files can be edited! I've done it! I discovered this by making Midis with Midi Maker.
I make similar Midis that have only slight changes.Then I compare them.
All addresses in here are the hex addresses.

1A,1B,and 1C control the tempo! It's a 3 byte number,but it's not easy 2 figure out!
So the best way 2 change an existing midi file is to make your own midi,look at those 3 bytes and replace the other Midi with the
same thing! However,since I always use a power of 2 as a tempo,here is a little chart I made!
BPM(Beats Per Minute) is the same as the tempo.

BPM=1A 1B 1C

 32=1C 9C 38
 64=0E 4E 1C
128=07 27 0E
256=03 93 87

You CAN change the notes,but since they each contain over 16 bytes of data,you'll have a better chance of
becoming a millionaire.Oh well.It's cool 2 change the tempo!