Anti-aliasing aside, do you have any idea how Voxengo achieved such stunning fft graphics?
Is it cubic splines? If so, is there a sacrifice in accuracy to get a better visual?
This is 4096 block size, smoothing off:
I have no answer to your question, only an agreement that span is great!
Have you looked at melda's multi analyser? It's display is amazing also (not as often talked about, but great quality IMO)
It has an insane amount of settings - you can really get into it and change just about everything. Not sure if that would give you any insight?
First off, thanks a lot for this EQ - what a great acheivement!!
Really awesome to see things like this being developed for Reaper.
It looks beautiful!
How does Fabfilter deal with the Nyquist problem without adding latency?
One thing i have been looking into lately is automation, and what i have found is latency can often make automation inaccurate. Now, this one only introduces 16 samples so i am sure its negligible....but it is still something i am thinking about.
First off, thanks a lot for this EQ - what a great acheivement!!
Really awesome to see things like this being developed for Reaper.
It looks beautiful!
How does Fabfilter deal with the Nyquist problem without adding latency?
One thing i have been looking into lately is automation, and what i have found is latency can often make automation inaccurate. Now, this one only introduces 16 samples so i am sure its negligible....but it is still something i am thinking about.
Thanks!!
Solving the Nyquist 'cramping' problem without oversampling is a good question. In the beginning, I intended ReEQ to have a similar feature set and simplicity to Ableton's EQ8. I got carried away and now I think it surpasses it. But EQ8 also solved the Nyquist issue by oversampling (HQ mode). Some other EQs such as Studio One's built-in EQ also solve it by having an 'HQ' oversampling mode - at the cost of a little latency.
It's addressed in the literature but not fully. There's a fix for the 'peak' filter near Nyquist by Orfanidis but it's using Direct Form for bi-quads and ReEQ, like EQ8, uses Andy Simper's SVF derivation. Also, other filter shapes aren't addressed there. The MeldaProduction EQs optionally have either the 'analog' peak, which I think is the Orfanidis one, or you oversample. Quite a few analog modelled channel plugins use something like Orfanidis to de-cramp the peaks.
It's definitely a solved problem but I haven't looked extensively into how. Fabfilter Q3, DMGAudio Equilibrium etc all solve it and for all filter shapes. So I'm thinking there's a fundamentally different way of doing the filter math that makes it straightforward.
In the end, I went for a solution that's at least on par with the stock EQs in other DAWs whilst building a lot on the feature set to surpass them. It's super transparent and in truth you don't always need HQ and can drop back to ECO which also improves performance. But yeah, the trade-off is a few samples latency.
any chance we can get to introduce data values ? values for frequency for example. using the mouse doesn't match the value i want , say 150Hz for example.
thanks.
EDIT: dB´s per octave should be a nice add too. If i need to set a 150 Hz band pass filter with a Q factor of 1 and 36 dB per octave filter, i would i do that ?
I spotted two issues:
1. if window is small, controls are automatically hiding. There is no any kind of substitution (info or mini-menu). I spent several minutes trying to figure out what broke
2. sometimes, the frequency node stops reacting on left mouse clicks when covered by control pane. It remains "untouchable" even after disabling the pane.
any chance we can get to introduce data values ? values for frequency for example. using the mouse doesn't match the value i want , say 150Hz for example.
thanks.
EDIT: dB´s per octave should be a nice add too. If i need to set a 150 Hz band pass filter with a Q factor of 1 and 36 dB per octave filter, i would i do that ?
I had a bunch of test code for keyboard value input. There's an issue though. You can only tell a JSFX to get total keyboard focus all the time. That means that when you're not entering a value, none of the Reaper keys would work unless you click off the JSFX window. You can't toggle it either, so you can't just take focus when entering a value. It's all the time. It thought that was really annoying so didn't pursue it.
I agree though that entering precise values is a good thing to have. I've wanted to do it several times. I have an idea that'll still use the mouse but bring up a widget that lets you do it by clicking. Not as fast as keyboard entry but at least you'll be able to do it. I'll give it some more thought.
I spotted two issues:
1. if window is small, controls are automatically hiding. There is no any kind of substitution (info or mini-menu). I spent several minutes trying to figure out what broke
2. sometimes, the frequency node stops reacting on left mouse clicks when covered by control pane. It remains "untouchable" even after disabling the pane.
with regards
Thanks for the feedback.
The controls hide mainly to allow embedding in TCP and MCP in Reaper 6. There's no flag you can check to see if you're embedding so I had to use the size of the window to signify it. I'll likely leave that as it is for now.
Regarding the bug - yeah, it shouldn't do that. If the pane is disabled then you should have full screen selection access. I'll sort that out. Until then you can use the panel next/prev node to select it then use the knobs to alter gain.
I had a bunch of test code for keyboard value input. There's an issue though. You can only tell a JSFX to get total keyboard focus all the time. That means that when you're not entering a value, none of the Reaper keys would work unless you click off the JSFX window. You can't toggle it either, so you can't just take focus when entering a value. It's all the time. It thought that was really annoying so didn't pursue it.
I agree though that entering precise values is a good thing to have. I've wanted to do it several times. I have an idea that'll still use the mouse but bring up a widget that lets you do it by clicking. Not as fast as keyboard entry but at least you'll be able to do it. I'll give it some more thought.
Maybe if you enable a values box, not pretty i know, but at least would be functional for this task.
Many JSFX have that like he simple tone generator you can add values.
The controls hide mainly to allow embedding in TCP and MCP in Reaper 6. There's no flag you can check to see if you're embedding so I had to use the size of the window to signify it. I'll likely leave that as it is for now.
Could you please check size of the window when the pane is hiding?
IMO the window is pretty big yet (I recall it must have been about 1000px)
Maybe if you enable a values box, not pretty i know, but at least would be functional for this task.
Many JSFX have that like he simple tone generator you can add values.
That was one of the options I considered. To enable a visible single slider value that you can generically 'assign' to parameters like cutoff, resonance, etc. Thing is, not only would it look weird and work weirdly, but you'd want a different range of values depending on the parameter you're wanting to change. A frequency param would have a different range (and scale) to a resonance parameter and so on. Comes out really kludgy.
Could you please check size of the window when the pane is hiding?
IMO the window is pretty big yet (I recall it must have been about 1000px)
There are three size modes: Full, Compact and Very Compact.
Full is what you see normally, usually with everything visible. Compact happens when the window is lower than 600x320. Very Compact happens when the window is lower than 300x160. By 'lower', I mean if either width or height goes below the mode width and height thresholds.
Those resolutions are double for retina displays to account for retina having twice the resolution.
It's addressed in the literature but not fully. There's a fix for the 'peak' filter near Nyquist by Orfanidis but it's using Direct Form for bi-quads and ReEQ, like EQ8, uses Andy Simper's SVF derivation. Also, other filter shapes aren't addressed there. The MeldaProduction EQs optionally have either the 'analog' peak, which I think is the Orfanidis one, or you oversample. Quite a few analog modelled channel plugins use something like Orfanidis to de-cramp the peaks.
Indeed there is. A kind fellow has just pointed me at that and I've remembered that I have that paper already downloaded from some time ago.
The issues there are that it's missing resonant shelves, notch filter and corrected 6db lowpass and highpass filters. I'm also not sure what the characteristics are when you rapidly change the frequency and resonance for automation (the SVF I use is rock solid).
If anybody could point me at a reference implementation then I'd be willing to take a closer look. I've been unable to find one.
The matching concepts are interesting, but I don't really trust any of them. They tend to eventually show their flaws. I think you're right for favoring the SVF/TPT filters. They're basically as good as it gets, despite the cramping.
The matching concepts are interesting, but I don't really trust any of them. They tend to eventually show their flaws. I think you're right for favoring the SVF/TPT filters. They're basically as good as it gets, despite the cramping.
Thanks! Can't believe I missed that. If there'd have been resonant shelves, notch and 6db low/highpass then I'd have been sorely tempted to give them a go. Might be able to derive the notch but I'm a bit stumped for the shelves and 6db filters.
I wonder if the Fabfilter and DMGAudio folk are using matching algorithms? Equilibrium supports a lot of different filter shapes - it'd be a pain to have to formulate matching/compensation for everything... But I dunno, maybe they went to all the trouble.
What flaws do you think show up? I've heard people talk about phase near Nyquist but it's most likely inaudible?
The matching concepts are interesting, but I don't really trust any of them. They tend to eventually show their flaws. I think you're right for favoring the SVF/TPT filters. They're basically as good as it gets, despite the cramping.
All "analogue" sounding EQs use either oversampled BiQuads or "analogue" matched filter.
If you have the right implementation of "analogue" matched filter it could sound very pleasant wo any flaws.
Hello there, I just want to say that ReEQ is amazing, it made me stop using FabFilter Pro Q3 for this awesome free alternative.
But I have a litte issue with it : when applying a low-cut, ReEQ start using a looooot of CPU, except when a sound is played through the plug-in (so when it's inactive it munch CPU but when it's active no problems.)
What's that all about? Did I miss something in my way of using it? Thank for your answers
By flaws I mean the curve-matching concepts tend to come with added constraints (usually a frequency limit below Nyquist) outside which the approximation fails.
Not that they they can't sound good or that they cause audio artifacts.
I was curious how the Vicanek filters compare to common plugins. Here are the results. I wonder if Crave EQ is using additional FIR correction like DMG.
By flaws I mean the curve-matching concepts tend to come with added constraints (usually a frequency limit below Nyquist) outside which the approximation fails.
Not that they they can't sound good or that they cause audio artifacts.
Yes, I've tested Fabfilter with Plugin Doctor and you can see the characteristic 'lifting'/matching of the curve next to Nyquist. What's interesting is that Fabfilters visual rendered curves aren't exactly the same as the audio curves you see. Very close, but not the same. Which is fair enough. Even in ReEQ I use RBJ to render the filters and SVF to process the audio.
With the Orfanidis method, I expect that the way that the peak doesn't quite work is still less audible and intrusive than the whole peak cramping.
Hello there, I just want to say that ReEQ is amazing, it made me stop using FabFilter Pro Q3 for this awesome free alternative.
But I have a litte issue with it : when applying a low-cut, ReEQ start using a looooot of CPU, except when a sound is played through the plug-in (so when it's inactive it munch CPU but when it's active no problems.)
What's that all about? Did I miss something in my way of using it? Thank for your answers
Thanks for the feedback. I've had a couple of reports of this - it shouldn't be doing it. I'll take a look when I get the chance.
I've just realised what's happening here....I was focussed on the very right-hand side of the curve as it moves towards Nyquist. The whole bell shape changes shape!! Blimey, that's pretty rough. Could it be an error in implementation perhaps?
I've just realised what's happening here....I was focussed on the very right-hand side of the curve as it moves towards Nyquist. The whole bell shape changes shape!! Blimey, that's pretty rough. Could it be an error in implementation perhaps?
Looks odd. Which EQ is this?
In any case Orfanidis will never fully replace 2x/4x oversampling.
But the filter itself could sound very smooth, if implemented right
Looks odd. Which EQ is this?
In any case Orfanidis will never fully replace 2x/4x oversampling.
But the filter itself could sound very smooth, if implemented right
IDK. The word on the street tends to be that it has issues.
Quote:
Originally Posted by nitsuj
Could it be an error in implementation perhaps?
Maybe, but I used the code directly from Orfanidis's paper.
At lower Q settings it becomes unpredictable and blows up at certain frequencies.
At a "reasonable" Q there's still cramping.
Vicanek's does a lot better.
Does any one know what the Steven Slate 'Infinity EQ' does to solve this issue?
I know he says it has 'analog matched' curves - or maybe just analog modelled...but it is not oversampled - zero latency.
One thing i personally would love for this EQ is to be able to see a note name read out when in MCP/TCP mode. Would be very useful.
Great work on this! Love the Reaper community, such a creative bunch.
Sounds like the Vicanek filters are pretty good then? Especially since we're in double precision land anyway (he does mention that filter construction with the matched ones requires it)
Since you love testing things Erbird, did you happen to give them a trial by fire with audio-rate modulation or sudden gain transitions?
Sounds like the Vicanek filters are pretty good then? Especially since we're in double precision land anyway (he does mention that filter construction with the matched ones requires it)
Since you love testing things Erbird, did you happen to give them a trial by fire with audio-rate modulation or sudden gain transitions?
Actually, that's exactly what I was doing. Maybe you can try out my test JS?
It's hard to assess when each filter starts to break down. Even TPT has it's limits, albeit well beyond the others and with less artifacts.
I don't see Vicanek's filter performing any better than RBJ's. Am I using the wrong direct form?
The buttons are kinda wonky in 1.08. I don't have earlier versions to test, but they don't look wonky in the screenshots I see, but this is what I get one my (non-HiDP) display:
Basically, it seems all the 'small' buttons are 2 pixels too short, and text everywhere is 2 pixels far down except for the phase symbols which are 1 pixel too far down.
When I correct those on a copy of the script, I get:
Which is what I imagine is the intended result, except I don't seem to be able to correct the dbScale button so far.
The buttons are kinda wonky in 1.08. I don't have earlier versions to test, but they don't look wonky in the screenshots I see, but this is what I get one my (non-HiDP) display:
Basically, it seems all the 'small' buttons are 2 pixels too short, and text everywhere is 2 pixels far down except for the phase symbols which are 1 pixel too far down.
I need to fix this. I'm on Mac and both retina and normal display look like the bottom image. Are you on PC by any chance?
Thanks for the kind words all, it's much appreciated. I hope you get some great use out them.
Sju, I'm on a Mac 15" laptop so everything is kind of calibrated on that although I did support non-retina. In theory ReSpectrum is using Verdana with a fixed size of 9 for non-retina. Can you tell me what machine / OS / screen size you're on? I'll investigate.
Eliseat, I think you might have the same issue too if you tried to do it with another EQ. I'll have a think about a solution. I could introduce an offset for frequency and dB - it's those that you'd modulate. The code would keep the handles in place but add the offsets for audio processing. That'd take another 10 slider slots bringing the total up to 62 - pretty close to the 64 limit!
Reaperto, thanks for reminding me about the listen feature I'd implemented. I'd forgotten all about it! ReSpectrum has it too.
Thx For the GREAT EQ!
I have been using it for about a month and LOVE IT!! I sent it to a friend of mine and they are getting two different ReEQ vsts...one says ReEQ and the other ReEQ.jsfx did they install it wrong??
I can't remember how I installed mine but it seems to work fine..I just downloaded the manual pdf and all looks well on my side..Thx, Jeff
Sounds like the Vicanek filters are pretty good then
Yes!!!
I have been watching the Vicanek model for a long time and I like how its filters sound. I already wrote nitsuj in PM that he would integrate the Vicanek model into ReEQ
Thx For the GREAT EQ!
I have been using it for about a month and LOVE IT!! I sent it to a friend of mine and they are getting two different ReEQ vsts...one says ReEQ and the other ReEQ.jsfx did they install it wrong??
I can't remember how I installed mine but it seems to work fine..I just downloaded the manual pdf and all looks well on my side..Thx, Jeff
The file that Reaper loads is called 'ReEQ.jsfx'. It's a source file that's compiled when it's loaded into Reaper, so you can look at the top of the file and make sure the version is the latest one (v1.0.8 as of today).
Yes!!!
I have been watching the Vicanek model for a long time and I like how its filters sound. I already wrote nitsuj in PM that he would integrate the Vicanek model into ReEQ
It'll probably happen at some point. If there was a drop-in reference, that is, resonant shelf filters, notch and 6db filters then I'd have done it already.
Those aren't easy to come by - I haven't found them yet. I think somebody said on here that the resonant shelf filters need an iterative solution. All this means I'll have to find a good dedicated amount of time to figure those out.