Old 11-15-2018, 07:50 AM   #1
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 162
Default ReEQ and ReSpectrum, parametric equalizer and spectrum analyzer

ReEQ and ReSpectrum:



Thought I'd share this with you. It's a couple of pet projects I've been working on for fun recently.

My question was: is it possible to create a FabFilter or EQ8 style high quality filter in JSFX?

ReEQ

ReEQ is an eight-band parametric equaliser. It defaults to HQ (High Quality) oversampled mode so that filter shapes are preserved near Nyquist at the cost of higher CPU and 16 samples latency. An ECO mode is available that runs twice as fast and with zero latency. In either case, the EQ is highly transparent.

The filter code itself is based on Andy Simper's (Cytomic) SVF filter algorithms. They are far higher quality than the usual RBJ cookbook filters. These are the same zero delay filters used in Ableton's EQ8 which is well regarded for its high quality.

In addition, I've provided 6db slope filters and increments of 6db thereof (a combination of one and two pole filters) with cutoff slopes for high and low of up to 96dB. I've also provided Butterworth filters for steeper (but more resonant) slopes.

Full mid/size or left/right stereo filter bands are implemented.

Feature wise I see it as an improvement over ReaEQ (more filter types and slopes, mid/side or left/right processing).

Features

- The spectrum display type has a gradual decay effect (as used by many other commercial EQs). I find this much more useful for musical applications.

- The 'Settings' menu at the top allows various spectrum display settings to be adjusted. That's which spectrum to show (mid/side/left/right etc), whether to fill the spectrum or use lines, the ceiling and floor range, the tilt of the spectrum (it tilts around 1k freq), window type, window size and whether to show the spectrum as it was before the EQ affected it.

- The buttons at the bottom are: Oversample mode, mid/side or left/right mode, the scale of the filter bands, total gain, mid/left gain, side/right gain. The numeric values are altered by clicking on the button and dragging the mouse up or down.

- Double clicking in space creates a filter band node. Depending where the mouse x is on the spectrum you'll either create a high pass, low shelf, peak, high shelf or low pass filter.

- Click on the filter band node and move mouse to alter its frequency and dB.

- Alt Double click deletes a node.

- Double clicking on a filter band node will toggle enable/disable.

- Hovering over a node and using the mouse wheel will adjust the filters Q value.

- Command (Mac) or Ctrl (Windows) and mouse wheel hovering over a slope filter will adjust the slope dB.

- Right click over a filter band node will bring up a menu. Options are: Disable/Enable, Invert gain, Select shape of filter, dB of slope (only for high/low pass filters), Stereo placement (mid/side, left/right), Split node which will split the node into mid/side or left/right and delete.

- When a filter node is in mid/side or left/right mode, some triangles are displayed around the node to give an indication of such.

- Clicking on the top-right yellow EQ dB number will show a menu allowing to select the EQ range from 6dB - 30dB.

- The info box at the mouse cursor when over a node or in listen mode will show useful information such as the frequency of the mouse position or node (if hovering over one), the music note and cents, dB of mouse or filter, filter Q and filter slopes.

- The drawn view scales to fit the full window and when the mouse isn't hovering over the window the programs turns off distracting menus and node handles.

- Holding the left shift key down puts the EQ into solo/listen mode. This mode works either with selected bands or as a freeform listen function. For freeform mode, simply press shift and move the mouse around. You'll see two boundary bars which specify the part of the audio spectrum that will be audible. Pressing the mouse button and moving vertically will increase or decrease the listening volume and you'll see a horizontal bar to tell you where the dB volume is. To solo a band, hold click when hovering over the band node and hold shift down. The soloing works differently for each filter type to accommodate what you may want to be listening for. Dragging filter nodes and altering Q works as normal in this mode so that you can make these adjustments whilst soloing. NB: filter band soloing also respects the mid/side or left/right assignment of the filter node.

- Axis lock for gain and frequency: ALT+drag will lock the frequency axis. CMD (or WINDOWS)+drag will lock gain but allow drag in Y axis to alter Q. CMD (or WINDOWS)+ALT+drag will lock gain and lock Q.

Press ALT or CMD (or WINDOWS) whilst dragging a filter node will lock frequency or gain.

- There is a limit function which can be toggled using the 'LIMIT' button on the bottom button row. All it does is hard clip any overflowing signal to prevent loud surprises.

- AGC (Automatic Gain Control) toggled by clicking the 'AGC' button on the bottom button row. When toggled on, ReEQ will attempt to match the output gain with the input level. A small button with 'S' (for Set) appears next to the AGC button when toggled on. Pressing this 'S' button will set ReEQ's master volume to the matching value and disable AGC once more. To cancel AGC mode simply click the AGC again.

- By default, when a filter node is selected you'll see the bottom centred panel reflect it's properties. You can adjust freq, gain and Q by dragging the mouse on the corresponding dial. To hide or show the panel click on the 'PANEL' toggle button at the bottom of the window.

