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

Reply
 
Thread Tools Display Modes
Old 11-21-2018, 01:04 AM   #81
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 1,484
Default

Quote:
Originally Posted by Justin View Post
Glad you like JSFX, thanks for making such great scripts!
Thanks to Reaper, thanks to all jsfx/lua script authors! For many years nobody needs Steinzeitdaws like Cubase any more, where you have to download some GB or TB (now), for some updates? Alone the fact Reaper having all internal features open in the form of actions is fantastic. This is why genious developers like saike can create new .lua scripts like hackey trackey and hackey patterns, which can access all those million Reaper actions, also directly from those new interfaces, in this example the magic jeskola buzz tracker interface, which is the best tracker interface of all time. Reapers open philosophy + another genious entering the scene, saike, brings another century result, bringing the 90s music making style directly into the heart of Reaper. Now, why should someone say, no I want to download a few GB for some nonsense tiny updates for a Steinzeit DAW like Cubase? Or next day, another genious knocks at the door, telling, hey I made ReEQ, ReSpectrum, here, have fun. Wowy, mowy. Next day, saike is bored, knocking, telling, hey I made some experiments with filters, Filther, here, have fun. Wowy, mowy. The islands of Cubase/ProTools getting more and more lonely. The sinking islands. The next film in the cinema, showiing 90 mins, Cubase users downloading 10 GB downloads for updating for tiny changes, nobody wanted. Like Windows, you want to switch off your computer, OS starting some nonsense updates, telling you have to wait... No. Linux.

Last edited by TonE; 11-21-2018 at 01:11 AM.
TonE is offline   Reply With Quote
Old 11-21-2018, 03:43 PM   #82
DaveKeehl
Human being with feelings
 
DaveKeehl's Avatar
 
Join Date: Nov 2015
Location: Switzerland
Posts: 1,583
Default

Just found a really weird bug. I added ReEQ at the end of my FX chain and started tweaking it. Then I wanted to move it at the beginning of the chain and accidentally opened ReaEQ and found this:



Any ideas on what could have happened?

EDIT: Closing and re-opening the project fixed this
__________________
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-25-2018, 12:36 PM   #83
Nixon
Human being with feelings
 
Nixon's Avatar
 
Join Date: Dec 2011
Posts: 273
Default

Hey, thanks for these wonderful plugins The eq seems to become my goto eq on linux. Is it somehow possible to disable the analyzer?
__________________
Item FX Sends -
Nixon is offline   Reply With Quote
Old 11-25-2018, 02:48 PM   #84
Eliseat
Human being with feelings
 
Join Date: Mar 2018
Location: Cologne
Posts: 599
Default

Quote:
Originally Posted by Nixon View Post
Hey, thanks for these wonderful plugins The eq seems to become my goto eq on linux. Is it somehow possible to disable the analyzer?
That's my question and (if not possible) feature request too.
Eliseat is online now   Reply With Quote
Old 11-26-2018, 07:04 PM   #85
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Updated ReJJ.zip in first post. Now supports a 'None' option for the spectrum display.
nitsuj is offline   Reply With Quote
Old 11-27-2018, 02:54 AM   #86
pepe44
Human being with feelings
 
pepe44's Avatar
 
Join Date: Jul 2013
Location: Portugal
Posts: 374
Default

Testing, everyday gets better. Thanks for all this effort
__________________
Intel core i7 6700K - socket 1151 LGA - Chipset z170 - 16G DDR4 - Nvidia GTX 1060
pepe44 is online now   Reply With Quote
Old 11-27-2018, 06:39 AM   #87
dupont
Human being with feelings
 
dupont's Avatar
 
Join Date: Nov 2007
Location: France
Posts: 411
Default

is it possible to reduce CPU usage ?
dupont is offline   Reply With Quote
Old 11-27-2018, 09:42 AM   #88
TBProAudio
Human being with feelings
 
TBProAudio's Avatar
 
