Repository navigation
Replies: 3 comments 3 replies
|
Did you have a look at https://github.com/free-audio/clap/blob/main/include/clap/ext/draft/transport-control.h ? |
|
In FL Studio Mobile, unlike desktop setups using Surge XT in Carla with CLAP, you can't control the host's tempo directly from a plugin or MIDI device. The app lacks deep plugin-host sync features, so trying to send BPM, start, or stop messages from custom hardware won’t work natively. Just like you're finding limitations in CLAP for tempo control, FL Studio Mobile imposes even stricter boundaries. A better approach might be creating a standalone app or using external MIDI clock sync if supported. So yes, trying to do this inside a plugin—especially for mobile—is likely the wrong tree to bark up. |
|
I added PR #488 for this. But this got me thinking, what if the plugin wants more fine-grained control over the tempo changes, e.g. if it should be varied smoothly over time, or jump in discrete steps? Then it should be its own event that the plugin can send back to the host, but this can already be done with clap_event_transport_t and setting tempo alone with flag CLAP_TRANSPORT_HAS_TEMPO. But clap_event_transport_t doesn't mention that the plugin can also send it back to the host, so maybe that was never considered as a valid usecase at first? @abique : Since you mentioned that bitwig already supports CLAP_EXT_TRANSPORT_CONTROL extension, does it also support if the plugin sends back clap_event_transport_t with tempo and CLAP_TRANSPORT_HAS_TEMPO? |
Uh oh!
There was an error while loading. Please reload this page.
I'm working on a project which involves a custom MIDI controller and an embedded synthesizer. I'm using Surge XT as the synthesizer hosted inside of Carla, and writing my own plugin to read from the custom hardware and translate it into MIDI.
Surge has some nice features I'd like to make use of which sync to the host's tempo. I'm trying to figure out how to control Carla's tempo from inside a plugin, and it's not clear to me if that's in scope for CLAP in general. (I see that I could do it via a separate OSC connection, but that's pretty clunky and host-specific.) I don't want to take over complete control of the clock by trying to make the plugin the leader (old terminology: master) in MIDI clock or time code terms. I just want to send "here's the new BPM", "stop", and "start" messages in response to user interactions with my custom hardware.
Am I barking up the wrong tree? Should this really not be a plugin at all? (I have lots of experience making standalone programs of this sort, but I thought a plugin would make certain things cleaner, and the question seems like it might have relevance beyond my own use case.)
All reactions