Press ALT or CMD (or WINDOWS) and double click on a value in the bottom row to reset the numeric values to default.

ReSpectrum

- The same 'Settings' options as ReEQ.

- 'keys' button toggles a piano roll. Hover over the piano keys to see a vertical beam to pinpoint spectrum frequencies.

- 'peaks' button toggles the spectrum display of maximum peaks.

Caveats

- I've only tried it on OSX as I develop on Mac.

- It should support both retina and non-retina displays.

- Only the first five filter bands are exposed as sliders for automation.

- You'll need a reasonable machine performance wise. Closing the window when not in use helps.

- I've used showmenu() for the menus. Technically it's not documented for JSFX so I don't know how well it works on other platforms.

- I borrowed Theo Niessink's RBJ filter code but only for the display magnitude calculations, not for sound processing.

I've attached a zip file which can be unzipped to your Reaper effects directory. The intention is to move to ReaPack at some point.

ReEQ is a labour of love and whilst I'm doing it for fun and to give something to the community, I've been asked if anyone can buy me a beer. If you so wish you can do that using the following link.

https://www.paypal.me/nitsujdsp

12th June 2019
* Close [X] is now DELETE in panel
* Fixed the 6db high/low pass filter bug
* Increase the dial values font size on the panel
* Altered the default window size
* Reaper notified when dials change
* CMD/Window key + double click now zeros values in the bottom row

10th June 2019
* Added filter node panel and toggle.
* Added more frequency labels, now centred, in bottom spectrum row.
* Mouse tracking frequency now also centred.
* Enlarged filter nodes and added node index.
* Improved node stereo indicators.

19th May 2019
* Fixed a long standing AGC glitch issue. Introduced an epsilon clamp check to RMS calcs.
* Added 'Zero Gain' to the filter node menu.
* Added 'Duplicate' to the filter node menu.
* Removed mouse crosshair.
* Changed the license over to MIT.

7th May 2019
* Filter node can now be Mid/Side/Right/Left. Extra transfer curves are shown when appropriate. Mid/Side or Left/Right in bottom bar only selects volume/polarity adjustment in bottom bar.
* Creating a band node uses the same stereo mode as the last selected node.
* Holding CMD/WND key whilst dragging a node now alters Q. Press ALT+CMD/WND and drag to not alter Q. ALT alone and drag still alters node gain only.
* Naming of decibels (dB) now consistent.

3rd May 2019
* Fixed nasty audio spiking bug. Happened when AGC was on and Volume Adjustment JS was prior in chain.
* Improved spectrum rendering (antialiased + gradient)
* Limited low/high pass filter slope selection to smaller sensible set
* Added low/high pass filter slopes up to 120dB
* Added FIR code for oversampling HQ mode at 48kHz.

15th April 2019
* Optimised HQ mode FIR half-band filtering by reducing multiplies and copy operations.
* More improvements to Q handling. Sliders now handle Q as 0..100 (0.10 .. 40) and map linearly rather than logarithmically meaning it'll be easier to automate and better for controllers.

10th April 2019
* Bug fix. Wasn't updating sliders after first 5 properly after loading a project. Artifact of separating out audio and render code for filters.

9th April 2019
* Add frequency to bottom of mouse crosshair
* Disabled nodes now show filter shape as a line (not filled)
* Improved node selection. Mouse now selects nearest node for info box and Q alteration
* Node info box now behaves better in terms of positioning and clamping to window side
* Improved filter smoothing when moving, enabling and disabling filter nodes
* Improved filter node Q sensitivity and smoothness when using mouse wheel
* Fixed graphic glitching when automating a band
* Fixed slider naming bug
* ANA (oversampling) mode now renamed to HQ (for High Quality)

11th March 2019
* Fixed AGC. Deviated from sai'ke's implementation in that it now directly maps output amplitude from the input amplitude rather than iterating to it. Matches ~0db difference when fed white noise.
Attached Files
File Type: zip ReJJ-1.0.5.zip (48.8 KB, 1287 views)

Last edited by nitsuj; 06-12-2019 at 07:16 AM. Reason: New release
nitsuj is offline   Reply With Quote
Old 11-15-2018, 09:15 AM   #2
Eliseat
Human being with feelings
 
Eliseat's Avatar
 
Join Date: Mar 2018
Location: Cologne
Posts: 1,170
Default

What the heck!

This thing is amazing. It seems that the Reaper community got its Christmas presents a bit early this year.

Many thanks.
Eliseat is offline   Reply With Quote
Old 11-15-2018, 12:54 PM   #3
Reaperto
Human being with feelings
 
Reaperto's Avatar
 
Join Date: Apr 2011
Location: Buenos Aires - Argentina
Posts: 468
Default

Great job! Thanks for sharing.

By the way... resizible window... what a luxury!

And Shift+left click enable band pass, with adjustable range via mousewheel!
__________________
ReaLoaded!

