muse-sequencer / muse

MusE is a digital audio workstation with support for both Audio and MIDI
https://muse-sequencer.github.io/
Other
645 stars 69 forks source link

Recording/sequencing of JACK/LV2 CV? #994

Open mxmilkiib opened 3 years ago

mxmilkiib commented 3 years ago

JACK and LV2 have a CV-like audio-rate control signal feature.

This can be used for driving modular synth plugins, apps, and hardware, as well as for general automation (possibly sampled at a lower rate).

It would be cool if one could record and sequence 'CV' in Muse.

terminator356 commented 3 years ago

Great suggestion. Thanks for the info, I was not aware of those Jack developments. Some LADSPA plugins have been doing that audio control rate thing for a long time, but there was never a way to tell which ports.

Hm, I'll have to check but I seem to recall in our LV2 code some kind of CV port support...

...Ah yes, lines such as these look encouraging:

        if(!_controlInPorts [i].isCVPort)
            lilv_instance_connect_port(_handle, idx, &_controls [i].val);

Seems it should just work? Check the Arranger audio automation graphs - is the CV port listed? Can you point me to an LV2 plugin that might have a CV port that I could test?

terminator356 commented 3 years ago

Sorry bad code snippet. Here's a much better one:

        if(synth->_controlInPorts [i].isCVPort)
...
            lilv_instance_connect_port(state->handle, idx, state->pluginCVPorts [idx]);
mxmilkiib commented 3 years ago

I'm away from a computer proper for a few weeks, but the ZLFO plugin in the post linked above is a good generator

github-actions[bot] commented 1 year ago

This issue is stale because it has been inactive for two years. Remove Stale label or write a comment, otherwise it will be closed in 30 days.

mxmilkiib commented 1 year ago

This would still be nice.

terminator356 commented 1 year ago

Hi. According to the ChangeLog, LV2 CV support was added a long time ago:

19.12.2014:

I tested with BLOP plugins. All the CV ports are exposed. Like other controllers, they are accessed from the Arranger's Audio Track controller graphs.

Caveat: We have no mechanism to route plugin control input/output port signals from place to place. This means controller output ports are useless, we have no way of sending them somewhere, so we simply show an output meter in the generic plugin UI dialog box. I have been planning to add such routing for a long time, but things get in the way... It means we would have to make a more sophisticated router dialog - much like ALSA Modular Synth's (AMS) free-form canvas. (This alone would be very nice to have.)

Caveat: My tests with BLOP revealed an unrelated MusE problem: BLOP does not provide minimum and maximum values for some of its controller ports. Out code seems to be interpreting that as zero and zero, respectively, but it really should default to zero and one. Thus I cannot operate the sliders in the generic plugin UI dialog. I will investigate this, likely an oversight in the code.