Send MIDI Timecode in Stop Mode

Hi! I’m sending MIDI Timecode (seconds) using the Project Synchronisation Setup window.

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

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?
only when playing

I know this is possible. Have you tried the “MIDI Time Code Follows Project Time” ?

1 Like

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.

Hi! That’s something else, unfortunately.

From the manual:

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):
difference

It doesn’t, unfortunately. Otherwise, my app would update, wouldn’t it?

It surely does here, upon a cursor movement in stop mode, Cubase sends the proper message. Perhaps there’s an internal option in your app?

1 Like

How can you tell?

  1. Because I use it and
  2. Because I’ve just now checked it on CB14 using a Bome Port.

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

Are you sure that’s not Bars and Beats? It’s interesting what you’re saying. Let me also check in Bome.

Yes.
εικόνα
We’re in 38 seconds, and if check the last log it has the val 0x26=38.

I haven’t tried it in a bit but it does say:

@m.c , it seems that you’re right.

GIF

bome incoming MTC

The setting in my app (Open Stage Control):

@mlib

Activate this option to ensure that the MTC output follows Cubase’s time position at all times including looping, locating , or jumping while playing.

:innocent:

Thanks @m.c and @mlib. I will contact the developer of Open Stage Control.

O-S-C app receives only when Cubase is playing…
osc debug

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

1 Like

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.

1 Like

Yes it will. At least here it does.

:sweat_smile:
I’m starting to get a feeling of déjà vu.

In the below screen capture you can clearly see the difference in the Quarter Frame MTC messages and the Full MTC messages.
MTC

1 Like

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.

1 Like

Thanks to your help, I managed to create an AppleScript to extract timestamps!

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

  2. I’ve set the outgoing action to:

  3. The add_leading_zeros handler needs to be placed in the Global AppleScript section of Bome.

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

Disturbances list (between 08:00 and 13:00)

08:36:43
08:37:12
08:37:18
08:39:55
08:40:28
08:41:36
08:42:32
08:42:52
08:51:30
08:51:51
08:54:06
08:56:48
08:57:29
08:57:35
08:57:37
09:00:48
09:02:29
09:02:37
09:02:51
09:03:10
09:23:39
09:30:22
09:34:42
09:45:42
09:52:51
09:52:52
09:57:33
09:58:08
10:14:43
10:16:18
11:09:31
11:14:59
11:47:50
11:49:42
11:49:59
11:50:01
11:50:03
11:50:43
11:51:17
11:51:23
11:52:51
11:53:19
11:56:29
11:56:34
11:56:45
11:57:10
11:58:11
11:58:25
12:00:35
12:00:59
12:01:31
12:01:58
12:02:56
12:06:49
12:12:48
12:23:37
12:24:12
12:24:26
12:25:01
12:26:22
12:26:24
12:26:32
12:26:55
12:26:56
12:27:00
12:27:08
12:27:11
12:27:14
12:27:46
12:28:02
12:28:22
12:28:34
12:28:40
12:28:45
12:28:51
12:28:52
12:28:59
12:29:04
12:29:35
12:29:48
12:29:51
12:29:53
12:29:57
12:30:03
12:30:38
12:30:41
12:30:54
12:31:00
12:31:02
12:31:10
12:31:13
12:31:48
12:32:01
12:32:08
12:32:21
12:32:23
12:32:26
12:32:28
12:32:30
12:32:37
12:32:40
12:32:41
12:32:46
12:32:52
12:32:54
12:33:11
12:33:42
12:33:55
12:34:01
12:34:32
12:34:36
12:35:45
12:35:46
12:35:47
12:35:55
12:36:03
12:36:05
12:36:11
12:36:15
12:36:21
12:36:23
12:36:24
12:36:30
12:36:46
12:37:16
12:37:29
12:37:45
12:37:46
12:38:12
12:38:37
12:38:38
12:38:45
12:38:47
12:38:51
12:38:53
12:38:54
12:38:55
12:39:07
12:39:12
12:39:13
12:39:15
12:39:20
12:39:22
12:39:23
12:39:40
12:39:43
12:39:46
12:39:48
12:40:05
12:40:32
12:40:53
12:40:58
12:40:59
12:41:05
12:41:06
12:41:13
12:41:14
12:41:15
12:41:43
12:41:44
12:41:46
12:41:59
12:42:04
12:42:34
12:42:50
12:42:51
12:45:02
12:45:03
12:45:04
12:45:06
12:45:15
12:45:33
12:45:37
12:45:50
12:45:53
12:45:57
12:46:12
12:46:22
12:46:26
12:46:30
12:46:38
12:46:58
12:47:13
12:47:24
12:47:26
12:47:31
12:47:38
12:47:42
12:47:54
12:48:21
12:48:43
12:48:48
12:48:49
12:49:29
12:50:18
12:51:05
12:51:13
12:51:48
12:52:18
12:52:27
12:52:35
12:54:17

1 Like