Last edited by Reaperto; 11-15-2018 at 01:02 PM.
Reaperto is offline   Reply With Quote
Old 11-15-2018, 01:51 PM   #4
Bri1
Banned
 
Join Date: Dec 2016
Location: England
Posts: 2,432
Default

yep- some amazing shares going on in the world!
very clever for fun!
variety is a spice to really taste.
thanks 2 all that share/care like this with reaper-- the creators.
Bri1 is offline   Reply With Quote
Old 11-15-2018, 02:19 PM   #5
Eliseat
Human being with feelings
 
Eliseat's Avatar
 
Join Date: Mar 2018
Location: Cologne
Posts: 1,170
Default

nitsuj,

your EQ is amazing. But one thing I recognized: If you modulate the frequency, its impossible to catch the same band afterwards because it moves with the LFO. Is there a way to select this band another way? I didn't find a way except going back to the modulation panel to deactivate the LFO.

But anyway. You did a great job here. It feels just intuitive to use this EQ. Many thanks again.

Eliseat is offline   Reply With Quote
Old 11-15-2018, 02:22 PM   #6
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 686
Default

Holy shit. Sounds really good. The spectrum analyzer is extremely good! Thank you!

PS. the font size of the bottom left info box is smaller on ReSpectrum. It's a bit difficult to disinguish the numbers.
Sju is offline   Reply With Quote
Old 11-15-2018, 02:49 PM   #7
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 162
Default

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.
nitsuj is offline   Reply With Quote
Old 11-15-2018, 02:37 PM   #8
DaveKeehl
Human being with feelings
 
DaveKeehl's Avatar
 
Join Date: Nov 2015
Location: Switzerland
Posts: 1,883
Default

Can you put it on the ReaPack?

Also I found a few things that can be improved:

- It would be really nice if we could double click the boxes at the bottom to reset the initials values
- Also tooltips after a few seconds on those boxes could be useful
- If I change M/S to L/R or viceversa the whole box disappears until you move the mouse
- If I double the click the mouse in that lower part where the boxes are, bands are created and this shouldn't happen I guess
- When I scale the interface up there is some weird stuff being displayed until you release the mouse button
- Is it possible to smoothen out the band lines?
__________________
REAPER Contest

Last edited by DaveKeehl; 11-15-2018 at 02:50 PM.
DaveKeehl is offline   Reply With Quote
Old 11-17-2018, 03:01 AM   #9
pim van dorst
Human being with feelings
 
pim van dorst's Avatar
 
Join Date: Dec 2015
Location: holland
Posts: 24
Default reapers pro Q

Quote:
Originally Posted by nitsuj View Post
ReEQ and ReSpectrum:



Thought I'd share this with you. It's a couple of pet projects I've been working on for fun recently.

My question was: is it possible to create a FabFilter or EQ8 style high quality filter in JSFX?

ReEQ

This is an eight band filter. It defaults to oversample x2 so that the filter shapes are preserved near Nyquist but no oversampling is also an option. When oversampling, there is a 16 sample delay introduced and it uses a steep FIR filter at high frequencies to remove aliasing. It's highly transparent in either case.

The filter code itself is based on Andy Simper's (Cytomic) SVF filter algorithms. They are far higher quality than the usual RBJ cookbook filters. These are the same zero delay filters used in Ableton's EQ8 which is well regarded for its high quality.

In addition, I've provided 6db slope filters and increments of 6db thereof (a combination of one and two pole filters) with cutoff slopes for high and low of up to 96dB. I've also provided Butterworth filters for steeper (but more resonant) slopes.

Full mid/size or left/right stereo filter bands are implemented.

Feature wise I see it as an improvement over ReaEQ (more filter types and slopes, mid/side or left/right processing).

Features

- The spectrum display type has a gradual decay effect (as used by many other commercial EQs). I find this much more useful for musical applications.

- The 'Settings' menu at the top allows various spectrum display settings to be adjusted. That's which spectrum to show (mid/side/left/right etc), whether to fill the spectrum or use lines, the ceiling and floor range, the tilt of the spectrum (it tilts around 1k freq), window type, window size and whether to show the spectrum as it was before the EQ affected it.

- The buttons at the bottom are: Oversample mode, mid/side or left/right mode, the scale of the filter bands, total gain, mid/left gain, side/right gain. The numeric values are altered by clicking on the button and dragging the mouse up or down.

- Double clicking in space creates a filter band node. Depending where the mouse x is on the spectrum you'll either create a high pass, low shelf, peak, high shelf or low pass filter.

- Click on the filter band node and move mouse to alter it's frequency and dB.

- Alt Double click deletes a node.

- Double clicking on a filter band node will toggle enable/disable.

- Hovering over a node and using the mouse wheel will adjust the filters Q value.

- Command (Mac) or Ctrl (Windows) and mouse wheel hovering over a slope filter will adjust the slope dB.

- Right click over a filter band node will bring up a menu. Options are: Disable/Enable, Select shape of filter, dB of slope (only for high/low pass filters), Stereo placement (mid/side, left/right), Split node which will split the node into mid/side or left/right and delete.

