I'm curious how to set the values of a LADSPA plugin uing the [plugin~] object. Seems like it's a bit of a pain in the ass to use. For example this one:
Loaded from library "/usr/lib/ladspa/mvclpf24.so". Control input(s): #1 "Input gain (dB)" #2 "Frequency" #3 "Exp FM gain" #4 "Resonance" #5 "Resonance gain" #6 "Filter poles" #7 "Output gain (dB)" Control output(s): Audio input(s): #1 "Input" #2 "Frequency" #3 "Exp FM" #4 "Resonance" Audio output(s): #1 "Output"
The object itself has 5 inlets, of which I assume that the first is for control messages and the other four are for the "Audio inputs".
My question is how to format the messages to the control input when the expected format is something like "Input gain (dB)". If I use the message:
control "Input gain (dB)" $1
or something similar using the format given by the "print" message, it does not accept it:
error: Bad arguments for message 'control' to object 'plugin~'
I could try the first word, such as "input" or "filter", but this is ambiguous in the case of arguments like "Resonance"/"Resonance gain". Sometimes the use of an underscore works, as in "Resonance_gain":
plugin~: warning: parameter limited to within [0.000000, 1.000000]
However "Filter_poles" results in:
error: plugin~: plugin doesn't have a control input port named "Filter_poles"
Is there a systematic way of dealing with this besides pure dumb hacking away? Any help from the LADSPA masters.... (Yo Frankie B, you in da house?)
d.
On Sun, Apr 17, 2005 at 11:01:04PM +0200, derek holzer wrote:
I'm curious how to set the values of a LADSPA plugin uing the [plugin~] object. Seems like it's a bit of a pain in the ass to use. For example this one:
Loaded from library "/usr/lib/ladspa/mvclpf24.so". Control input(s): #1 "Input gain (dB)" #2 "Frequency" #3 "Exp FM gain" #4 "Resonance" #5 "Resonance gain" #6 "Filter poles" #7 "Output gain (dB)" Control output(s): Audio input(s): #1 "Input" #2 "Frequency" #3 "Exp FM" #4 "Resonance" Audio output(s): #1 "Output"
you got further than me, just get "LADSPA plugin not found in any library" for anything here. the one time i did manage to get it to load something, i recall the above 'control inputs' msg is just sent to stderr, so theres no way to populate a menu in PD? not to mention theres no way to get a list of all plugins without globbing the .so files in a shell...and no way to host DSSI, and PD is totally broken/useless for DSP on 64bit anyways..
but i found a nice solution to this called om-synth, and can do all of the above tricks over OSC from a seperate machine... here the plugins are hosted in OM and controlled/sequenced by pd: http://whats-your.name/pd/gui/ngrid.PNG
check it out, well if youre to lazy to make plugin~ suck less..
The object itself has 5 inlets, of which I assume that the first is for control messages and the other four are for the "Audio inputs".
My question is how to format the messages to the control input when the expected format is something like "Input gain (dB)". If I use the message:
control "Input gain (dB)" $1
or something similar using the format given by the "print" message, it does not accept it:
error: Bad arguments for message 'control' to object 'plugin~'
I could try the first word, such as "input" or "filter", but this is ambiguous in the case of arguments like "Resonance"/"Resonance gain". Sometimes the use of an underscore works, as in "Resonance_gain":
plugin~: warning: parameter limited to within [0.000000, 1.000000]
However "Filter_poles" results in:
error: plugin~: plugin doesn't have a control input port named "Filter_poles"
Is there a systematic way of dealing with this besides pure dumb hacking away? Any help from the LADSPA masters.... (Yo Frankie B, you in da house?)
d.
-- derek holzer ::: http://www.umatic.nl ---Oblique Strategy # 173: "Voice your suspicions"
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
ix@replic.net wrote: not to mention theres no way to get a list of all plugins without globbing the .so files in a shell...
Only other thing is to run "listplugins", also in shell. This wouldn't help you populate a menu, which is the exact same idea I had. Would be nice if you could "auto-generate" a set of sliders for each of the hundred-something LADSPA plugins, rather than goof around trying to figure out each command string by hand.
I'll check om-synth, probably a lot better than AMS. Still trying to figure out what the hell the pic you sent is of, though ;-)
d.
ix@replic.net schrieb:
I'm curious how to set the values of a LADSPA plugin uing the [plugin~] object. Seems like it's a bit of a pain in the ass to use. For example
you got further than me, just get "LADSPA plugin not found in any library" for anything here. the one time i did manage to get it to load something, i recall the above 'control inputs' msg is just sent to stderr, so theres no way to populate a menu in PD? not to mention theres no way to get a list of all plugins without globbing the .so files in a shell...and no way to host DSSI, and PD is totally broken/useless for DSP on 64bit anyways..
Hi, make sure, you have the LADSPA-PATH env-var set correctly. On my system my pd startup reads like this:
export LADSPA_PATH=/usr/lib/ladspa cd /home/lutz/Documents/pd pd -path /usr/lib/pd/externs -rt -blocksize 512 -audiobuf 64 -jack -lib zexy:...
attached you'll find a small example-patch on how to control a LADSPA-pluggie (requires freeverb, its either in the 'swh-' or in the 'cmt-plugins' package)
m.f.g
Lutz
#N canvas 109 86 631 380 10; #X obj 490 198 adc~ 1 2; #X obj 428 245 plugin~ freeverb3; #X msg 227 155 control #5 $1; #X obj 227 20 vsl 8 128 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 127 20 vsl 8 128 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 6300 1; #X msg 127 155 control #4 $1; #X msg 327 155 control #2 $1; #X obj 327 20 vsl 8 128 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 5600 1; #X text 354 132 roomsize; #X text 146 132 wetlevel; #X text 257 131 drylevel; #X obj 428 20 vsl 8 128 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 8400 1; #X text 454 133 damping; #X msg 428 155 control #3 $1; #X obj 27 20 vsl 8 128 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 7700 1; #X msg 27 155 control #6 $1; #X text 60 133 width; #X obj 486 267 dac~ 1 2; #X obj 486 222 *~; #X obj 541 222 *~; #X obj 573 139 vsl 8 80 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 5300 1; #X text 542 114 input gain; #X connect 0 0 18 0; #X connect 0 1 19 0; #X connect 1 1 17 0; #X connect 1 2 17 1; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 4 0 5 0; #X connect 5 0 1 0; #X connect 6 0 1 0; #X connect 7 0 6 0; #X connect 11 0 13 0; #X connect 13 0 1 0; #X connect 14 0 15 0; #X connect 15 0 1 0; #X connect 18 0 1 1; #X connect 19 0 1 2; #X connect 20 0 18 1; #X connect 20 0 19 1;
hi derek,
I read:
I'm curious how to set the values of a LADSPA plugin uing the [plugin~] object. Seems like it's a bit of a pain in the ass to use. For example this one: Control input(s): #1 "Input gain (dB)" #2 "Frequency" #3 "Exp FM gain" #4 "Resonance" #5 "Resonance gain" #6 "Filter poles" #7 "Output gain (dB)"
you need to send [control #number value ( to [plugin~]'s first intet.
HTH
x