Great job on this though there's some little things you should change, the 0xFD command doesn't actually delay based on frames, it delays based on ticks though they might work the same way.
Code:
32nd note - 12 ticks 0x0c
16th note - 24 ticks 0x18
8th note - 48 ticks 0x30
4th note - 72 ticks 0x48
2nd note - 96 ticks 0x60
Whole note = 192 ticks 0xc0
4 bars = 0x300