SpeedySPCFan wrote:I took a picture of one of my tunes from the game so you can see how data is used - the lines around the middle are note data and anything stemming from the bottom is from a CC. But you are right, that data isn't set that much in most cases (I have a few tunes I did for my EPs that go ham on them, but that's another topic).
Also, CC data can be quantized and interpolated as well.
For example, if you would quickly turn the pitchbend wheel, it may generate values of 0, 1, 2, 3, 4 etc at a very high rate.
But if you only plan to play your MIDI data at 72 Hz for example, you could 'smooth' it , and perhaps just use 0, 2, 4 instead. You won't hear the difference.
SpeedySPCFan wrote:The game has SFX provided by the PC Speaker in the background, if Tandy or AdLib mode is select then those chips are only used for music. PC Speaker music is interrupted by SFX.
Okay, so that means that MIDI music wouldn't have to worry about the PC speaker, and can use the same approach as Tandy/AdLib mode.
SpeedySPCFan wrote:I think Jim mentioned before the tracker is timed to a locked 72Hz. My MIDIs are all at the default 120 PPQN that my sequencer uses so I don't know what modifications, if any, would need to be made.
If I'm correct, the formula was like this:
cycles per minute == (bpm * PPQN).
So we'd have (72*60) == (bpm * 120).
bpm == (72*60)/120 == 36.
So I suppose your PPQN is slightly too high. If we assume a bpm of 120, PPQN should have been:
PPQN == (72*60)/120 == 36.
Assuming you want a PPQN of 120 and a bpm of 120, you'd need a rate of:
rate == (bpm * PPQN) / 60 == 120*120 / 60 = 240 Hz.
But in practice you may get away with just re-quantizing it to 72 Hz (or else 144 Hz).
If you want to play around with that, here is my MIDI player for Windows:
https://www.dropbox.com/s/u5zhsn9pt5qnj5d/Mid … antize.zip?dl=0
It allows you to set a quantize interval in Hz, so you can try it at 72 Hz (and 144 Hz) and see how badly the timing gets messed up (it doesn't try to smooth CC commands and such though, it merely 'snaps' the MIDI events to the desired rate).
Or, if the game is not timed to the tracker routine, we could use my 'free running' MIDI player, which doesn't quantize at all.