I'm writing my own software to use the built-in Microsoft MIDI Synthesizer. I've been agonizing over the Time Signature Meta-Event. And, from my searches in this forum and on the internet there is a lot of confusion about the cc value of the sequence: FF 58 04 nn dd cc bb
The spec says, "The cc parameter expresses the number of MIDI clocks in a metronome click."
And, provides an example,
Therefore, the complete event for 6/8 time, where the metronome clicks every three
eighth-notes, but there are 24 clocks per quarter-note, 72 to the bar, would be (in hex):
FF 58 04 06 03 24 08
That is, 6/8 time (8 is 2 to the 3rd power, so this is 06 03), 36 MIDI clocks per dotted quarter (24 hex!), and eight notated 32nd-notes per MIDI quarter note.
It's the part about the "dotted quarter" that lit up my understanding. Then I remembered playing saxophone in High School and one of the music sheets used a dotted quarter note to specify the Tempo of a 6/8 measure. So, I checked the internet and found some examples...I'm attaching one of them. So, apparently the cc value is ONLY used when the Tempo is being displayed as a dotted quarter note as is sometimes used for 6/8 time.
But, now that I understand how cc is used my concern now is that it's only one byte while the format 0 file Division can be 15 bits as the spec says, "If bit 15 of <division> is a zero, the bits 14 thru 0 represent the number of delta-time "ticks" which make up a quarter-note." My research indicates that at the time of the writing of the MIDI specs the default for division was 48 or if better resolution was desired it could be increased to 96 as in the example, "For instance, if <division> is 96, then a time interval of an
eighth-note between two events in the file would be 48." However, the speed of digital systems has increased to where even a division of 0x4000 (16384 clock ticks per quarter note) can be supported. However, if the time signature is 6/8 and it is desired to display and use a metronome for dotted quarter notes then we will be limited to a division of something like 168 ticks per quarter note so that the cc value would be 168 + 84 = 252 (0xFC).
So, my question is...is there an existing Meta-Event which we can use to provide the metronome time signature for dotted quarter notes with more than 1 byte? If not then is there an unused Meta-Event Code that we can use to provide an expanded Time Signature event that allows 3 bytes or a variable-length quantity for the number of ticks for a dotted quarter note metronome?