Join Date: May 2014
Location: Germany
Posts: 443
Default

Quote:
Originally Posted by dupont View Post
is it possible to reduce CPU usage ?

The flexibility of JSFX costs some CPU usage.
You need to go native if you want to get rid of this:-)
__________________
www.tb-software.com/TBProAudio
TBProAudio is offline   Reply With Quote
Old 11-27-2018, 09:56 AM   #89
Nixon
Human being with feelings
 
Nixon's Avatar
 
Join Date: Dec 2011
Posts: 273
Default

Quote:
Originally Posted by nitsuj View Post
Updated ReJJ.zip in first post. Now supports a 'None' option for the spectrum display.
Thank you
__________________
Item FX Sends -
Nixon is offline   Reply With Quote
Old 11-27-2018, 10:22 AM   #90
kawa_
Human being with feelings
 
kawa_'s Avatar
 
Join Date: Mar 2016
Posts: 117
Default

wow,pretty amazing! I just installed.
__________________
web | kawaScripts | donate | twitter |
kawa_ is offline   Reply With Quote
Old 11-27-2018, 11:45 AM   #91
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 1,484
Default

Now, all masters in the house, kawa, sai'ke, nitsuj. What a forum. Thanks to all of your wonderful magical tools friends!
TonE is offline   Reply With Quote
Old 11-27-2018, 12:28 PM   #92
sightlessness
Human being with feelings
 
sightlessness's Avatar
 
Join Date: Mar 2010
Posts: 746
Default

Just stopping by to say thanks (just started lurking this side of the forums). So nice
of ya.
__________________
I want to live PEACEFULLY PLEASE WORLD "LEADERS" GET THIS DONE/LET IT BE FOR GOOD AND MAKE HISTORYYYYYYY! Thanks.
sightlessness is offline   Reply With Quote
Old 11-27-2018, 08:05 PM   #93
D Rocks
Human being with feelings
 
Join Date: Dec 2017
Location: Quebec, Canada
Posts: 432
Default

Woe this is a truely impressive design. It is the first thing that hit me!! Very nice looking interface and the feature list is great! I will test it later on a very recent pc runnign win10 and let you know how it goes with this type of machine.

Thanks for your investment of time and efforts, and for sharing it!
__________________
Alex | www.drocksrecords.com | Thanks for REAPER
D Rocks is offline   Reply With Quote
Old 12-03-2018, 09:35 AM   #94
tvm79
Human being with feelings
 
Join Date: Jan 2014
Posts: 22
Default

With the help from Sai'ke I added some small extension:

- "Eq Helper". Added info from : https://abletunes.com/blog/eq-cheat-sheet/
- Mouse wheel increase/decrease slope on Butterworth filter type.
- Option to "Invert Gain" on selected node.
- Dragging a node to top of windows will auto increase DB range
- Band color fade in on node selection.

Thanks again for creating this awesome EQ nitsuj!
Attached Files
File Type: zip ReJJ_TvM.zip (51.0 KB, 87 views)
__________________
https://soundcloud.com/trondert

Last edited by tvm79; 12-03-2018 at 10:20 AM.
tvm79 is offline   Reply With Quote
Old 12-03-2018, 10:03 AM   #95
pepe44
Human being with feelings
 
pepe44's Avatar
 
Join Date: Jul 2013
Location: Portugal
Posts: 374
Default

This is going really good !! Great Great Great Job to all devs!
__________________
Intel core i7 6700K - socket 1151 LGA - Chipset z170 - 16G DDR4 - Nvidia GTX 1060
pepe44 is online now   Reply With Quote
Old 12-03-2018, 10:06 AM   #96
mawi
Human being with feelings
 
mawi's Avatar
 
Join Date: Apr 2011
Posts: 600
Default

Quote:
Originally Posted by tvm79 View Post
With the help from Sai'ke I added some small extension:

- "Eq Helper". Added info from : https://abletunes.com/blog/eq-cheat-sheet/
- Mouse wheel increase/decrease slope on Butterworth filter type.
- Option to "Invert Gain" on selected node.
- Dragging a node to top of windows will auto increase DB range
- Band color fade in on node selection.

Thanks again for creating this awesome EQ nitsuj!
Thanks for sharing. I have a problem with the analyzer. This flickers when there is no mouse cursor. If the mouse cursor is present in the Analyzer, the color changes automatically, which is undesirable. Did I set something wrong or is this a bug?



Here are my settings:Preset
__________________
Soundstudio Theme
Reaplay G Theme
mawi is offline   Reply With Quote
Old 12-03-2018, 10:22 AM   #97
tvm79
Human being with feelings
 
Join Date: Jan 2014
Posts: 22
Default

Quote:
Originally Posted by mawi View Post
Thanks for sharing. I have a problem with the analyzer. This flickers when there is no mouse cursor. If the mouse cursor is present in the Analyzer, the color changes automatically, which is undesirable. Did I set something wrong or is this a bug?



Here are my settings:Preset
Nice colors! I think I fixed the problem. Re-uploaded the zip file.
__________________
https://soundcloud.com/trondert
tvm79 is offline   Reply With Quote
Old 12-03-2018, 10:33 AM   #98
mawi
Human being with feelings
 
mawi's Avatar
 
Join Date: Apr 2011
Posts: 600
Default

Quote:
Originally Posted by tvm79 View Post
Nice colors! I think I fixed the problem. Re-uploaded the zip file.
Thanks, it's fixed!
__________________
Soundstudio Theme
Reaplay G Theme
mawi is offline   Reply With Quote
Old 12-03-2018, 03:55 PM   #99
mawi
Human being with feelings
 
mawi's Avatar
 
Join Date: Apr 2011
Posts: 600
Default

Quote:
Originally Posted by tvm79 View Post
Nice colors! I think I fixed the problem. Re-uploaded the zip file.
I still have the problem that the analyzer turns violet & pink when I put the mouse on it. How can I turn it off? Violet and pink are really ugly colors!
__________________
Soundstudio Theme
Reaplay G Theme

Last edited by mawi; 12-03-2018 at 04:00 PM.
mawi is offline   Reply With Quote
Old 12-03-2018, 04:25 PM   #100
tvm79
Human being with feelings
 
Join Date: Jan 2014
Posts: 22
Default

Quote:
Originally Posted by mawi View Post
I still have the problem that the analyzer turns violet & pink when I put the mouse on it. How can I turn it off? Violet and pink are really ugly colors!
That's a matter of taste I guess But you can easily change this to another color by clicking the "Edit" button -> script windows opens -> click CTRL+F (WIndows) or CMD+F (OSX) and search for "function color_spectrum_on_mouse_over".

Under this function you can tweak the amounts of color you want: fill_r (red), fill_g (green), fill_b(blue), fill_a(opacity). So a completely blue spectrum would be:
fill_r = 0/255; fill_g = 0/255; fill_b = 255/255; fill_a = 255/255;

Here's a heplful little tool to find the color you want:
https://yuilibrary.com/yui/docs/color/rgb-slider.html

PM me if you want some more help with it
__________________
https://soundcloud.com/trondert
tvm79 is offline   Reply With Quote
Old 12-03-2018, 04:51 PM   #101
mawi
Human being with feelings
 
mawi's Avatar
 
Join Date: Apr 2011
Posts: 600
Default

Quote:
Originally Posted by tvm79 View Post
That's a matter of taste I guess But you can easily change this to another color by clicking the "Edit" button -> script windows opens -> click CTRL+F (WIndows) or CMD+F (OSX) and search for "function color_spectrum_on_mouse_over".

Under this function you can tweak the amounts of color you want: fill_r (red), fill_g (green), fill_b(blue), fill_a(opacity). So a completely blue spectrum would be:
fill_r = 0/255; fill_g = 0/255; fill_b = 255/255; fill_a = 255/255;