- When a filter node is in mid/side or left/right mode, some triangles are displayed around the node to give an indication of such.

- Clicking on the top-right yellow EQ db number will show a menu allowing to select the EQ range from 6dB - 36dB.

- The info box at the bottom left will show useful information such as the frequency of the mouse position or node (if hovering over one), the music note and cents, dB of mouse or filter, filter Q and filter slopes.

- The drawn view scales to fit the full window and when the mouse isn't hovering over the window the programs turns of distracting menus and node handles.

- Holding the left shift key down puts the EQ into listen mode. You'll see two boundary bars representing the bandwidth being listened to. Use the mouse wheel to shrink/grow the area. It uses a band pass to isolate frequencies. (Thanks to Reaperto for reminding me!)

ReSpectrum

- The same 'Settings' options as ReEQ.

- 'keys' button toggles a piano roll. Hover over the piano keys to see a vertical beam to pinpoint spectrum frequencies.

- 'peaks' button toggles the spectrum display of maximum peaks.

Caveats

- I've only tried it on OSX as I develop on Mac.

- It should support both retina and non-retina displays.

- Only the first five filter bands are exposed as sliders for automation.

- You'll need a reasonable machine performance wise. Closing the window when not in use helps.

- I've used showmenu() for the menus. Technically it's not documented for JSFX so I don't know how well it works on other platforms.

- Oh, I should say I borrowed Theo Niessink's RBJ filter code but only for the display magnitude calculations, not for sound processing.

I've attached a zip file which can be unzipped to your Reaper effects directory. I'd consider using ReaPack if there was a call for it.

Updates
* Minor font fixes - still some to do.
* Fixed oversampling issue. Oversampling correctly ignored for sample rates > 48kHz.
thank you great options grtz from holland
pim van dorst is offline   Reply With Quote
Old 11-18-2018, 12:14 AM   #10
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 8,018
Default

Quote:
Originally Posted by nitsuj View Post
- I've used showmenu() for the menus. Technically it's not documented for JSFX so I don't know how well it works on other platforms.
Could you elaborate ? Does it work ? What add-on does provide that function ? How did you find it ? How did you get the specs ?

-Michael
mschnell is online now   Reply With Quote
Old 11-18-2018, 03:51 AM   #11
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 162
Default

Quote:
Originally Posted by mschnell View Post
Could you elaborate ? Does it work ? What add-on does provide that function ? How did you find it ? How did you get the specs ?

-Michael
Yes, it works. And judging by the feedback here it's good for multi-platform. I think it's part of the interface that's exposed for Reaper scripting in general. It's documented for lua but not for eel2.

I found it on a forum post:

https://forum.cockos.com/showthread.php?t=164227
nitsuj is offline   Reply With Quote
Old 11-19-2018, 01:46 AM   #12
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 8,018
Default

Quote:
Originally Posted by nitsuj View Post
Yes, it works. And judging by the feedback here it's good for multi-platform. I think it's part of the interface that's exposed for Reaper scripting in general. It's documented for lua but not for eel2.

I found it on a forum post:

https://forum.cockos.com/showthread.php?t=164227

Wonderful !!
-Michael
mschnell is online now   Reply With Quote
Old 11-19-2018, 04:02 AM   #13
ramses
Human being with feelings
 
Join Date: Jul 2009
Posts: 609
Default

Been running this for a few mixes now. It's very good! I have a small quibble that could perhaps be resolved:

- Could we have an option to not have the EQ range influence the display range of the frequency analyzer? The signal has to be quite hot to make use of the analyzer when working at lower range-settinga, like 6-12dB.
ramses is online now   Reply With Quote
Old 11-19-2018, 09:23 AM   #14
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 162
Default

Quote:
Originally Posted by ramses View Post
- Could we have an option to not have the EQ range influence the display range of the frequency analyzer? The signal has to be quite hot to make use of the analyzer when working at lower range-settinga, like 6-12dB.
The range for the analyzer and the range for eq are unrelated code-wise. If you play sound then alter the eq range you shouldn't see the analyzer display alter. Maybe I didn't understand correctly?
nitsuj is offline   Reply With Quote
Old 11-18-2018, 04:03 AM   #15
dupont
Human being with feelings
 
dupont's Avatar
 
Join Date: Nov 2007
Location: France
Posts: 627
Default

Nice plugin, I also notice that

- If I double the click the mouse in the lower part where the boxes are, bands are created.
dupont is offline   Reply With Quote
Old 11-19-2018, 06:43 AM   #16
pim van dorst
Human being with feelings
 
pim van dorst's Avatar
 
Join Date: Dec 2015
Location: holland
Posts: 24
Default feedback

hallo 1s thnks again for this lovely eq there for some feedback

i use a dell optiplex 4gig ram on windows7

64bit reaperdaw
project 24 track
eq used on masterbus

