Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions

Reply
 
Thread Tools Display Modes
Old 11-15-2018, 07:50 AM   #1
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default ReEQ and ReSpectrum, graphic equalizer and spectrum equalizer

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
* 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.
Attached Files
File Type: zip ReJJ.zip (34.9 KB, 526 views)

Last edited by nitsuj; 11-26-2018 at 06:58 PM. Reason: Typo
nitsuj is offline   Reply With Quote
Old 11-15-2018, 09:15 AM   #2
Eliseat
Human being with feelings
 
Join Date: Mar 2018
Location: Cologne
Posts: 612
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: 464
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
Human being with feelings
 
Bri1's Avatar
 
Join Date: Dec 2016
Location: England
Posts: 1,857
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
 
Join Date: Mar 2018
Location: Cologne
Posts: 612
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: 601
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:37 PM   #7
DaveKeehl
Human being with feelings
 
DaveKeehl's Avatar
 
Join Date: Nov 2015
Location: Switzerland
Posts: 1,584
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?
__________________
My band: Spotify | iTunes | YouTube | Bandcamp | Amazon | Google Play
YouTube Channel: https://www.youtube.com/channel/UClI...NKp8d-lsUKRu2Q
REAPER Contest: Website | Donations | YouTube

Last edited by DaveKeehl; 11-15-2018 at 02:50 PM.
DaveKeehl is offline   Reply With Quote
Old 11-15-2018, 02:49 PM   #8
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
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, 03:04 PM   #9
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Can you put it on the ReaPack?
Yes, I was going to get a round or two of feedback then I'll put it on ReaPack.

Quote:
- It would be really nice if we could double click the boxes at the bottom to reset the initials values
Yep, good one.

Quote:
- Also tooltips after a few seconds on those boxes could be useful
You're right that would be nice.

Quote:
- If I change M/S to L/R or viceversa the whole box disappears until you move the mouse
Do you mean the buttons disappear? That'll be because the mouse is outside of the main window after you've selected and I coded it so that when the mouse is outside, those features including filter handles disappear to leave a clear view of the filter bands and transfer lines. I agree though that it can feel a little unexpected so I'll have a think if there's anything to do about it.

Quote:
- 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
You're right, that's a bug!

Quote:
- When I scale the interface up there is some weird stuff being displayed until you release the mouse button
I think this might well be a Reaper issue. They've improved this lately but you still get garbage on the right and bottom side momentarily when resizing.

Quote:
- Is it possible to smoothen out the band lines?
On my Mac in retina mode I fudge smoothness by overdrawing lines with alpha adjustments and they look pretty good thanks to the pixel density. Outside of that I'm at the mercy of how Cockos handle larger displays/pixel densities inside JSFX. The technique I'd used for retina mode left the lines looking very thick in non-retina, so I had to downgrade them. I wish Cockos would round out their JSFX rendering functions with thickness options with anti-aliasing to avoid trying to fudge it.

Great feedback though thanks!
nitsuj is offline   Reply With Quote
Old 11-15-2018, 03:33 PM   #10
DaveKeehl
Human being with feelings
 
DaveKeehl's Avatar
 
Join Date: Nov 2015
Location: Switzerland
Posts: 1,584
Default

Thanks to you for this awesome plugin! Looks like we have a Pro-Q2 for Reaper users
I'm using a 15'' MBP with Retina display so I see the plugin as you do. By smooth I meant like for example in the Fabfilter Pro-Q2 where (I don't know how they do it) but everything is soooo smooth) but yeah I get it no anti-aliasing no party

I'll let you know if I find something else!
__________________
My band: Spotify | iTunes | YouTube | Bandcamp | Amazon | Google Play
YouTube Channel: https://www.youtube.com/channel/UClI...NKp8d-lsUKRu2Q
REAPER Contest: Website | Donations | YouTube
DaveKeehl is offline   Reply With Quote
Old 11-15-2018, 03:54 PM   #11
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Thanks DaveKeehl!

Yeah, Pro-Q2 is a wonderfully well crafted piece of software. Looks gorgeous, silky smooth (high refresh rate) and superbly designed. Fabfilter are well known for it and they deserve their success.
nitsuj is offline   Reply With Quote
Old 11-15-2018, 05:03 PM   #12
Reaperto
Human being with feelings
 
Reaperto's Avatar
 
Join Date: Apr 2011
Location: Buenos Aires - Argentina
Posts: 464
Default

