Sending MIDI system exclusive messages to hardware synth

I have a Roland SH-01 that I’ve been trying to set up to use with Ardour as best as possible. I would like to be able to automate certain parameters that are only available through sysex messages. For example, to change the oscillator of the working patch to super saw, I would need to send “F0 41 10 00 00 41 12 10 00 01 00 06 69 F7” to my device. Can this be done through Ardour somehow? Or maybe there’s a plugin for that?

Any advice would be greatly appreciated.

Thanks baptiste, I will have a look at that tomorrow.

Plugins do not control anything outside of themselves. They can send out MIDI messages, which might or might not affect something else in their output signal path. But when would they send it? Just your manual intervention?

If you know Pure Data, you can make a control patch and load it as a plugin through Camomile : https://github.com/pierreguillot/Camomile

I’ve investigated Ctrlr’s Linux VST plugin. It is built incorrectly - it has a fixed dependency on a specific version of libbfd (2.24), so if your system doesn’t have that precise version, it cannot be loaded. My system has libbfd 2.25, for example.

That’s a shame. And their github repository is down due to a DMCA.

Maybe I’m not understanding something, but if this were loaded as a plugin, wouldn’t I be able to automate the controls just like any other plugin? In any case it seems to be a dead end, because downgrading libbfd indefinitely isn’t really a viable solution.

Sure, but you can’t sequence that, which is what I thought you wanted to do (i.e. “send this message at this time”).

I may have found a solution: http://ctrlr.org

It’s pretty neat. You can create panels with knobs/sliders and assign custom SysEx messages to them.

I managed to successfully control the amp envelope parameters with the standalone version, but for some reason the plugin won’t show up in Ardour’s plugin manager even though the name flashes by when scanning (libCtrlr-VST-x86_64.so, which I’ve placed in ~/.vst).

There’s no way to deliver arbitrary MIDI from a Lua script. You could write a Lua plugin that output this, but how that would integrate with the timeline (i.e. only send this message at time T) is something I wouldn’t even want to think about.

Thanks for the quick reply Paul. The issue with patch changes is that there is a very noticeable pause in sound as the change occurs, at least with this particular instrument. But in any case, the example I gave was just picked out of Roland’s midi implementation document for the device. What I really want to control is the filter and amp envelopes. I don’t think even a seamless patch change would give me exactly what I want here (e.g. smoothly ramping up the decay over a period of time).

Do you think a Lua script could be cooked up to do what I need? If so, maybe I’ll just learn some Lua and give it a shot.

This is not possible with Ardour at this time. Most synths use patch changes to accomplish such things, and these you can create, edit and sequence in Ardour.