SuperCollider sendig out SMPTE | MTC + RTP-MIDI?

Hi guys,
a question related to time and synchronization topic.

Is there a way for SuperCollider to be a time clock master for other machines|softwares (mainly video reproduction software)?
I mean, in other terms:

SMPTE (LTC)
is there a way to produce an audio track containing the SMPTE code (LTC)?
Is there a way to do it natively or via some Quark?

MIDI
Is there a way to send MIDI Time Code (MTC) to other machines?
Is there a way to do it natively or via some Quark?
In addition to that can SuperCollider send MIDI over network (thinking about the RTP-MIDI)?

Thank you so much for any suggestion

AFAICS MIDIOut doesn’t support MTC. This rules out SC as a source for that.

wslib (quark) has an SMPTE class. It might have old-style HTML documentation, or it might not. It doesn’t appear to generate audio signals though.

Probably better if SC is the follower rather than the leader here.

hjh

1 Like

Probably better if SC is the follower rather than the leader here.
That sounds interesting! How would I let SC (including patterns?) follow
an external MTC?

Nevertheless, MIDIOut has the .midiclock method with examples given in MIDIOut | SuperCollider 3.12.2 Help

1 Like

IIRC that’s for clock ticks, which are different from time code. Clock ticks are valueless – the receiver knows what time it is only by counting ticks – so it’s not at all suitable to identify a time point with random access.

Though I missed it earlier that MIDIOut has a .smpte method – that might be of interest.

hjh

1 Like

Thank you all guys @jamshark70 , @Peter .

The fact that SuperCollider is so high-performance and stable (also from the point of view of time scanning and scheduling) makes it, at least in my opinion, a device that should be considered as a master of other devices.

This would make it even more attractive in all those use cases where it is necessary to have a time-controlled ecosystem with a central conductor which ‘directs’ other slave systems (I’m thinking especially of machines like Resolume, VVVV, etc…) not only using OSC messages but protocols like LTC and MTC that could be more robust for synchronisation accuracy (this is my opinion, not that I have used these protocols much in the past).
Does it make sense to you?

Do you think this could be a good suggestion for future developments of SuperCollider?
Is there a specific channel for suggesting future implementations in the software where such suggestions can be made and discussed?
Would this be worth talking about?

Thank you

The fact that the SC interpreter is single-threaded with no preemption means that its timing is not guaranteed to be stable if you are running other sequencing activities alongside the MIDI clock output. (We don’t notice for server messages because latency absorbs the timing jitter.)

I did use midiClock output from SC in a show once. I ran one instance of SC only for the clock source, and another for my live coding environment, synchronizing the two using Ableton Link. I did this because I didn’t want the sequencers to delay the output of clock messages.

You’re correct that having SC follow incoming ticks is dicey – I probably shouldn’t have suggested that.

hjh