Quote:
Originally Posted by nitsuj View Post
Reaperto, thanks for reminding me about the listen feature I'd implemented. I'd forgotten all about it! ReSpectrum has it too.
You're my hero!
Keep up the good job!
Many thanks again!
__________________
ReaLoaded!
Reaperto is offline   Reply With Quote
Old 11-16-2018, 12:10 AM   #13
Eliseat
Human being with feelings
 
Join Date: Mar 2018
Location: Cologne
Posts: 612
Default

Quote:
Originally Posted by nitsuj View Post
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!
No, I didn't mean to overhaul the whole thing. Maybe a context menu to select the active bands would be okay. In reaEQ you can't run into this problem because you always have the ability to show the tabs. If a band runs wild thru animation you have a place where you can select it. In your EQ its impossible to get back to the band because its moving. And this even makes it difficult to stop the LFO from running. Maybe you could add a button next to the oversampling which opens a list of all active bands. Do you know what I mean?

Greetings
Eli
Eliseat is offline   Reply With Quote
Old 11-16-2018, 02:47 AM   #14
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 601
Default

Quote:
Originally Posted by nitsuj View Post
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.
I'm using Win10 at 1920x1080. Here's a size comparison between ReEQ and ReSpectrum info boxes:

https://drive.google.com/file/d/1IkA...ew?usp=sharing
Sju is offline   Reply With Quote
Old 11-16-2018, 03:10 AM   #15
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Thanks Sju!

The font size is correct (Verdana 9pt) but it is too small for your resolution. I'll see if there's a way to get screen size in JSFX so that I can at least set the right font size.
nitsuj is offline   Reply With Quote
Old 11-16-2018, 03:52 AM   #16
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 8,232
Default

This is amazing, thanks for sharing.

One thing got me wondering though:
Could it be that the spectrum analyzer in ReEQ is a bit off somehow?

Here I'm running pink noise through it (tilt set to 3 dB/oct) with a notch set to ~1 kHz, but the analyzer is showing the dip at ~ 2 kHz.
Or am I misunderstanding something?

nofish is offline   Reply With Quote
Old 11-16-2018, 03:55 AM   #17
ramses
Human being with feelings
 
Join Date: Jul 2009
Posts: 551
Default

Wow, what a treat! Tremendous work, I'll make sure to give it a spin for a while and see if I have any suggestions for improvements or whatever.

Thanks!!!
ramses is offline   Reply With Quote
Old 11-16-2018, 03:56 AM   #18
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 601
Default

About the parameter modulation problem, one solution would be to add individual band controls to the bottom of the GUI, like there are for the master volume, oversampling, etc. Pro-Q is a good example of this feature, and I think the floating UI is nice. This would require a node selection mechanism though (lasso for multiple selection?).

The advantages would also include being able to adjust just the freq or gain without touching the other parameter like you might do when adjusting via the 2D graph. Another cool feature could be adjusting the freq or scaling the gain of multiple bands at once.

Well, just throwing ideas out there. Really enjoying it as it is; I like the sound so much I'm using it over EQuilibrium at the moment. :P
Sju is offline   Reply With Quote
Old 11-16-2018, 04:33 AM   #19
pepe44
Human being with feelings
 
pepe44's Avatar
 
Join Date: Jul 2013
Location: Portugal
Posts: 376
Default

This is great. well done.
__________________
Intel core i7 6700K - socket 1151 LGA - Chipset z170 - 16G DDR4 - Nvidia GTX 1060
pepe44 is offline   Reply With Quote
Old 11-16-2018, 06:51 AM   #20
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Originally Posted by nofish View Post
Could it be that the spectrum analyzer in ReEQ is a bit off somehow?

Here I'm running pink noise through it (tilt set to 3 dB/oct) with a notch set to ~1 kHz, but the analyzer is showing the dip at ~ 2 kHz.
Or am I misunderstanding something?
Curious! I tried the same thing and got the following.



Could you run a different spectrum analyser after it to clarify whether it's the spectrum display that's offset or if it's the notch filter itself?

Does it happen all the time and does it happen for other filter types?

Last edited by nitsuj; 11-16-2018 at 06:58 AM. Reason: More questions
nitsuj is offline   Reply With Quote
Old 11-16-2018, 07:00 AM   #21
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 601
Default

I'm getting the analyzer offset too. Using 96kHz sample rate here.
Sju is offline   Reply With Quote
Old 11-16-2018, 07:08 AM   #22
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Ah, it may be a sample rate issue. I'll give that a go.

