We are currently working on a first example MIDI Clip File which we will make available in the spec download area of midi.org. We are working on a tweak to the Melisma lyric definition which we need to finish first. Then we will finish MIDI Clip File example(s).
An empty MIDI Clip File would have all the following contents to meet minimum requirements: File Header:
* SMF2CLIP Clip Configuration Header:
*DCTPQ Clip Sequence Data
*Start of Clip
*End of Clip
Why are the DC messages required?
A parser can recognize a DC message because it's an UMP message. That's different from MIDI 1.0, where DCs and 'real' messages had to be interleaved so the parser wouldn't get lost.
I guess any parser will work OK if a file omits all zero-tick DCs.
As Giel stated, I guess that if DC's are omitted (which would have the same timestamp as the previous one for a UMP next event), a sequencer probably may use the last DC send instead of ejecting the file. :-)
P.S: What is a Ruby ? Google spits out a long list of videos of famous songs or links to programming code and chatGPT has no idea either: In music theory and lyrics, a "ruby" is not a specific term or concept. It is possible that you are referring to a specific song or lyric that mentions "ruby," but without further context, it is difficult to provide a definitive answer. Music and lyrics often employ metaphors, symbolism, and imagery, so the mention of "ruby" could be a poetic device to convey a specific meaning or evoke certain emotions. If you can provide more information about the song or lyrics you are referring to, I might be able to offer a more accurate explanation.
See the Wikipedia article ruby character. Basically "ruby" is referring to small pronunciation characters that appear above (or sometimes below or beside) a word. A combindation of lyric and ruby data messages might be useful to display, for example, Japanese lyrics with ruby characters in a karaoke-style display window.
You may also be interested in looking at the MIDI 1.0 specification for SMF Language and Display Extensions, which describes a way to encode a "ruby part" in a MIDI 1.0 Standard MIDI File.
Thank you for the change "NOOP message to restart the delta time count"
"The Clip Configuration Header shall not include more than one Set Tempo message and shall not include more
than one Set Time Signature message"
That would mean that if there are UMP messages for multiple groups in the file ( one more more set of MIDI 1~16 channels/i.e legacy cables) all need to follow the same TS and Tempo . OR that one MIDI clip file can only be used for one group since there is one header and only one TS/Temp event. if there is only one TS/Tempo allowed per clip, that should mean all UMP messages should use the same group number as defined in the TS/Tempo messages and TS/Tempo messages should both use the same group.