Here's a heplful little tool to find the color you want:
https://yuilibrary.com/yui/docs/color/rgb-slider.html

PM me if you want some more help with it
Thanks, I'll try it out!
__________________
Soundstudio Theme
Reaplay G Theme
mawi is offline   Reply With Quote
Old 12-04-2018, 03:41 AM   #102
Eliseat
Human being with feelings
 
Join Date: Mar 2018
Location: Cologne
Posts: 599
Default

Quote:
Originally Posted by nitsuj View Post
Updated ReJJ.zip in first post. Now supports a 'None' option for the spectrum display.
Many thanks!
Eliseat is online now   Reply With Quote
Old 12-05-2018, 04:16 AM   #103
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Originally Posted by tvm79 View Post
With the help from Sai'ke I added some small extension:

- "Eq Helper". Added info from : https://abletunes.com/blog/eq-cheat-sheet/
- Mouse wheel increase/decrease slope on Butterworth filter type.
- Option to "Invert Gain" on selected node.
- Dragging a node to top of windows will auto increase DB range
- Band color fade in on node selection.

Thanks again for creating this awesome EQ nitsuj!
Loving these mods!

Couple of things...

- The transfer curves for mid/side & left/right are the same color. Makes it a little trickier to remember which is which.

- It looks like there's a delay introduced when dragging a band. The band fill is ahead of the line draw by the looks of it.

- Just a preference thing I guess but the filter bands lose their color when the mouse is not on the window even if 'colored fill bands' is turned on. I was thinking about having an optional 'simple' mode so that when the mouse isn't on the window you only see the transfer curves.

- I see you've altered the line drawing code. It's made the lines thinner on non-retina (which is good) but it's made steep vertical lines more pixelated - for example on the steep Butterworth filters. Not sure what can be done about that except JSFX natively supporting line thickness with proper aliasing.

Really nice though! The EQ hint chart is great and the info panel tracking the node is nice.
nitsuj is offline   Reply With Quote
Old 12-05-2018, 03:34 PM   #104
mawi
Human being with feelings
 
mawi's Avatar
 
Join Date: Apr 2011
Posts: 600
Default

Can I get the following?
  • Save the window size so that I don't have to reset it every time.
  • A nice font, like Arial or MS Sans Serif.
  • More labeling of the frequencies, e.g. 20, 50, 200, 500, 2000, 5000, 20000 Hz or a mouse cursor that always shows the position in Hz.
  • Butterworth as default filter.
  • Invert phase button.
  • A faster analyzer.

Edit: Since there are already three EQ versions with different features, it would be nice if the developers would jointly create a SuperEQ from the three versions.
__________________
Soundstudio Theme
Reaplay G Theme

Last edited by mawi; 12-05-2018 at 04:07 PM.
mawi is offline   Reply With Quote
Old 12-06-2018, 05:18 AM   #105
bwsd
Human being with feelings
 
Join Date: May 2011
Location: KZ ALA
Posts: 36
Default

Greetings to the Author, Justin, and everyone else who participated and sympathized.

About using brackets to index into memory:
Using indexed memory consumes more CPU resources than ordinary variables. I analyzed the code and noticed that indexed variables can be replaced with ordinary ones. I think due to this you can reduce the consumption of resources in half.
bwsd is offline   Reply With Quote
Old 12-06-2018, 10:16 AM   #106
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Originally Posted by mawi View Post
Can I get the following?
  • Save the window size so that I don't have to reset it every time.
  • A nice font, like Arial or MS Sans Serif.
  • More labeling of the frequencies, e.g. 20, 50, 200, 500, 2000, 5000, 20000 Hz or a mouse cursor that always shows the position in Hz.
  • Butterworth as default filter.
  • Invert phase button.
  • A faster analyzer.

Edit: Since there are already three EQ versions with different features, it would be nice if the developers would jointly create a SuperEQ from the three versions.
I guess the thing here is that some suggestions are good, some are out of the remit of JSFX and others are a matter of personal preference.

