Take the 2-minute tour ×
Sound Design Stack Exchange is a question and answer site for sound engineers, producers, editors, and enthusiasts. It's 100% free, no registration required.

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.

share|improve this question
add comment

migrated from avp.stackexchange.com Jan 24 at 18:30

This question came from our site for engineers, producers, editors, and enthusiasts spanning the fields of video, and media creation.

1 Answer

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...

share|improve this answer
    
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 '12 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 '12 at 16:05
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.