Control Live Transport from Max4Live Transport
Hello, I know (and see) that Live's transport will control a Max4Live object that has a transport object included, but can it work the other way around?
I have a standalone patch that uses wiimotes as conducting batons, and the patch nicely controls a rubato-like tempo using my conductor-following algorithm and the transport object. I have placed this into Ableton as a M4L Audio effect, and everything in the patch works great. Wiimote data comes in through Osculator and udpreceive, the whole patch runs just as in the standalone, but transport won't take in the changing tempo message from the patch, it's looking for it from the Live control.
Maybe this is the nature of Live and M4L, but if anyone knows if I can switch around the master/slave, kindly let me know. Thanks! I would like to be able to 'conduct" the tempo of Ableton using this patch from within Ableton itself.
Forrest
In M4L Live's transport is always the master. So you need to modify your patch and send the OSC tempo messages to Live's transport using the Live API.
Thank you, that makes sense, I've been meaning to explore the Live API more, so this is a good way in. I will dig into that today.
I have another question. I can control Live's tempo playback through my conductor program when I use Max as a standalone app and send MIDI clock messages to the Live transport when it is set to external control. No problem, and that works fine.
Is there any way to send the raw tick data from the Max transport to Live's transport, such that it will pause if it doesn't get the next tick? Specifically my program waits for the corroboration of the conductor's beat before proceeding to play that beat (that is, before outputting the next 480 ticks). This emulates when I work with my orchestra -- there is a sense of control and collaboration when the musicians pause if they notice that the next beat is arriving late, and this allows for a rubato performance. This works very well within Max, and allows for subtle expression when beginning a new phrase (mainly when playing back a MIDI file, but am starting to get it to work OK with elastic audio as well using groove~).
It would be ideal if this function could happen when control other sequencers. Is there a way Live could wait for the corroboration of the beat? I know that Max's transport sends out ppq at 480, and I think Live does 960, but that could be worked around.
Thanks, as you see I'm mainly trained as an orchestra conductor so I appreciate the help from you all with more training in programming.