For example, I don't think JSFX can remember window size but you can achieve this by saving ReEQ in an FX chain as you want it.

I kept the labelling of frequencies sparse because originally I had the info panel showing Hz present all the time, so it was easy to see. The mods by TVM79 made the info panel only visible when dragging a node so you can't now generally use the mouse to see frequencies. That's a side effect of doing it this way (which incidentally is the way Fabfilter does it).

I modelled the analyzer speed to be the same as DMGAudio's Equilibrium because I like it that way.

Invert phase would be handy.

No right or wrong here - maybe some of these things can find their way into a settings include file. I think I've seen some other JSFX use that technique for color settings.

I think at some point soon I'll consolidate some of the mods taking place back into the base version and get it onto Github.
nitsuj is offline   Reply With Quote
Old 12-06-2018, 10:23 AM   #107
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Originally Posted by bwsd View Post
About using brackets to index into memory:
Using indexed memory consumes more CPU resources than ordinary variables. I analyzed the code and noticed that indexed variables can be replaced with ordinary ones. I think due to this you can reduce the consumption of resources in half.
Yes, I read that indexing is a performance hit. I think the easiest place to make most difference is in the @sample section. It's a very short step from being unrolled in there anyway as the filters themselves are not indexed.

Replacing indexing with direct variable access elsewhere is going to mean unrolling loops. It's not easy to see how to avoid bloating the code and creating repetition and the opportunity for errors.

In another post I wrote somewhere with my wishlist for JSFX after developing ReEQ, I wrote that JSFX (EEL2) would benefit from either a specific loop construct that avoided the expensive indexing checks or a C language like preprocessor so that unrolling didn't have to be done by hand but could be done using macros. You can live in hope!
nitsuj is offline   Reply With Quote
Old 12-06-2018, 11:22 AM   #108
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 601
Default

Quote:
Originally Posted by nitsuj View Post
I modelled the analyzer speed to be the same as DMGAudio's Equilibrium because I like it that way.
Pretty funny I changed my EQuilibrium analyzer settings to match the ones in ReEQ because I liked it better. I actually like the linear interpolation between FFT bins more, too bad EQuilibrium doesn't have this option.
Sju is offline   Reply With Quote
Old 12-06-2018, 05:13 PM   #109
JamesPeters
Human being with feelings
 
JamesPeters's Avatar
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 1,945
Default

I notice ReEQ adds some latency. I'm guessing there is a filter in it that requires this? I try to avoid plugins that add any latency, except where necessary. (I'm picky that way. )

I see what mawi means. The "fall" speed of ReSpectrum is a bit slow for monitoring things like sine sweeps (and how a plugin affects its shape, a useful test for plugins). The shape of the wave on the trailing edge "drags". Besides that though I think it's perfectly usable the way it is.
__________________
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 12-07-2018, 04:23 AM   #110
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 274
Default

Quote:
Originally Posted by nitsuj View Post
JSFX (EEL2) would benefit from [...] preprocessor so that unrolling didn't have to be done by hand but could be done using macros.
I really see that, yeah. For my own projects, I actually ended up writing a JSFX preprocessor - fairly bad syntax, but one of the things it handles is sequence-templates for unrolling loops.

(I appreciate that not everybody has Node installed, and I haven't tested it on Windows at all, but there is an online version you can try.)

If you're happy using an external editor (I do anyway), a naive preprocessor isn't very complicated - the sequence-template part of mine is 20 lines long, so I'm sure you could knock together a Python script which executes every time the file is changed.

Quote:
Originally Posted by JamesPeters View Post
I notice ReEQ adds some latency. I'm guessing there is a filter in it that requires this?
This is probably the oversampling (it uses linear filters to upsample and then downsample again) - from the code, it looks like turning oversampling off should remove the latency.

Last edited by geraintluff; 12-07-2018 at 06:35 AM.
geraintluff is online now   Reply With Quote
Old 12-07-2018, 06:27 AM   #111
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Originally Posted by JamesPeters View Post
I notice ReEQ adds some latency. I'm guessing there is a filter in it that requires this? I try to avoid plugins that add any latency, except where necessary. (I'm picky that way. )

