x42 / jack_midi_clock

JACK MIDI Clock - Utility to send MIDI Beat Clock pulses that follow the JACK Transport
http://www.teuton.org/~gabriel/jack_midi_clock/
GNU General Public License v2.0
40 stars 4 forks source link

Is it possible to use this in reverse? (control jack transport with incoming midi clock) #1

Closed ViktorNova closed 9 years ago

ViktorNova commented 9 years ago

Is it possible to somehow use this in reverse, by a simple code modification? I know there is qjackmmc for a similar purpose, but lots of devices these days only send midi clock and not MMC. I'm trying to control jack transport using MuLab under wine (and it has to be the master, it doesn't sync to external clock but only outputs it, with no MMC)

x42 commented 9 years ago

tl;dr: No, jack-tansport slaves to nothing.

This is by design. Jack-transport always progresses sample-accurately with the soundcard's clock. It never vari-speeds. You can only start, stop and locate jack-transport, but there are no hard guarantees (after a 'seek/locate' jack waits for all clients to catch up before going back to play). That's what jackmmc does. It's good enough for control (human presses play -> some unknown time elapses -> jack starts playing), but it's not usable for anything that requires hard sync.

If you only need MIDI, you might be able to hack up a jack-timebase master: translate current jack-timecode to Bar|Beat|Tick depending on midi-clock. But then again this is only useful for midi-sequencers and in their case they can probably directly respond to midi-clock anyway.

There are some dedicated applications e.g. Ardour, which can varispeed and properly slave to Midi clok.

ViktorNova commented 9 years ago

I had a feeling this was the case, but had to ask. =) It is kind of backwards what I'm trying to do, and I may well end up hacking something together just as you said if I can't get Ardour/Qtractor/Muse to translate midi clock > jack transport in a satisfactory way

Thank you for your response!