grame-cncm / faust

Functional programming language for signal processing and sound synthesis
http://faust.grame.fr
Other
2.54k stars 319 forks source link

Headless plugins / output parameters handling / OSC #735

Open ValCT opened 2 years ago

ValCT commented 2 years ago

Hello everyone,

I'm building an effects box running Elk OS on a Raspberry Pi 4 using plugins written with Faust. Plugins have to be headless, so the UI should to be provided externally. Having Open Stage Control running on the board seemed like the fastest solution.

Everything works like a charm, except I can't get OSC from output parameters in any way (input parameters reacts to OSC).

I've read that OSC support can be directly provided via an option as soon as UIs are generated by the Faust compiler, but in this case OSC is intended to be handled by the host (and that's what it does for other headless plugins) as soon as the output parameters are correctly exposed by the plugin.

In Elk OS on the Pi, output parameters are correctly exposed, but no OSC data is sent.

In Debian with Reaper, output parameters elements are correctly generated in the default UI, they react to value changes, but no OSC data is sent either.

Regarding Faust, could something prevent an host from sending OSC data for output parameters it manages to recognize and display properly?

Thank you very much!

Best, Valentin

sletz commented 2 years ago

Have you activated the -xmit option? (see https://faustdoc.grame.fr/manual/osc/) BTW you can also use Faust Slack channel (https://faust.grame.fr/community/help/) for simpler interaction.

ValCT commented 2 years ago

I didn't went too deep into this part of the docs because I thought it was irrelevant in my case: I'm not using the described architectures, I build plugins with faust2lv2 and faust2faustvst (that are not supposed to be standalone). Is there a way to activate this option when the plugin runs within an host? Or at compile time?

I knew this wasn't likely to be the right place to ask, but I didn't managed to connect to Slack since a special email or an invitation is needed.

sletz commented 2 years ago

Try : https://join.slack.com/t/faustaudio/shared_invite/zt-a624szlz-fL4v2DTR~ZGlI7wARryT7g faust2faustvst and faust2lv2 support -osc : activates OSC control Edit : -osc not really.. but -xmit mode is probably not activated by default...

sletz commented 2 years ago

I see in faust2faustvst and faust2lv2 that they should support -osc, but this does not seem to be the case in the C++ code. I suggest we continue on Slack or Discord ? Thanks.

ValCT commented 2 years ago

Thanks Stephane for the invite link. As far as I remember, adding -osc didn't change anything, indeed.

sletz commented 2 years ago

setParameterAutomated should be used, see https://forum.elk.audio/t/elk-pi-faust-to-vst-osc-troubles/474/26