Carla BPM tempo change via Midi CC or OSC?

Unofficial support for the KXStudio Linux distribution and applications.
More info at http://kxstudio.linuxaudio.org/

Moderators: MattKingUSA, khz

Post Reply
timg
Established Member
Posts: 6
Joined: Wed Dec 30, 2020 7:06 pm

Carla BPM tempo change via Midi CC or OSC?

Post by timg »

Hi there,
I've hunted around but I can't seem to find a way to alter Carla Transport BPM via Midi CC or OSC command.

Sure, I can alter the value manually in the transport tab and start and stop, but I can't find a way to drive the BPM value from outside Carla.

For my setup, I use Konfyt for creating patches. These patches then drive plugin changes within Carla. I can alter ZynAddSubFX presets and slot values via OSC. I can obviously control aspects of Carla plugins via Midi CC, but not Carla itself. I just need to be able to send a Midi CC command (which I can convert to OSC if needed) from a patch change to alter Carla BPM so that ZynAddSubFX presets (LFOs, etc) can sync with the tempo of that patch. Am I missing something?

Many thanks if you can point me in the right direction.
Tim

Manjaro KDE Linux + Jack2, Konfyt, Carla, ZynAddSubFX and numerous other LV2 plugins.
User avatar
milkii
Established Member
Posts: 477
Joined: Tue Jan 05, 2016 9:08 am
Location: Edinburgh
Has thanked: 92 times
Been thanked: 91 times
Contact:

Re: Carla BPM tempo change via Midi CC or OSC?

Post by milkii »

Changing the Carla tempo via JACK Transport by using MIDI; couple of possible things at least https://toxic.cubicarea.it/#jack-director https://www.teuton.org/~gabriel/InConcert

Edit: or use a JACK Transport master of, say, seq66, which itself has MIDI automation for both course and fine BPM changes

they/them ta / libreav.org / wiki.thingsandstuff.org/Audio and related pages / gh

timg
Established Member
Posts: 6
Joined: Wed Dec 30, 2020 7:06 pm

Re: Carla BPM tempo change via Midi CC or OSC?

Post by timg »

Thanks milkii.

InConcert looks the most promising, but I hit an error when compiling, which I couldn't seem to find how to fix:

/source/inconcert/src/HiJack/Client.cpp:215:30: required from here
/usr/include/c++/11.2.0/bits/stl_tree.h:770:15: error: static assertion failed: comparison object must be invocable as const
770 | is_invocable_v<const _Compare&, const _Key&, const _Key&>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11.2.0/bits/stl_tree.h:770:15: note: ‘std::is_invocable_v<const HiJack::Client::procSort&, HiJack::Port* const&, HiJack::Port* const&>’ evaluates to false
make[2]: *** [CMakeFiles/inconcert-lib.dir/build.make:119: CMakeFiles/inconcert-lib.dir/src/HiJack/Client.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:92: CMakeFiles/inconcert-lib.dir/all] Error 2
make: *** [Makefile:136: all] Error 2


It seems at though the codes not been touched in 12 years! Which is a shame.

I also looked at jack-director, but it seems that I'd have to "fudge" the BPM selection by creating a jack-directorrc file which contains a prgX entry for every BPM I'm likely to need. Only then can I call it up using a program change within Konfyt. Do-able, but far from elegant.

I have used Hydrogen in the past with Konfyt and Carla, but since I rarely need backing drums, I was hoping for a way to avoid an extra program & associated complexity (risk for live). Hydrogen also doesn't seem to take a direct BPM value, only TAP_TEMPO and BPM_INCR & BPM_CC_RELATIVE, etc.

I still find it hard to believe there's no way to send an absolute BPM value directly to Carla or Jack, especially when Carla has OSC functionality to go to the level of controlling plugins. It sounds like a good feature request. I may play with Seq66. Thanks again for the suggestions that I'll continue to explore.

Many thanks,
Tim

Manjaro KDE Linux + Jack2, Konfyt, Carla, ZynAddSubFX and numerous other LV2 plugins.
Post Reply