Volunteer needed for Mac build of DspFilters

Seriously? A juce-forum-goer like you didn’t ever use the new jucer before?

[quote=“ke20”]But there is some assert when I close the app.
In ThreadQueue destructor (I think you forgot to call audioDeviceStopped because it is the only place where you close the queue).[/quote]

Hmm…you shouldn’t have to call audioDeviceStopped, I thought it gets called for you automatically when the audio device manager is deleted. This might be an issue with the sound driver?

Did you add a Jucer file and builds to your project, or do you want an xcode project? It’s probably going to have to be compressed, by the way, most source control systems dislike xcode projects.

Bruce

I have not problem with Xcode project with SVN.
I just commit the project.pbxproj file inside the .xcodeproj.

Kevin

Bruce added a Mac xcode project if anyone wants to give it a spin.

The file DspFilter.cpp is missing. If I remove it from the compiled file, it compiles and runs successfully but the are some painful beeps when I change the filter type.

Kevin

Yes, DspFilter.cpp and DspFilter.h have been removed (Bruce?). They were from the older version and now that everything’s been brought over the files are not needed.

Painful beeps when you change the filter type? There shouldn’t be…unless you have a really high order set. When you change filters the old one is disposed and a new one with a zeroed out history is put in its place. Can you tell me exactly what filter and settings you are switching from and to?

I retried it and you are right, it is only when I set the order to high.

Cheers,
Kevin

Well first of all, there’s no such thing as too high! Although in practice, I question if order-50 filters are really useful.

So anyway, lets talk about high order filters. They have a ton of state information and they are extremely sensitive. If you are going to play with it, I suggest Direct Form II or Transposed DirectForm I (I just checked the last one in). Also, go slow with parameter changes like the cutoff frequency, especially as you get near the low end.

I find that an order-50 Butterworth starts to get a little bit wild at around 2,800Hz or so. If you change the parameters too fast, and your filter “blows up” (starts producing noise) you can clear out the state information by hitting the Reset button. If the audio returns to normal, it means that you changed parameters too fast. If the audio is still screwed up it means that the filter is unstable at those settings. Probably due to quantization of poles near complex(-1,0).

There is a more technical discussion of high order filter stability here:

You should be able to hammer the knobs on the RBJ Biquads and low order filters (2 to 4) all day without problems though.

gcc doesn’t like enums in namespaces, it seems… complains that Dsp::ParamID::idSampleRate is “not a class or namespace”.

Edit: just have to use Dsp::idSampleRate instead, sorry. The previous version worked on Windows…