EDIT:
Ok, if you're sampling rate is any other than 44.1kHz then for now deselect oversampling (the x2 button at the bottom - put it to x1). If you're running at higher sample rates then in theory you don't need the oversampling as its primary purpose to get better response curves near Nyquist.

Last edited by nitsuj; 11-16-2018 at 07:25 AM.
nitsuj is offline   Reply With Quote
Old 11-16-2018, 08:01 AM   #23
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 8,232
Default

Yes, that's it.
I was running 48 KhZ, 2x oversampling in that screenshot.
Running at 44.1 or not 44.1 and not oversampling fixes, as you say.
nofish is offline   Reply With Quote
Old 11-16-2018, 09:09 AM   #24
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Originally Posted by nofish View Post
Yes, that's it.
I was running 48 KhZ, 2x oversampling in that screenshot.
Running at 44.1 or not 44.1 and not oversampling fixes, as you say.
I've fixed this now. Updated files in the top post.
nitsuj is offline   Reply With Quote
Old 11-16-2018, 09:41 AM   #25
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 8,232
Default

Great, thanks.
nofish is offline   Reply With Quote
Old 11-16-2018, 11:38 AM   #26
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 601
Default

Analyzer works as expected now, and the fonts are visible again cheers!
Sju is offline   Reply With Quote
Old 11-16-2018, 11:57 AM   #27
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 476
Default

Really loving these.
They are beautiful!

Please add to ReaPack.
Ozman is offline   Reply With Quote
Old 11-16-2018, 01:51 PM   #28
pepe44
Human being with feelings
 
pepe44's Avatar
 
Join Date: Jul 2013
Location: Portugal
Posts: 376
Default

is it possible to make it less CPU consumer ?
__________________
Intel core i7 6700K - socket 1151 LGA - Chipset z170 - 16G DDR4 - Nvidia GTX 1060
pepe44 is offline   Reply With Quote
Old 11-16-2018, 02:21 PM   #29
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Originally Posted by pepe44 View Post
is it possible to make it less CPU consumer ?
It may be possible. Close the window when not using it as it takes CPU to draw.

Best thing is to use Reaper's performance view to see how much CPU the DSP is taking. I'd be happy to see feedback to see how it's performing on different machines.
nitsuj is offline   Reply With Quote
Old 11-16-2018, 06:09 PM   #30
Fabian
Human being with feelings
 
Fabian's Avatar
 
Join Date: Sep 2008
Location: Sweden
Posts: 5,189
Default

For real...? Holy cow!

Thanks.
__________________
// MVHMF
I never always did the right thing, but all I did wasn't wrong...
Fabian is offline   Reply With Quote
Old 11-16-2018, 06:34 PM   #31
mawi
Human being with feelings
 
mawi's Avatar
 
Join Date: Apr 2011
Posts: 600
Default

Great work, thanks for sharing!!!
__________________
Soundstudio Theme
Reaplay G Theme

Last edited by mawi; 11-16-2018 at 06:51 PM.
mawi is offline   Reply With Quote
Old 11-16-2018, 06:53 PM   #32
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 11,679
Default

This is really awesome, thanks!

I'm using it to test my very-early SSE-optimized JSFX branch, seems to have helped spot a bug in it for me too (now to figure out why...).

Last edited by Justin; 11-16-2018 at 07:04 PM.
Justin is offline   Reply With Quote
Old 11-16-2018, 08:53 PM   #33
JamesPeters
Human being with feelings
 
JamesPeters's Avatar
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 1,951
Default

Quote:
Originally Posted by Justin View Post
I'm using it to test my very-early SSE-optimized JSFX branch,
What what WHAT?!?!?
Attached Images
File Type: jpg what.jpg (13.0 KB, 110 views)
__________________
http://petersamplification.com
Core i3-6300 - MSI B150M Mortar w/ Intel HD530 - 8 GB RAM - Asus Xonar DX - MX Linux (MX-17.1_x64) - REAPER for Linux
JamesPeters is offline   Reply With Quote
Old 11-17-2018, 12:32 AM   #34
Not_Here
Human being with feelings
 
Not_Here's Avatar
 
Join Date: Jan 2018
Location: West Coast - Sun...everyday....Sun, Sun, and more Sun...
Posts: 395
Default

color me <---- newbie

I have the files from the .zip located in;

c:\program files\REAPER(x64)\installdata\effects
and they are in their folder ReJJ

but I can't seem to find this in Reaper. I tried clear cache and re-scan and still no luck?

