4

I've been reading about MIDI file structure as I'm interested in writing an application that would read/write files in this format, but I'm a little confused about time divison in the header chunk.

My understanding is that this part is essentially 16 bits, where if the sign bit is 1 the remaining bits specify an SMPTE timecode, and if it's 0 then the bits specify the number of ticks/pulses per quarter note (PPQ).

My questions, specifically, are:

  • What does a higher/lower PPQ do to a MIDI file? Does this change the quality of the sound? My understanding is that it does not affect tempo
  • How does the SMPTE timecode affect the MIDI file in playback?

Essentially, I'm trying to understand what these actually mean to the end result.

1 Answer 1

2

With higher PPQ resolutions events can be more accurate (but it's not necessarly the case). For example at 24 ppq you can only have 24 different positions between two blacks. This has an impact when you interpret the MIDI events to fill a structure. Let's say that your MIDI application has a MIDI clock with a 96 PPQ resolution and you want to open a MIDI file with a resolution of 192 PPQ. Then you'll have to quantize the events...

2
  • Is there any particular standard I should go with that will pretty much work for all songs, or is there a calculation I should rely on based on some other factors?
    – rakemanyohneth
    Jun 10, 2012 at 0:19
  • Your midi file handling class or methods should be able to interpret all the resolution. As said in the answer, if your app as a lower PPQ res then you'll just have to quantize the Delta time of the events...yes because the timing of an event is not absolute but relative to the previous one. I think that you have probably read this in the Sonic Spot article...
    – az01
    Jun 10, 2012 at 16:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.