Does anyone know if it’s possible to send this information in Stop Mode (i.e. while I manually move/relocate the Project Cursor and Cubase is not playing)?
For example, here Cubase is not playing. But when I move the Project Cursor someplace else, the Time Display updates accordingly.
Meanwhile, the software that receives MIDI Timecode through “IAC SessionKiano” updates only when Cubase is playing. This makes me think Cubase sends MIDI Timecode only in Play Mode. Is there any way around this? Specifically, is there any way to tell Cubase to send MIDI Timecode in Stop Mode also?
It does send timeCode while stopped, whenever we change the cursor position.
This option is very useful for cases that we’re in a loop playing and we want th external device to receive the cursor position when our loop restarts, i.e. the loop start position.
MIDI Timecode Follows Project Time Activate this option to ensure that the MTC output follows Cubase’s time position at all times including looping, locating, or jumping while playing. If not, MTC will continue on without changing locations at a loop or jump point until playback stops.
Here’s a case without that option ticked. Compare the Time Display in Cubase and the Time Display on the right (in my receiving app):
Check the last 4 logs. They are of different timestamp and caused by me changing the cursor position while stopped. If we were in play mode we would still receive the F1 XX messages as well (as shown above).
Technically speaking, “locating” is what we do when we move the Project Cursor to a new location.
That being said, I just tested and the setting is not required for Cubase to send FULL MTC messages. I think this is a mistake either in the software or in the manual. Even with “MIDI Time Code Follows Project Time” turned on, Full Time Code messages are sent when locating (or jumping) when playing.
(The messages sent when in Play mode is referred to as “Quarter Frame Messages”).
If while playing you change the cursor position by clicking, and you don’t have this option enabled, the mtc sysex won’t be sent. I think this is what they mean in the manual. I’m not sure if the expression used in the manual is syntactically 100% accurate though, since English is not my mother tongue.
Ah, yes, I’m wrong on this one. My use cases involve just loops and their starting point. When the playhead gets back to the start, if we don’t have this option enabled, no sysex will be sent. At least this is what I get here (CB14). At the same time, INDEED, it sends MTC when we change the cursor position manually, even without the checkbox checked, in a loop. I never got to check this one before, since it’s not something I do. I think this is a miss or as you state an issue in the description in the manual.
Thanks to your help, I managed to create an AppleScript to extract timestamps!
In Bome, I programmed the trigger of the script to: F0 7F 7F 01 01 hh mm ss pp F7
Not sure what the value of pp is (ms or fps), but because the number varies, a variable is needed, even though I’m not using it in the script.
Now every time I relocate the Project Cursor, the script will add/append a timestamp to the clipboard (on a separate line!), allowing me to create a list with different timestamps.
Selectable script
-- Before this script is triggered by a MTC SysEx message (in Bome), make sure you clear the clipboard in AppleScript with: set the clipboard to ""
(*
set hh to 99
set mm to 5
set ss to 24
*)
on add_leading_zeros(this_number, max_leading_zeros)
return text (max_leading_zeros * -1) thru -1 of ("00000000000000000" & this_number)
end add_leading_zeros
set hh to hh - 96
set hou to add_leading_zeros(hh, 2)
set min to add_leading_zeros(mm, 2)
set sec to add_leading_zeros(ss, 2)
set timestamp to hou & ":" & min & ":" & sec
set clipboardContent to (the clipboard as text)
if clipboardContent is "" then
set clipboardContent to timestamp
else
set clipboardContent to clipboardContent & "
" & timestamp
end if
set the clipboard to clipboardContent