• Support
  • Hours:Minutes.Seconds.FRAMES - is there time granularity below Seconds?

When it comes to sending MIDI commands, I will always need to send a burst of them within the first 2 beats of a song's 2 bar count-in. For your average 120bpm song, those 2 beats equates to a 2 second window.
The Lyric sheet format for sending MIDI (https://stagetraxx.com/user-guide/midi/) only provides granularity at Hours:Minutes.Seconds. Most DAWs I've used will go one level of granularity lower than Seconds, to Frames (for SMPTE compatibility) or milliseconds.

I don't like to send a burst of MIDI message all at the exact same time as it can sometimes cause unpredictable results, and so I usually separate them by 100ms, or as I'm usually working in Measures:Beats:Ticks, 50 or 100 ticks (at 480 PPQ).

A common scenario for me is to send 5-6 commands before beat 3 of bar 1 of the 2 bar count in, to correctly set effects devices to the correct patch and parameter settings. If I can only work in 1 second increments, I would have to either send 2-3 on every second, or if I separate each command in 1 second increments, I won't even manage to get all the commands sent during the 2 bar count-in of a song.

Is there any current ability in ST3 (or plans to provide in ST4) a smaller level of time granularity than seconds?

I understand that you can put multiple commands in the same line separated with commas, e.g.
[midi: SS10,PC30@1,PC20.2@2]
I assume that this would at least ensure that the commands are sent in the correct order, with a small gap between?
If so, then I'm guessing the best way to achieve my goal in ST3 today would be to 'batch' a few commands as appropriate in each line, and get them all done in as few lines as possible? E.g.

[midi: CMD1,CMD2,CMD3]
[midi@00:00.01: CMD4,CMD5,CMD6]
[midi@00:00.02: CMD7,CMD8,CMD9]

If I've been unclear, or the scenario is unclear, please let me know and I'll provide more detail.
Thank you!

AHHH... I'm an idiot.
ST isn't Hours:Minutes.Seconds it is Minutes:Seconds.Milliseconds.
So I can do what I'm trying to achieve using the Milliseconds in 50ms or 100ms steps to break them up.

Sorry, this isn't clearly defined and documented anywhere on the Lyrics doc page (https://stagetraxx.com/user-guide/lyrics/) or the MIDI page (https://stagetraxx.com/user-guide/midi/#send-midi) other than one reference that says:

The following example will send a command at 1 minute 34 seconds and 100 milliseconds:

[midi@01:34.10: ...]

BTW, is that docu example correct? I'm interpreting [midi@01:34.10: ...] as 1 minute, 34 seconds and 10 milliseconds, not 100 as the documentation states?

    AnthonyB you can add another digit to take it to 3 decimal places if you wanted.

      Lishy Yes, I understand that.
      The point I'm making in the 2nd post is that when something isn't clearly documented (i.e. the time format structure) then in looking for examples to validate an assumption, I found what looks to be a documentation error that makes it very hard to then validate the assumption, which just added to my confusion.

      So, all good now at my end.

      • Edited

      .1 (or .10, or .100) is 100ms, .01 (or .010) is 10ms and .001 is 1ms. So the documentation is correct.

        peter
        It is, but only if you know that the milliseconds value works to 3 decimal places, which I don't recall seeing documented anywhere (forgive me if I'm wrong there).
        So the first time I see something like 01:05.10 I have no way of knowing whether that is 10ms or 100ms.
        If all documentation showed time value example to 3 decimal places, then that confusion wouldn't exist.

        Sorry, I know this may be seeming pedanctic. I spent years writing process documentation for software and technical processes so this is the sort of small inconsistency that creates ambiguity, that causes confusion, that then results in support calls 🙂 And it's a very easy thing to fix, because it's just documentation, not code.

        OK, I will add a paragraph about millisecond notation to the documentation.

        peter

        Absolutely perfect! 🙂 No ambiguity, no inconsistency, no implied or assumed information, examples provided for clarity. I could not have written it better myself if I tried!

        Thank you!