1.. No tracks playing and eq floating on master bus... un muted all tracks reads 8,5% cpu
2.. no tracks playing and all tracks muted...it reads 36,5 % cpu use
3.. all tracks playing and unmuted eq floating on master reads 10,5 % cpu use
4.. all tracks playing but muted eq on master bus floating reads 36.5% cpu use
5..all tracks playing and unmuted with the eq on the masterbus reads 10,5% cpu use..

find that strange you woud expect the other way around..

hopfully helpfull info

thnks 1s again and greetings from holland
pim van dorst is offline   Reply With Quote
Old 01-28-2019, 06:27 PM   #17
rdesanti
Human being with feelings
 
rdesanti's Avatar
 
Join Date: Apr 2013
Location: Lake Havasu City, Arizona
Posts: 121
Default ReEQ ReaEQ conflict

[QUOTE=nitsuj;2057977]ReEQ and ReSpectrum:
Please check the problem I had on the following FB page I posted.
I resolved ReaEQ issue by uninstalling ReEQ.
https://www.facebook.com/groups/reaperusergroup/
__________________
--Mac Mini, 2.3 ghz, 16g ram, OSX Yosemite 10.10 Crucial 1TB SSD, 500GB Samsung T5 SSD ext Audio drive,dual 27" displays, Reaper 64 bit latest, Akai Professional EIE 4X4 interface, Mackie MR8 Mk 3 8" Monitors, Infinity 10" Sub.
rdesanti is offline   Reply With Quote
Old 01-28-2019, 06:30 PM   #18
JamesPeters
Human being with feelings
 
JamesPeters's Avatar
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 2,721
Default