I see what mawi means. The "fall" speed of ReSpectrum is a bit slow for monitoring things like sine sweeps (and how a plugin affects its shape, a useful test for plugins). The shape of the wave on the trailing edge "drags". Besides that though I think it's perfectly usable the way it is.
It only adds latency in oversample x2 mode. To be precise, it's 16 samples of latency. Oversampling is used to allow more accurate filter curves near Nyquist. Without that, you'll find that the curves compress as they get towards the top end of the spectrum. Try it in oversample x1 mode and you'll see what I mean. It's the way Reaper's ReaEQ works and also the way that Ableton's EQ8 works.

Oversampling gives more frequency space so that the curves aren't affected. However, the final downsampling can introduce severe aliasing artifacts so it's necessary to apply a steep low pass filter near the end of the audible spectrum to remove that. ReEQ uses a FIR filter to do so which is a common tool used in oversampling situations. But these do introduce latency.

I want to stress that when either in x1 or x2 mode the SVF filters are extremely good - much better than the RBJ cookbook ones that a lot of EQs used to use. Clean, stable, low noise and transparent. So, at least now you can make a call. If you're ok with a little latency, go for x2. If you require no latency then stick with x1. It won't be a problem if your working with low-mid eq'ing and if you're doing any eq'ing in the very top end you'll probably be notching or shelving anyhow. Good to have options.

Clearly there are ways of having more accurate filter curves near Nyquist without oversampling, for example Fabfilter Q2/3, DMGAudio EQs and others. I do read that adjusting the curve shapes near Nyquist by other means can introduce phase issues near that part of the spectrum although I didn't get around to trying. Trade offs I suppose.

EDIT: I meant to say, if you're working above 48kHz sample rate then the oversampling doesn't happen regardless of whether x1 or x2 is selected. There shouldn't be any latency either.

And sure, the spectrum analyser lossy decay integration is geared towards tracking frequency peaks which I found most useful for working with music. It wouldn't be hard to add an optional fast integrator. I implemented the deep spectrum floor range because I too like to see what plugins are up to.

Last edited by nitsuj; 12-07-2018 at 06:32 AM.
nitsuj is offline   Reply With Quote
Old 12-07-2018, 07:26 AM   #112
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Originally Posted by geraintluff View Post
I really see that, yeah. For my own projects, I actually ended up writing a JSFX preprocessor - fairly bad syntax, but one of the things it handles is sequence-templates for unrolling loops.

