FilterDelays - Delay inspired bespoke units

our duo played the EMS drone day livestreamed show today and in my part i heavily relied on these insanely great units. i’ll share the recording later when we mix it somewhat, but just wanted to thank @yrn1 for their amazing work!

3 Likes

I’m so happy that you like them! Looking forward to hear the mix!

1 Like

I wonder if it would be possible to have a filter delay unit with low pass as well as high pass. I often want my delay to just have some mids leftover and with the bipolar control you can only either have low pass or high pass.

To keep the ui simple, I wanted to have as few controls as possible. But once I figure out how to create extra configuration screens, I will release a version that exposes the full 3band EQ.

Anyone has some pointers or examples on how to create configuration screens?

1 Like

The built in units are a good reference for that. Sloop (scroll down for a pic) also has somewhat extensive menu controls and a lot of custom views.

yeah, I totally appreciate the challenge of choosing the right controls. Especially when there is always “one more” you could add.

I must have missed that. Aren’t the built-ins all the same default subviews? Anyway, I’ll check out sloop for reference. Thanks!

They’re all mostly the same but there’s little special cases here and there to pull from. I think most custom units are going to be full of special cases. Made something recently here (I’ll push up in a few days) which could be a helpful jumping off point.

That’s nice! I have some explorations to do :wink:

Hmm, I’m trying to expose the 3 Band EQ controls so you can have separate high and low damp at custom frequencies. But I’m experiencing some trouble with EQ3: when lowering either low or high gain, a resonant peak appears, which gets stronger with higher high frequency and lower low frequency. This is no problem at all with high frequencies below 6000Hz and low frequencies above 2000Hz, but beyond those, my feedback loop gets out of control, especially in the FDN units, which are supposed to have at most unity gain feedback matrices.
As a naive solution, I tried adding a limiter in the feedback loop, which prevents it from getting out of control, but the resonant peak obviously remains and makes the FDN units rather useless with wrongly configured frequencies.
I could also limit the low and high frequencies to ranges that don’t get out of control, but those are then very limited (low > 2000 and high < 6000, so, e.g. you can’t dampen only the subs).
I’m using EQ3, because it is a lot cheaper than a ladder filter. This one though doesn’t seem to have a resonant peak, but to my taste, it is too steep.
Ideally, I’d want a shelving filter without any resonance…
Any ideas?

I could probably whip up the shelving filters here pretty quickly with my existing DSP if you’d like to use that instead. There does seem to be something weird going on with the EQ3 at high frequencies.

Edit: I retract my offer, it’s too hard for right now :slight_smile:

There is also a FixedFilter class in the corelib that’s that has a parameter for Q. But it isn’t used anywhere and it doesn’t have any of the traditional parameters. Would that be a leftover experiment?

Yea that looks like an experiment with biquads, it sets the filter cutoff in the ctor so it can pre-compute all filter coefficients exactly once. So not a good candidate here.

The stereo ladder filter and fixed high pass (fixed to frame) filters are probably your best options if EQ3 is having issues.

I don’t think the ladder filter has any resonance at all when q is set to zero but I could be wrong

Yes, but more than double CPU usage compared to EQ3: I’d need both a 4 low and 4 high passes and each of them by itself is more expensive than EQ3. That’s about 7% extra CPU. Damn… until I find some other solution, I think I’ll stick with the tilt-style EQ with fixed frequencies on the EQ3.

1 Like

Do you need 4 stereo filters or just 4 filters? Stereo ladder filter is stereo so you can use both channels to cut that in half maybe

Also yea filters are expensive, at the dsp level you can precompute coefficients per frame to save a ton of cycles as long as you don’t need to audio rate modulate the cutoff. I considered including a flag for this in my stuff but ended up nixing it. In your case as long as all your filters have the same cutoff you could save a lot there if you ever go down a layer.

1 Like

I need 4 mono lowpass and 4 mono highpass. Each kind with the same frequency. I don’t care about audiorate update. These are typically set and forget. What is important is that they are not steep. Like 6dB/oct. max. Even better is shelving filters, because it sounds nicer if the damped frequencies equally fade away over the full damped range. With a ladder LPF or similar, at, say 1200Hz, the 300Hz frequency would be damped much much faster than the 600Hz (twice as fast with a 6dB/Oct filter). While with a shelving filter, they go down at a similar rate. When I tried with the built-in ladder filters, I didn’t like it at all…

1 Like

Just tried the FDN with ladder lpf and hpf, and even with zero resonance, they still peak a little. Enough to make the feedback loop go out of control.

DM me if you want to collab, I can pull some of this filter DSP into your repo to create a fixed filter bank, gonna release it sometime this week.

We could try. I don’t have the whole cross compilation thing set up yet (mac m1 here), but I’m sure interested to give it a go.

Hi there @yrn1 !

Attempting to use Filter Delays for the first time, and it’s throwing an error. I’ll attach the log file below since the log entry exceeds Discourse’s character limit, and does not allow .txt attachments.

ERROR REPORT BEGIN.pdf (112.4 KB)