[LAD] LADSPA: Calf Reverb : connect_port strange bug?

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Linux Audio Developers <linux-audio-dev@...>
Date: Friday, February 10, 2012 - 4:02 pm

--90e6ba6e8edea28b6f04b89e40fe
Content-Type: text/plain; charset=ISO-8859-1

Hey all,

I'm currently trying to fix the reverb in Luppp and I'm running into a
rather strange bug:
I have an array of floats that is used to set the plugins parameters: its
called controlBuffer.
The following code connects the ports to the addresses of the float buffer.

The crazy thing is: The print outs before & after the connect ports are
different!
I don't understand how this is possible, but perhaps I'm missing something
LADSPA.

cout << "Decay: " << controlBuffer[4] << " Wet: " << controlBuffer[8]
<< " Dry: " << controlBuffer[9]
<< " preDelay: " << controlBuffer[10] << " highDamp " <<
controlBuffer[5] << endl;

descriptor -> connect_port ( pluginHandle , 0 , buffer );
descriptor -> connect_port ( pluginHandle , 1 , buffer );
descriptor -> connect_port ( pluginHandle , 2 , &outputBuffer[0] );
descriptor -> connect_port ( pluginHandle , 3 , &outputBufferR[0] );

descriptor -> connect_port ( pluginHandle , 4, &controlBuffer[4] );
descriptor -> connect_port ( pluginHandle , 5, &controlBuffer[5] );
descriptor -> connect_port ( pluginHandle , 6, &controlBuffer[6] );
descriptor -> connect_port ( pluginHandle , 7, &controlBuffer[7] );
descriptor -> connect_port ( pluginHandle , 8, &controlBuffer[8] );
descriptor -> connect_port ( pluginHandle , 9, &controlBuffer[9] );
descriptor -> connect_port ( pluginHandle ,10, &controlBuffer[10] );
descriptor -> connect_port ( pluginHandle ,11, &controlBuffer[11] );
descriptor -> connect_port ( pluginHandle ,12, &controlBuffer[12] );

cout << "Decay: " << controlBuffer[4] << " Wet: " << controlBuffer[8]
<< " Dry: " << controlBuffer[9]
<< " preDelay: " << controlBuffer[10] << " highDamp " <<
controlBuffer[5] << endl;

Example Output:
Decay: 4.7685 Wet: 0.70709 Dry: 0.696707 preDelay: 50 highDamp 0
Decay: 1.5 Wet: 0.25 Dry: 1 preDelay: 0 highDamp 5000

The problem is that the reverb plugin doesn't react to my input parameters,
but just processes based
on the 1.5, 0.25 wet, preDelay 0, and highDamp 5000 *all* the time, and
there's nothing I can do about it.

Am I doing something fundamentally wrong? I've tried connecting the ports
every process(), once, and then leave them.
I've hard coded values, it seems to make no difference.

These are the two relevant sources:
https://github.com/harryhaaren/Luppp/blob/master/src/ladspahost.hpp
https://github.com/harryhaaren/Luppp/blob/master/src/ladspahost.cpp

Help appreciated! -Harry

--90e6ba6e8edea28b6f04b89e40fe
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hey all,I'm currently trying to fix the reverb in Luppp and I&#=
39;m running into a rather strange bug:I have an array of floats that i=
s used to set the plugins parameters: its called controlBuffer.The foll=
owing code connects the ports to the addresses of the float buffer.
The crazy thing is: The print outs before & after the connect ports=
are different!I don't understand how this is possible, but perhaps=
I'm missing something LADSPA.=A0=A0=A0 cout << "Dec=
ay: " << controlBuffer[4] << "=A0 Wet: " <&lt=
; controlBuffer[8] << "=A0 Dry: " << controlBuffer[9]=

=A0=A0=A0=A0=A0=A0=A0=A0 << "=A0 preDelay: " << contr=
olBuffer[10] << "=A0 highDamp " << controlBuffer[5] &=
lt;< endl;=A0=A0=A0 =A0=A0=A0 descriptor -> connect_port ( pl=
uginHandle , 0=A0 , buffer );
=A0=A0=A0 descriptor -> connect_port ( pluginHandle , 1=A0 , buffer );=A0=A0=A0 descriptor -> connect_port ( pluginHandle , 2 , &outputB=
uffer[0] );=A0=A0=A0 descriptor -> connect_port ( pluginHandle , 3 ,=
&outputBufferR[0] );
=A0=A0=A0 =A0=A0=A0 descriptor -> connect_port ( pluginHandle , 4, &=
amp;controlBuffer[4] );=A0=A0=A0 descriptor -> connect_port ( plugin=
Handle , 5, &controlBuffer[5] );=A0=A0=A0 descriptor -> connect_=
port ( pluginHandle , 6, &controlBuffer[6] );
=A0=A0=A0 descriptor -> connect_port ( pluginHandle , 7, &controlBuf=
fer[7] );=A0=A0=A0 descriptor -> connect_port ( pluginHandle , 8, &a=
mp;controlBuffer[8] );=A0=A0=A0 descriptor -> connect_port ( pluginH=
andle , 9, &controlBuffer[9] );
=A0=A0=A0 descriptor -> connect_port ( pluginHandle ,10, &controlBuf=
fer[10] );=A0=A0=A0 descriptor -> connect_port ( pluginHandle ,11, &=
amp;controlBuffer[11] );=A0=A0=A0 descriptor -> connect_port ( plugi=
nHandle ,12, &controlBuffer[12] );
=A0=A0=A0 =A0=A0=A0 cout << "Decay: " << controlB=
uffer[4] << "=A0 Wet: " << controlBuffer[8] << =
"=A0 Dry: " << controlBuffer[9]=A0=A0=A0=A0=A0=A0=A0=A0=
<< "=A0 preDelay: " << controlBuffer[10] << &q=
uot;=A0 highDamp " << controlBuffer[5] << endl;
Example Output:Decay: 4.7685=A0 Wet: 0.70709=A0 Dry: 0.696707=A0 pr=
eDelay: 50=A0 highDamp 0Decay: 1.5=A0 Wet: 0.25=A0 Dry: 1=A0 preDelay: =
0=A0 highDamp 5000The problem is that the reverb plugin doesn't=
react to my input parameters, but just processes based
on the 1.5, 0.25 wet, preDelay 0, and highDamp 5000 *all* the time, and the=
re's nothing I can do about it.Am I doing something fundamental=
ly wrong? I've tried connecting the ports every process(), once, and th=
en leave them.
I've hard coded values, it seems to make no difference.These ar=
e the two relevant sources:https://github.com/harryhaaren/Luppp/bl=
ob/master/src/ladspahost.hpp

https://github.com/harryhaaren/Luppp/blob/master/src/ladspahost.cppHelp appreciated! -Harry

--90e6ba6e8edea28b6f04b89e40fe--

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[LAD] LADSPA: Calf Reverb : connect_port strange bug?, Harry van Haaren, (Fri Feb 10, 4:02 pm)
Re: [LAD] LADSPA: Calf Reverb : connect_port strange bug?, Harry van Haaren, (Sun Feb 12, 2:34 pm)
Re: [LAD] LADSPA: Calf Reverb : connect_port strange bug?, Krzysztof Foltman, (Mon Feb 13, 12:58 pm)