any ideas or help would be tremendously appreciated!
__________________
If it Rocks, it works... i7-7700HQ Win10Pro 512GBSSD + 2TB Hybrid 32GB RAM | 2i2 | iLoud Monitors| RUNNING Bugera | iRig Stomp I/O | MacBook Pro | Amplitube | PRS SuperModels |
Not_Here is offline   Reply With Quote
Old 11-17-2018, 01:13 AM   #35
JamesPeters
Human being with feelings
 
JamesPeters's Avatar
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 1,951
Default

Quote:
Originally Posted by Not_Here View Post
color me <---- newbie

I have the files from the .zip located in;

c:\program files\REAPER(x64)\installdata\effects
and they are in their folder ReJJ

but I can't seem to find this in Reaper. I tried clear cache and re-scan and still no luck?

any ideas or help would be tremendously appreciated!
That folder isn't to be used for anything other than what Reaper installs.

Find the location of the Reaper resource folder on your computer, where the JS effects are installed. From Reaper:

Options -> Show Resource Path in Explorer/Finder
(JS effects are located in there, in the "effects" subfolder.)
__________________
http://petersamplification.com
Core i3-6300 - MSI B150M Mortar w/ Intel HD530 - 8 GB RAM - Asus Xonar DX - MX Linux (MX-17.1_x64) - REAPER for Linux
JamesPeters is offline   Reply With Quote
Old 11-17-2018, 01:38 AM   #36
Not_Here
Human being with feelings
 
Not_Here's Avatar
 
Join Date: Jan 2018
Location: West Coast - Sun...everyday....Sun, Sun, and more Sun...
Posts: 395
Default

Quote:
Originally Posted by JamesPeters View Post
That folder isn't to be used for anything other than what Reaper installs.

Find the location of the Reaper resource folder on your computer, where the JS effects are installed. From Reaper:

Options -> Show Resource Path in Explorer/Finder
(JS effects are located in there, in the "effects" subfolder.)
Awesome! Grinnin' from ear to ear!

...and now I know

thanks a ton sir!


THIS ReEQ is amazing! If only many other stock plugs were up to this level...

running it on master channel with a few things goin ( like 50 or so other fx on 45 tracks)my whole cpu usage is between 3-5%

FFT at 16k stretching it across a 35" monitor at 3440 x 1440 resolution and it's running smooth as glass

sounds great just noodling around with it...

Thank you from making this nitsuj.... what a gift!
__________________
If it Rocks, it works... i7-7700HQ Win10Pro 512GBSSD + 2TB Hybrid 32GB RAM | 2i2 | iLoud Monitors| RUNNING Bugera | iRig Stomp I/O | MacBook Pro | Amplitube | PRS SuperModels |

Last edited by Not_Here; 11-17-2018 at 02:11 AM.
Not_Here is offline   Reply With Quote
Old 11-17-2018, 03:01 AM   #37
pim van dorst
Human being with feelings
 
pim van dorst's Avatar
 
Join Date: Dec 2015
Location: holland
Posts: 9
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-17-2018, 03:29 AM   #38
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Originally Posted by Justin View Post
This is really awesome, thanks!

I'm using it to test my very-early SSE-optimized JSFX branch, seems to have helped spot a bug in it for me too (now to figure out why...).
SSE optimized branch? Nice. Let me know if it's a bug in my code that you've spotted. I'd like to get bugs ironed out before I ReaPack it.

BTW, great job on JSFX. Making it fast enough to do this kind of processing is really cool.
nitsuj is offline   Reply With Quote
Old 11-17-2018, 05:48 AM   #39
DaveKeehl
Human being with feelings
 
DaveKeehl's Avatar
 
Join Date: Nov 2015
Location: Switzerland
Posts: 1,584
Default

Would it be possible to simply click on the eq line and immediately both create a new band and being able to drag it around from the point I have clicked? Right now you have to double click and then the band is positioned in a sort of average position.
__________________
My band: Spotify | iTunes | YouTube | Bandcamp | Amazon | Google Play
YouTube Channel: https://www.youtube.com/channel/UClI...NKp8d-lsUKRu2Q
REAPER Contest: Website | Donations | YouTube
DaveKeehl is offline   Reply With Quote
Old 11-17-2018, 05:54 AM   #40
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 1,485
Default

Thanks for sharing, and I like your initially asked question.

Why did you not ask this as well?
Would it be possible making something in JSFX, which sounds like Ebbe und Flut.

https://www.youtube.com/watch?v=T8Uo0uwS9aE
TonE 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 08:03 PM.


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