Quote:
Originally Posted by rdesanti View Post
Please check the problem I had on the following FB page I posted.
I resolved ReaEQ issue by uninstalling ReEQ.
https://www.facebook.com/groups/reap...6360665139751/
I fixed your link. (Don't just link to a FB page where the post can be "lost" after new posts get made. Link to the post itself.)
__________________
http://petersamplification.com
Using REAPER for Linux
JamesPeters is offline   Reply With Quote
Old 01-29-2019, 03:12 AM   #19
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 162
Default

Thanks for the recent suggestions all. I'll take them onboard and you may see some of them in ReEQ in the future, time permitting. Appreciated.

Regarding the ReaEQ rendering issue (now spotted on Facebook). I've messaged Justin to see if he's got any idea what might be causing that. I think it is only a rendering state issue, it doesn't affect audio as far as I can tell.

I'll need to allocate some time for a really good debugging session in order to reduce down to what's causing it. Expect a fix or at least a diagnosis soon.
nitsuj is offline   Reply With Quote
Old 02-04-2019, 07:33 AM   #20
Roger McGuire
Human being with feelings
 
Join Date: Feb 2019
Posts: 1
Default Fantastic plugin

Hi All & Particularly Nitsuj who has created this fantastic plugin.
Ive been using it for the past week or so & it's just great...I'd go so far as to say it's "Fab" (wink, wink).
One request I have is, would it be possible to keep the fader controls from the original reaEq?
I find them really handy when it comes to pulling out frequencies once they've been identified. Just grab the fader & pull it down (no shaky hand to contend with).
Thanks for such a great plugin, your work is greatly appreciated.
Cheers
Roger.

Wexford
Ireland
Attached Images
File Type: jpg reaeq.JPG (39.4 KB, 209 views)
Roger McGuire is offline   Reply With Quote
Old 02-12-2019, 09:42 AM   #21
tonybeepbeep
Human being with feelings
 
Join Date: Mar 2018
Posts: 151
Default

I've literally been playing with this for the last 10 minutes on my works laptop, using the internal speakers and I can still hear the nuances of the EQ. Can't wait to get home and put it into a mix on my real system.
tonybeepbeep is offline   Reply With Quote
Old 02-12-2019, 10:32 AM   #22
DaveKeehl
Human being with feelings
 
DaveKeehl's Avatar
 
Join Date: Nov 2015
Location: Switzerland
Posts: 1,883
Default

Hi!

I've got a few extra suggestions:

Is it possible...
  • not to stop the spectrum analyzer when opening any menu/option inside the plugin?
  • to have smoother lines? Both in the eq and in the spectrum analyzer. The line display is nice though! It would be lovely to have that kind of smothness everywhere.
  • to add another option to the spectrum analyzer to have both fill and line (settings > display)?
  • reset the dry/wet control at the bottom by double-clicking?
  • add a few extra options for the limit button?
  • add an option to use a keystroke to be able to not move the mouse cursor while addingg or reducing the gain of a single band?
__________________
REAPER Contest
DaveKeehl is offline   Reply With Quote
Old 02-12-2019, 01:53 PM   #23
tonybeepbeep
Human being with feelings
 
Join Date: Mar 2018
Posts: 151
Default

Am I a masochist if I spend the next hour EQing a metal snare drum with this?

So intuitive once you get used to the input and workflow
tonybeepbeep is offline   Reply With Quote
Old 02-12-2019, 02:12 PM   #24
tonybeepbeep
Human being with feelings
 
Join Date: Mar 2018
Posts: 151
Default

OMG I'm having fun here. Even enjoying high passing some guitar tracks and the resultant sound is massive!
tonybeepbeep is offline   Reply With Quote
Old 02-14-2019, 03:22 AM   #25
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 162
Default

Hi Dave,

Thanks for the feedback and suggestions!

Quote:
Originally Posted by DaveKeehl View Post
  • not to stop the spectrum analyzer when opening any menu/option inside the plugin?
  • to have smoother lines? Both in the eq and in the spectrum analyzer. The line display is nice though! It would be lovely to have that kind of smoothness everywhere.
  • to add another option to the spectrum analyzer to have both fill and line (settings > display)?
  • reset the dry/wet control at the bottom by double-clicking?
  • add a few extra options for the limit button?
  • add an option to use a keystroke to be able to not move the mouse cursor while addingg or reducing the gain of a single band?
Running the analyzer concurrently when the menu displays is something I don't have control over in JSFX. Hands are tied on that one.

Smoother lines would be great. I develop on Mac so on that platform it uses retina and it looks really smooth. Admittedly less so on non-retina. I have tried to hack some kind of poor mans anti-aliasing but it doesn't alway work well. What's really needed is for Cockos to implement anti-aliasing for their line drawing (and other primitive) functions in JSFX. I'll think about the fill and line option.

At one point I thought I had implemented double clicking to reset the bottom parameters. I'll see about sorting that out.

What options are you thinking about for the limiting? The main purpose is to brick wall limit so that you don't get excessive volume. It's not intended to be a limiter for using in a musical capacity.

In my build I've already added frequency and gain lock for moving a filter node, so that'll be released soon. Your suggestion would take a little more work as there's currently no concept of a selected filter node except when the mouse is over it. The moment the key press altered the gain, the mouse cursor would no longer be over the filter node and so it wouldn't be selected any more. I'll give it some thought though.

Other than that, I'm adding extra filter types, improving solo/listen mode and improving node dragging amongst other smaller fixes and improvements.
nitsuj is offline   Reply With Quote
Old 02-14-2019, 03:39 AM   #26
DaveKeehl
Human being with feelings
 
DaveKeehl's Avatar
 
Join Date: Nov 2015
Location: Switzerland
Posts: 1,883
Default

Ok great stuff, as always!

For the limiter I guess you’re right. Maybe showing better when the limiter is turned on/off? Right now the box background color changes, so you have to know what each color means, which is a bit unintuitive.

One last thing I just realized would be awesome would be the ability to select bands by dragging the mouse. As it happens with Nova by TDR.

I can’t wait to try the first complete version of your plugin dude!
__________________
REAPER Contest
DaveKeehl is offline   Reply With Quote
Old 02-14-2019, 07:28 PM   #27
clepsydrae
Human being with feelings
 
clepsydrae's Avatar
 
Join Date: Nov 2011
Posts: 2,447
Default

Quote:
Originally Posted by nitsuj View Post
Smoother lines would be great. I develop on Mac so on that platform it uses retina and it looks really smooth. Admittedly less so on non-retina. I have tried to hack some kind of poor mans anti-aliasing but it doesn't alway work well. What's really needed is for Cockos to implement anti-aliasing for their line drawing (and other primitive) functions in JSFX.
...I assume you know that line and lineto and other primitive functions (circle, roundrect, arc, etc) do have optional anti-aliasing in JSFX on windows/linux? Curious what you meant here?
clepsydrae is offline   Reply With Quote
Old 02-24-2019, 05:55 AM   #28
europa_man
Human being with feelings
 
europa_man's Avatar
 
Join Date: Sep 2013
Location: Musquodoboit Harbour, Nova Scotia
Posts: 307
Default Talent

Quote:
Originally Posted by nitsuj View Post
ReEQ and ReSpectrum:



Thought I'd share this with you. It's a couple of pet projects I've been working on for fun recently.

My question was: is it possible to create a FabFilter or EQ8 style high quality filter in JSFX?

ReEQ

This is an eight band filter. It defaults to oversample x2 so that the filter shapes are preserved near Nyquist but no oversampling is also an option. When oversampling, there is a 16 sample delay introduced and it uses a steep FIR filter at high frequencies to remove aliasing. It's highly transparent in either case.

The filter code itself is based on Andy Simper's (Cytomic) SVF filter algorithms. They are far higher quality than the usual RBJ cookbook filters. These are the same zero delay filters used in Ableton's EQ8 which is well regarded for its high quality.

In addition, I've provided 6db slope filters and increments of 6db thereof (a combination of one and two pole filters) with cutoff slopes for high and low of up to 96dB. I've also provided Butterworth filters for steeper (but more resonant) slopes.

Full mid/size or left/right stereo filter bands are implemented.

Feature wise I see it as an improvement over ReaEQ (more filter types and slopes, mid/side or left/right processing).

Features

- The spectrum display type has a gradual decay effect (as used by many other commercial EQs). I find this much more useful for musical applications.

- The 'Settings' menu at the top allows various spectrum display settings to be adjusted. That's which spectrum to show (mid/side/left/right etc), whether to fill the spectrum or use lines, the ceiling and floor range, the tilt of the spectrum (it tilts around 1k freq), window type, window size and whether to show the spectrum as it was before the EQ affected it.

- The buttons at the bottom are: Oversample mode, mid/side or left/right mode, the scale of the filter bands, total gain, mid/left gain, side/right gain. The numeric values are altered by clicking on the button and dragging the mouse up or down.

- Double clicking in space creates a filter band node. Depending where the mouse x is on the spectrum you'll either create a high pass, low shelf, peak, high shelf or low pass filter.

- Click on the filter band node and move mouse to alter it's frequency and dB.

- Alt Double click deletes a node.

- Double clicking on a filter band node will toggle enable/disable.

- Hovering over a node and using the mouse wheel will adjust the filters Q value.

- Command (Mac) or Ctrl (Windows) and mouse wheel hovering over a slope filter will adjust the slope dB.

- Right click over a filter band node will bring up a menu. Options are: Disable/Enable, Select shape of filter, dB of slope (only for high/low pass filters), Stereo placement (mid/side, left/right), Split node which will split the node into mid/side or left/right and delete.

- When a filter node is in mid/side or left/right mode, some triangles are displayed around the node to give an indication of such.

- Clicking on the top-right yellow EQ db number will show a menu allowing to select the EQ range from 6dB - 36dB.

- The info box at the bottom left will show useful information such as the frequency of the mouse position or node (if hovering over one), the music note and cents, dB of mouse or filter, filter Q and filter slopes.

- The drawn view scales to fit the full window and when the mouse isn't hovering over the window the programs turns off distracting menus and node handles.

- Holding the left shift key down puts the EQ into listen mode. You'll see two boundary bars representing the bandwidth being listened to. Use the mouse wheel to shrink/grow the area. It uses a band pass to isolate frequencies. (Thanks to Reaperto for reminding me!)

ReSpectrum

- The same 'Settings' options as ReEQ.

- 'keys' button toggles a piano roll. Hover over the piano keys to see a vertical beam to pinpoint spectrum frequencies.

- 'peaks' button toggles the spectrum display of maximum peaks.

Caveats

- I've only tried it on OSX as I develop on Mac.

- It should support both retina and non-retina displays.

- Only the first five filter bands are exposed as sliders for automation.

- You'll need a reasonable machine performance wise. Closing the window when not in use helps.

- I've used showmenu() for the menus. Technically it's not documented for JSFX so I don't know how well it works on other platforms.

- Oh, I should say I borrowed Theo Niessink's RBJ filter code but only for the display magnitude calculations, not for sound processing.

I've attached a zip file which can be unzipped to your Reaper effects directory. I'd consider using ReaPack if there was a call for it.

Updates
* Implemented floating info panel modified from tvm79's mods. Engaging listen mode will give you a floating info panel without having to select a band node
* Band nodes have improved selected and dragging visual.
* Mid/Side, Left/Right now have polarity toggles
* There's a toggle for a crude hard brick limiter. It's here as a safety net.
* Added 'None' option for spectrum display.
* Filters in SVF now cascade using nested conditions (optimization)
* Double click on bottom numeric buttons reset values to default
* Double click at bottom margin no longer creates filter bands
* Minor font fixes - still some to do.
* Fixed oversampling issue. Oversampling correctly ignored for sample rates > 48kHz.
THE TALENT ON THIS REAPER FORUM IS MIND BLOWING!

WHAT A GENEROUS GROUP !
__________________
Everything I Need to Know about Reaper, I Learned from Kenny Gioia.
europa_man is offline   Reply With Quote
Old 02-24-2019, 05:36 PM   #29
ReaDave
Human being with feelings
 
ReaDave's Avatar
 
Join Date: Mar 2010
Location: Adelaide, South Australia (originally from Geelong)
Posts: 5,495
Default

Quote:
Originally Posted by europa_man View Post
THE TALENT ON THIS REAPER FORUM IS MIND BLOWING!

WHAT A GENEROUS GROUP !
You got that right!
ReaDave is offline   Reply With Quote
Old 02-25-2019, 06:31 AM   #30
Bouroki
Human being with feelings
 
Join Date: Jun 2013
Posts: 61
Default

Would it be possible to report zero latency when OS is switched off?
Bouroki is offline   Reply With Quote
Old 02-25-2019, 12:05 PM   #31
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 162
Default

Quote:
Originally Posted by Bouroki View Post
Would it be possible to report zero latency when OS is switched off?
There's a bug in Reaper's JSFX handling which doesn't update the PDC value. I think it's documented somewhere in this thread.

To get around it toggle ReEQ to 'offline' and then back 'online' again after you've set oversampling to x1. That sorts it out.
nitsuj is offline   Reply With Quote
Old 02-25-2019, 01:20 PM   #32
morfi
Human being with feelings
 
morfi's Avatar
 
Join Date: Nov 2013
Location: BUENOS AIRES
Posts: 125
Default

Clear enough now! Thank you!

To everybody working with tracks recorded at 88 kHz or higher SR: you don't need to turn oversample on!
__________________
TITANIO
BUENOS AIRES ARGENTINA
www.titanioesarte.com.ar
morfi is offline   Reply With Quote
Old 04-28-2019, 05:56 AM   #33
puddi
Human being with feelings
 
puddi's Avatar
 
Join Date: Jun 2018
Posts: 247
Default

This is fantastic, great job!

My two wishes that would make it perfect to me:

1. Single click to add a new EQ band instead of double-click

2. Being able to use a modifier key to change the Q value (Ctrl + shift + left drag for example) as an alternative to the the scroll wheel. It's the only thing keeping me from switching out Pro-Q (to any other EQ for that matter) where you can easily frequency sweep and change Q at the same time, instead of having to stop the movement every time you need to do it. I guess it's just a personal preference.



puddi is offline   Reply With Quote
Old 04-30-2019, 12:28 AM   #34
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 162
Default

Quote:
Originally Posted by puddi View Post
This is fantastic, great job!

My two wishes that would make it perfect to me:

1. Single click to add a new EQ band instead of double-click

2. Being able to use a modifier key to change the Q value (Ctrl + shift + left drag for example) as an alternative to the the scroll wheel. It's the only thing keeping me from switching out Pro-Q (to any other EQ for that matter) where you can easily frequency sweep and change Q at the same time, instead of having to stop the movement every time you need to do it. I guess it's just a personal preference.
(1) probably won't happen because I need to keep single click available for future multi-node selection. I also think it'd be too easy to create nodes by accident.

I'll look into (2) though. It's a question if I've got any key combos left!
nitsuj is offline   Reply With Quote
Old 04-30-2019, 04:46 AM   #35
puddi
Human being with feelings
 
puddi's Avatar
 
Join Date: Jun 2018
Posts: 247
Default

Quote:
Originally Posted by nitsuj View Post
(1) probably won't happen because I need to keep single click available for future multi-node selection. I also think it'd be too easy to create nodes by accident.

I'll look into (2) though. It's a question if I've got any key combos left!
1. Ah ok, well double-clicking is completely fine so it's not a big deal at all.

2. Cool, if you could work something out it would be great!

I have to say the more I use this EQ the more I like it. Just the simple mid/side volume faders at the bottom makes stereo balancing super fast and combined with the limiter this can do the work of 3 separate plugins. I've always wanted those two features in an EQ which is great!

One small thing I would like to see added is the ability to change slopes with the mouse wheel (like in ReaEQ or Pro-Q). Right now the Q value changes but nothing else happens. This would just speed things up and cut down on the menu diving.
puddi is offline   Reply With Quote
Old 04-30-2019, 07:30 AM   #36
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 162
Default

Quote:
Originally Posted by puddi View Post
One small thing I would like to see added is the ability to change slopes with the mouse wheel (like in ReaEQ or Pro-Q). Right now the Q value changes but nothing else happens. This would just speed things up and cut down on the menu diving.
The Q value effects low/high cut resonance but not for the Butterworth versions (they don't have resonance control).

You can adjust the curve slope by holding the Windows/Cmd key whilst using the mousewheel.
nitsuj is offline   Reply With Quote
Old 04-30-2019, 07:51 AM   #37
alphoc
Human being with feelings
 
Join Date: Apr 2019
Posts: 53
Default

Please 88k HD mode.
alphoc is online now   Reply With Quote
Old 04-30-2019, 08:40 AM   #38
morfi
Human being with feelings
 
morfi's Avatar
 
Join Date: Nov 2013
Location: BUENOS AIRES
Posts: 125
Default

Quote:
Originally Posted by nitsuj View Post
The Q value effects low/high cut resonance but not for the Butterworth versions (they don't have resonance control).
That could also be an interesting feature in the future: resonance for the LPF/HPF.

I find myself using a lot the Butterworth/Chebyshev/Moog JS plug-ins in REAPER (usually in a parallel configuration) precisely for their resonance control.

nitsuj let us know when so many feature requests and ideas from everybody here start to drive you crazy
__________________
TITANIO
BUENOS AIRES ARGENTINA
www.titanioesarte.com.ar
morfi is offline   Reply With Quote
Old 04-30-2019, 09:20 AM   #39
puddi
Human being with feelings
 
puddi's Avatar
 
Join Date: Jun 2018
Posts: 247
Default

Quote:
Originally Posted by nitsuj View Post
The Q value effects low/high cut resonance but not for the Butterworth versions (they don't have resonance control).

You can adjust the curve slope by holding the Windows/Cmd key whilst using the mousewheel.
Oooh, damn. I should have read the first post.
puddi is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 01:35 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.