(I appreciate that not everybody has Node installed, and I haven't tested it on Windows at all, but there is an online version you can try.)

If you're happy using an external editor (I do anyway), a naive preprocessor isn't very complicated - the sequence-template part of mine is 20 lines long, so I'm sure you could knock together a Python script which executes every time the file is changed.
Your pre-processor looks very handy - I'll check it out.

I think anyone that uses JSFX to produce anything of reasonable complexity is going to hit the same issues. You can use object type things, but not index over them. You can use indexes, but only for numbers and there's a performance penalty.

C style structs would help along with a safe construct for iterating over memory as to avoid the expensive index checking.

For reference I wrote the following based on my experience creating ReEQ:

https://forum.cockos.com/showthread.php?t=211922
nitsuj is offline   Reply With Quote
Old 12-07-2018, 11:13 AM   #113
mawi
Human being with feelings
 
mawi's Avatar
 
Join Date: Apr 2011
Posts: 600
Default

Quote:
Originally Posted by nitsuj View Post
I guess the thing here is that some suggestions are good, some are out of the remit of JSFX and others are a matter of personal preference.

For example, I don't think JSFX can remember window size but you can achieve this by saving ReEQ in an FX chain as you want it.

I kept the labelling of frequencies sparse because originally I had the info panel showing Hz present all the time, so it was easy to see. The mods by TVM79 made the info panel only visible when dragging a node so you can't now generally use the mouse to see frequencies. That's a side effect of doing it this way (which incidentally is the way Fabfilter does it).

I modelled the analyzer speed to be the same as DMGAudio's Equilibrium because I like it that way.

Invert phase would be handy.

No right or wrong here - maybe some of these things can find their way into a settings include file. I think I've seen some other JSFX use that technique for color settings.

I think at some point soon I'll consolidate some of the mods taking place back into the base version and get it onto Github.
Too bad that the window size is not saved and can only be saved as FX Chain. Is it maybe possible to add three JSFX window sizes (normal, large, huge) as an option and save them as default?

The Infopanel, which is always there and shows the mouse position, is a good idea and therefore a sparing labeling of the frequencies is okay. The tvm79 version doesn't have that, so I wrote this.

The speed of the analyzer is of course a matter of taste. I like to see exactly what I hear and that requires a fast analyzer. With slow analyzers, too many details get lost in percussive things like the hi-hat. The DMGAudio's Equilibrium Analyser is very good at fast setting, but also Voxengo Span. It would be nice if you added a "Fast" option.

I like your version best in terms of appearance, i.e. colors, and I like to work with it most. It would be nice if you could add the other useful features like the EQ charts from the tvm79 version and the analyzer offset option from the TBProAudio version. And of course the Phase Invert button.

Here is an example of what I mean by fast analyzer:
__________________
Soundstudio Theme
Reaplay G Theme

Last edited by mawi; 12-08-2018 at 10:38 PM. Reason: Fast Analyzer Example
mawi is offline   Reply With Quote
Old 12-07-2018, 11:55 AM   #114
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 274
Default

Quote:
Originally Posted by nitsuj View Post
The SVF filters are extremely good - much better than the RBJ cookbook ones that a lot of EQs used to use. Clean, stable, low noise and transparent.
Could you expand a bit more on this, please?

My understanding was that the ZDF/digital-SVF filters were equivalent to a traditional biquad calculation for steady-state, and that the (rather cool) advantages only came either for fast modulation, or when modelling distortion in the analogue circuit.

It's possible I've made a mistake, but I think the maths comes out that for pure filtering (no modulation, no distortion) the ZDF is equivalent to a biquad structure.

(Discussions of ZDF stuff often bring up frequency-warping for the critical frequency, but the RBJ cookbook includes compensation for this aspect of the bilinear transform, which is standard. JSFX also uses 64-bit floating-point values, so I'd be very surprised if there were any difference in the noise levels.)

For illustration, here's an image comparing ReaEQ with ReEQ with the same frequency/bandwidth (oversampling turned off). Since both filters are minimum-phase, an identical amplitude response means an identical phase response as well:



So unless you're modulating the bands quite fast (or modelling non-linear components), they should be the same, right? Not that they aren't neat, just that I don't think we're getting the benefit from them in this situation.

Geraint
Attached Images
File Type: png freq warping.png (9.9 KB, 234 views)

Last edited by geraintluff; 12-07-2018 at 12:04 PM.
geraintluff is online now   Reply With Quote
Old 12-07-2018, 03:01 PM   #115
JamesPeters
Human being with feelings
 
JamesPeters's Avatar
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 1,945
Default

Thanks for the explanation, nitsuj. I tried oversampling at 1x (at 44.1 KHz) and it still reports 16 samples latency in the fx browser window (even after resuming playback, which normally "resets" this sort of thing). I tried it at 96 KHz and it reported no latency. Leaving it at 1x, I changed back to 44.1 KHz and it still reported no latency until I switched to 2x oversampling. So it seems it's not reporting zero latency when at 1x, consistently.

I understand about the cramped bands near Nyquist aspect, so I wouldn't argue the value of oversampling. Although I don't mind using high shelves instead of bands...I can't think of a time I've wanted to use a band that high, instead of a shelf (or low pass). That's just me though.
__________________
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 12-08-2018, 08:54 AM   #116
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Originally Posted by JamesPeters View Post
Thanks for the explanation, nitsuj. I tried oversampling at 1x (at 44.1 KHz) and it still reports 16 samples latency in the fx browser window (even after resuming playback, which normally "resets" this sort of thing). I tried it at 96 KHz and it reported no latency. Leaving it at 1x, I changed back to 44.1 KHz and it still reported no latency until I switched to 2x oversampling. So it seems it's not reporting zero latency when at 1x, consistently.
I think there's an issue with changing the pdc_delay value in JSFX. When I change oversampling back to x1 from x2, the performance view still reports latency. Offlining then onlining ReEQ makes it work, as does changing the project sampling rate to something else and back. So it seems that once pdc_delay is set in JSFX it doesn't correctly pick up any further changes to it. I wrote a test program to toggle pdc_delay between 0 and 16 and this does seem to be the case.

Setting to x1 and reloading the project will work, as will offlining and onlining ReEQ and so will setting the sample rate to something and back.
nitsuj is offline   Reply With Quote
Old 12-08-2018, 09:12 AM   #117
JamesPeters
Human being with feelings
 
JamesPeters's Avatar
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 1,945
Default

In other plugins that I've used, JS or VST, if there is a setting that will affect the latency, after changing that setting all that is required is restarting playback. As an example if you can try this plugin. The setting on the right for lookahead adds latency. If you turn it off it goes to zero latency. All you have to do is stop playback (if it isn't already stopped) and start it again. Latency reported to Reaper will return to 0.

https://forum.cockos.com/showthread.php?t=213269
__________________
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 12-08-2018, 09:18 AM   #118
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Originally Posted by geraintluff View Post
So unless you're modulating the bands quite fast (or modelling non-linear components), they should be the same, right? Not that they aren't neat, just that I don't think we're getting the benefit from them in this situation.
You're right, the main advantage is in stability when modulating - RBJ can blow up. There is better numeric precision with SVF over RBJ when using floats (32bit) but JSFX uses doubles (64bit) so numerically they should be equivalent.
nitsuj is offline   Reply With Quote
Old 12-09-2018, 03:12 AM   #119
nitsuj
Human being with feelings
 
nitsuj's Avatar
 
Join Date: Nov 2017
Posts: 43
Default

Quote:
Originally Posted by JamesPeters View Post
In other plugins that I've used, JS or VST, if there is a setting that will affect the latency, after changing that setting all that is required is restarting playback. As an example if you can try this plugin. The setting on the right for lookahead adds latency. If you turn it off it goes to zero latency. All you have to do is stop playback (if it isn't already stopped) and start it again. Latency reported to Reaper will return to 0.

https://forum.cockos.com/showthread.php?t=213269
Okay, after a bit more debugging I know what's happening. Reaper needs to execute the @init section in the code to register the change in pdc delay. I've currently got that disabled because I didn't want all the variables cleared on play etc.

It's the 'ext_noinit = 1' variable.

@init executes when the sample rate is changed and the plugin is made online from being offline. That's why the pdc updates in those cases. When enabled, @init also executes on play.

As a quick test I enabled @init in ReEQ but it introduced issues. I'll have to look into it.
nitsuj is offline   Reply With Quote
Old 12-09-2018, 05:17 AM   #120
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 274
Default

Quote:
Originally Posted by nitsuj View Post
Reaper needs to execute the @init section in the code to register the change in pdc delay.
Ah - the pdc_.... variables should only be used in @slider or @block (JSFX docs).

Quickest fix is probably to assign to intermediate variables in set_oversample (e.g. "block_pdc_delay"), and then set the actual ones in @block ("pdc_delay = block_pdc_delay").

Geraint

Last edited by geraintluff; 12-09-2018 at 12:20 PM.
geraintluff is online now   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 12:18 PM.


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