Skip to content

Conversation

zonkmachine
Copy link
Contributor

Dyson Compressor

NaN - Release time 0.0f = divide with 0 here:
float rgainfilter = 1.0f / (release_time * sample_rate);

In the solution: port_range_hints[DYSONCOMPRESS_RELEASE_TIME].LowerBound = 0.0000001;
Maybe use a constant for 0.0000001 ... 'weeLittleFloat' = 0.0000001 ?
Are there any suitable math constants to use? I just put in the smalles number that would give 0 and 1 back in the knobs extreme positions.

Also, I found a generally odd looking line here
if (compressionratio == 0.50f) should probably be < or >
I thought it could potentionally produce a glitch if you sweep the compression knob across 0.5f as it would change to another algorithm for that value only but I haven't managed to produce anything buggy because of it. I haven't dived into the math of it yet.


LADSPA debugging code

Put general debugging code for LADSPA so we can stop those NaN's and whatever may be hiding in there. In response to #1048 and discussion here .
@tresf :) I've looked at cmakedefine01 but I don't think any of that applies to this case, right?

@tresf
Copy link
Member

tresf commented Jan 31, 2017

Are there any suitable math constants to use? I just put in the smalles number that would give 0 and 1 back in the knobs extreme positions.

FLT_MIN, I believe.

LADSPA debugging code... Put general debugging code for LADSPA so we can stop those NaN's and whatever may be hiding in there. In response to #1048 and discussion here . @tresf :) I've looked at cmakedefine01 but I don't think any of that applies to this case, right?

Hmm... http://stackoverflow.com/a/5354352/3196753

According to this, we can pull out preprocessor flags here too if we do it correct. Not my area of expertise, but I'm sure some others will know.

@zonkmachine
Copy link
Contributor Author

Hmm... http://stackoverflow.com/a/5354352/3196753

According to this, we can pull out preprocessor flags here too if we do it correct. Not my area of expertise, but I'm sure some others will know.

#define assert(ignore) ((void)0)
There is debug.h .

@zonkmachine zonkmachine force-pushed the ladspastuff branch 4 times, most recently from 2449f99 to 0d21bd2 Compare February 1, 2017 08:36
@Umcaruje
Copy link
Member

Umcaruje commented Feb 1, 2017

@zonkmachine do you need some debugging work? I have some projects that are basically NaN farms 😃

@zonkmachine
Copy link
Contributor Author

do you need some debugging work? I have some projects that are basically NaN farms

Yes! zip and send! 🚜

@@ -241,6 +243,14 @@ bool LadspaEffect::processAudioBuffer( sampleFrame * _buf,
for( fpp_t frame = 0;
frame < frames; ++frame )
{
if ( isnan( pp->buffer[frame] ) ||
Copy link
Contributor Author

@zonkmachine zonkmachine Feb 1, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tresf I need your cmakedefine01 here to go if ( LMMS_DEBUG || or maybe an LADSPA_DEBUG that is set by the former. If I try to cmakedefine01 LMMS_DEBUG that isn't working because it's already defined.
LMMS_DEBUG && 😃

@Umcaruje
Copy link
Member

Umcaruje commented Feb 1, 2017

There, have an ILS farm. It reliably looses sound after bar 9 on both windows and linux.
Syntask x Umcaruje x Greippi - Musaa.zip

If I stumble upon any other reliably problematic projects, I'll keep you posted ;)

@tresf
Copy link
Member

tresf commented Feb 2, 2017

@tresf I need your cmakedefine01 here to go if ( LMMS_DEBUG || or maybe an LADSPA_DEBUG that is set by the former. If I try to cmakedefine01 LMMS_DEBUG that isn't working because it's already defined.

Can you expand on this statement? I can't find much about LMMS_DEBUG in general. Where is it defined already?

@zonkmachine
Copy link
Contributor Author

There, have an ILS farm. It reliably looses sound after bar 9 on both windows and linux.

Label:  Limiter 
ID: 0x8521
Name:  Calf Limiter LADSPA 
 ... Assertion `! isnan( pp->buffer[frame] )' failed.

If I nudge the volume on the bitinvader and the cowbell, which are the two tracks acting up like this, before the sounds are played, I can get the song to play all the way to the end. I wonder if that means it could be our bug? That the plug-in isn't set up properly... I think the next step in this case is that you should try it with the latest calf plug-ins and see if there is any difference.
Upstream fix that could be related: calf-studio-gear/calf@ec8afdd

@Umcaruje
Copy link
Member

Umcaruje commented Feb 2, 2017

I think the next step in this case is that you should try it with the latest calf plug-ins and see if there is any difference.

Does Calf even support their LADSPA versions, or have they switched to LV2 completely? If they still work on the LADSPAs, we could just pull in the changes, right?

@Umcaruje
Copy link
Member

Umcaruje commented Feb 2, 2017

Looks like they removed support for ladspa since version 0.0.19-rc3

calf-studio-gear/calf@460642b

@zonkmachine
Copy link
Contributor Author

Looks like they removed support for ladspa since version 0.0.19-rc3

And our calf changelog reads Version 0.0.60.0 (unreleased)
So I guess we just patch what we can. I'll try and see if there are any fixes committed in the Linux repositories that we can use.

@Umcaruje Umcaruje added this to the 1.3.0 milestone May 14, 2017
@PhysSong PhysSong assigned PhysSong and unassigned PhysSong Aug 10, 2017
@PhysSong
Copy link
Member

Wrong clicks:(

@zonkmachine
Copy link
Contributor Author

The debug part of this PR, 28b30d6, is superceded by #3687 . Closing.
The other issues will be addressed in a separate PR or upstream.

@zonkmachine zonkmachine removed this from the 1.3.0 milestone Oct 2, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants