Old 12-06-2017, 07:06 AM   #1
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default Multi channel gfxanalyzer mod

=========
EDIT: The topic of this thread changed quite a bit but I'm not going to open a new thread for this, instead just edit it.

I modded Cockos' gfxanalyzer (Frequency Spectrum Analyzer Meter) to be able to show multiple stereo channels (among a couple of other things):


Get it here or on Github for manual download or use it with ReaPack. My ReaPack index: https://github.com/veto-gh/ReaPack/raw/master/index.xml

Also be sure to check out the accompanying eel script "Set colors of focused Veto_gfxanalyzer to tracks sending on channels 1-16.eel"
If you need help and have it installed through ReaPack please also take a look at the about section of both scripts.




===============
The old (more boring) topic of this thread:
Quote:
Originally Posted by JS docs
fft(start_index, size)
...
Performs a FFT (or inverse in the case of ifft()) on the data in the local memory buffer at the offset specified by the first parameter. The size of the FFT is specified by the second parameter, which must be 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, or 32768. The outputs are permuted, so if you plan to use them in-order, call fft_permute(buffer, size) before and fft_ipermute(buffer,size) after your in-order use. Your inputs or outputs will need to be scaled down by 1/size, if used.
Note that the FFT/IFFT require real/imaginary input pairs (so a 256 point FFT actually works with 512 items).
Note that the FFT/IFFT must NOT cross a 65,536 item boundary, so be sure to specify the offset accordingly.
I can't figure out how to make fft() and fft_real() work with a buffer start index of the FFT workspace unequal to zero and window sizes up to 32768.
Especially on larger window sizes I'm getting different results of the FFT depending on the offset.

I can replicate this with many effects, including Tale's great examples in this thread.

To visualize the issue I modified Tale's "Real vs complex" effect by adding a new slider called "buffer start offset" and moving the init code to @slider. When moving the slider you can hopefully see different outcome of the FFT depending on the offset. The effect increases with higher window sizes:
PHP Code:
desc:Real vs complex FFT
// by Tale
slider1:0<0,1,1{Real,Complex}>FFT
slider2
:10<0,11,1{16,32,64,128,256,512,1024,2048,4096,8192,16384,32768}>FFT Size
slider3
:4<0,5,1{DC,Sine,Cosine,Square,Saw,Impulse}>Test Signal
slider4
:0<0,8000,1>Buffer start offset (x1000)

@
init

@slider
in_buf 
= (slider4|0)*1000;
fft_buf in_buf 32768 2;
out_buf fft_buf 32768 2;

real slider1 0.5;
complex = !real;

fft_size << (slider2 4);

test slider3|0;

0;
loop(fft_size,
  

  
test == :
  
test == sin(2*$pi*fft_size) :
  
test == cos(2*$pi*fft_size) :
  
test == ? ( 0.5*fft_size : -) :
  
test == 2*/ (fft_size 1) - :
  
test == ? !i;

  
real ? (
    
in_buf[i] = s;
  ) :

  
complex ? (
    
in_buf[i*2] = s;
    
in_buf[i*1] = 0;
  );

  
+= 1;
);

real ? (
  
memcpy(fft_bufin_buffft_size);

  
fft_real(fft_buffft_size);
  
fft_permute(fft_buffft_size/2);

  
memcpy(out_buffft_buffft_size);

  
fft_ipermute(out_buffft_size/2);
  
ifft_real(out_buffft_size);
) :

complex ? (
  
memcpy(fft_bufin_buffft_size 2);

  
fft(fft_buffft_size);
  
fft_permute(fft_buffft_size);

  
memcpy(out_buffft_buffft_size 2);

  
fft_ipermute(out_buffft_size);
  
ifft(out_buffft_size);
);

@
gfx

gfx_g 
gfx_a 1;
gfx_r gfx_b 0;

gfx_y 8;
0;
loop(min(floor((gfx_h 8) / 10), fft_size/2),
  
gfx_x 8;

  
real ? (
    
in in_buf[j];

    
re fft_buf[j*2];
    
im == fft_buf[j*1];

    
re *= 1/fft_size;
    
im *= 1/fft_size;

    
out out_buf[j];
    
out *= 0.5/fft_size;
  ) :

  
complex ? (
    
in in_buf[j*2];

    
re fft_buf[j*2];
    
im fft_buf[j*1];

    
re *= 2/fft_size;
    
im *= 2/fft_size;

    
out out_buf[j*2];
    
out *= 1/fft_size;
  );

  
mag sqrt(sqr(re) + sqr(im));
  
phase atan2(imre);

  
gfx_printf("%-3d in: %+f  mag: %+f  ph: %+f  out: %+f"jinmagphaseout);
  
gfx_y += 10;
  
+= 1;
); 

I can see 3 reasons for that behavior:

1: user error
2: limitation of the fft()/fft_real() functions
3: fft()/fft_real() are buggy

I tend to 1 but I really would appreciate any help of what exactly I'm doing wrong.

Last edited by Veto; 12-20-2017 at 02:44 PM.
Veto is offline   Reply With Quote
Old 12-06-2017, 12:22 PM   #2
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

After more tests and reproducing with more effects (including gfxanalyzer) which all show the same behavior I'm actually now more convinced that this indeed is a bug in the fft()/fft_real() implementation (if its not an undocumented limitation).

Still, before I file a bug report maybe it would be nice to have a confirmation of another JSFX/eel developer...

(I highly doubt I'm able to read something out of it but I'll try to take a look into WDL/eel2/ next)
Veto is offline   Reply With Quote
Old 12-06-2017, 04:01 PM   #3
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Germany
Posts: 3,858
Default

With a lot of help in the forum thread you mentioned, I did a rather large project with fft_real() - including a spectrum analyzer view - and it does work as expected.

-Michael
__________________
www.boa-sorte.de
mschnell is offline   Reply With Quote
Old 12-06-2017, 04:40 PM   #4
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 10,574
Default

I'm pretty sure you're getting different values with some offsets because the FFT buffer crosses the 65536 boundary (per the documentation you quoted).

Try adding this line immediately above the loop() that prints the results:

Code:
((in_buf/65536)|0) != (((in_buf+fft_size*(real?1:2) - 1)/65536)|0) ? gfx_printf("would give bad results\n") :
(that will print an error message rather than results if in_buf crosses a boundary)

Last edited by Justin; 12-06-2017 at 04:53 PM.
Justin is offline   Reply With Quote
Old 12-06-2017, 07:07 PM   #5
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

Quote:
Originally Posted by mschnell View Post
With a lot of help in the forum thread you mentioned, I did a rather large project with fft_real() - including a spectrum analyzer view - and it does work as expected.

-Michael
Thanks Micheal, I must have missed this in the thread.

Last edited by Veto; 12-06-2017 at 07:13 PM.
Veto is offline   Reply With Quote
Old 12-06-2017, 07:13 PM   #6
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

Quote:
Originally Posted by Justin View Post
I'm pretty sure you're getting different values with some offsets because the FFT buffer crosses the 65536 boundary (per the documentation you quoted).

Try adding this line immediately above the loop() that prints the results:

Code:
((in_buf/65536)|0) != (((in_buf+fft_size*(real?1:2) - 1)/65536)|0) ? gfx_printf("would give bad results\n") :
(that will print an error message rather than results if in_buf crosses a boundary)
Ah, thank you Justin!
So I misunderstood this part of the docs in thinking that merely the size of the FFT workspace can't be bigger than 65536 items (which is also true as a result):
Quote:
Originally Posted by JS docs
Note that the FFT/IFFT must NOT cross a 65,536 item boundary, so be sure to specify the offset accordingly.
Instead I guess the effect memory is partitioned into blocks of 65536 slots in which a FFT is able to perform as long as it doesn't cross block boundaries:
|<--65536 items-->|<--65536 items-->|<--65536 items-->| ... up to a total of 8388608 items

That's awesome to know and totally makes sense if you think about it.

Last edited by Veto; 12-06-2017 at 07:34 PM.
Veto is offline   Reply With Quote
Old 12-09-2017, 08:34 PM   #7
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

Thanks again everybody, in the end my gfxanalyzer mod shaped up nicely



EDIT: outdated file removed

Last edited by Veto; 12-15-2017 at 03:07 PM.
Veto is offline   Reply With Quote
Old 12-09-2017, 09:12 PM   #8
hopi
Human being with feelings
 
hopi's Avatar
 
Join Date: Oct 2008
Location: Right Hear
Posts: 12,704
Default

really quite nice Veto... thanks
__________________
...should be fixed for the next build... http://tinyurl.com/cr7o7yl
https://soundcloud.com/hopikiva/angel-rain
hopi is offline   Reply With Quote
Old 12-10-2017, 12:52 AM   #9
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Germany
Posts: 3,858
Default

Quote:
Originally Posted by Veto View Post
Thanks again everybody, in the end my gfxanalyzer mod shaped up nicely

Looks perfect !

Any chance you provide it via ReaPack (please including a decent "About" section) ?

Thanks a lot !
-Michael
__________________
www.boa-sorte.de
mschnell is offline   Reply With Quote
Old 12-10-2017, 02:46 AM   #10
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

Thanks guys.
You're right Michael, I really should look into Reapack.
Veto is offline   Reply With Quote
Old 12-10-2017, 04:19 AM   #11
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 4,365
Default

Interesting ! This is an ambitious project !

--
It could have been nice to have a toggle for having tracks colors instead of predetermined one but it's not possible via JSFX to get track color...

... but what is possible to add JSFX sliders for INT colors of each tracks, and altered this with a script (scripts can set FX values), like "Set Veto's freq analyser JSFX color to their track receive" (I assume you put the analyses on a dedicated analyzing group). :P

--

More complex but very useful would be to have a Slope settings, like there is on Voxengo Span.


As you can see the GFX version looks more 'bassy' than the voxengo one. (in fact it is pretty harsh electric guitar signal, Span slope gives me a more accurate (to what I hear) analyses by showing this bump in the highs.

--
Thanks for your work !
X-Raym is offline   Reply With Quote
Old 12-10-2017, 04:45 AM   #12
heda
Human being with feelings
 
heda's Avatar
 
Join Date: Jun 2012
Location: Spain
Posts: 4,579
Default

I agree with X-Raym to be able to customize the colors
Slope would be nice too.
Very cool Veto!
__________________
HeDaScripts for REAPER | VIP Donations
heda is offline   Reply With Quote
Old 12-10-2017, 05:38 AM   #13
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

Quote:
Originally Posted by X-Raym View Post
It could have been nice to have a toggle for having tracks colors instead of predetermined one but it's not possible via JSFX to get track color...

... but what is possible to add JSFX sliders for INT colors of each tracks, and altered this with a script (scripts can set FX values), like "Set Veto's freq analyser JSFX color to their track receive" (I assume you put the analyses on a dedicated analyzing group). :P
Thanks for the feedback, both X-Raym and Heda!

The colors are hard-coded to have maximum human-perceivable contrast to each other and to the background.
Coloring by track could indeed be cool (nice idea), but would result in lesser contrast in any case.
Automatic coloring by track could get messy when internal FX-chain routing is more interleaved, or when multiple tracks share the same channel, or when no tracks are routed, or other corner-cases. It's not hard to make the colors accessible to sliders but if you would need more than setting colors to e.g. selected Tracks you would need to sort out the logic.

Quote:
Originally Posted by X-Raym View Post
More complex but very useful would be to have a Slope settings, like there is on Voxengo Span.
Is "Slope" identical to tilting the spectrum (I'm sorry I don't have Span here)? If so, it wouldn't be hard but I kind of find it a bit odd, because all amplitude values wouldn't match then. Let me think about this.

Quote:
Originally Posted by X-Raym View Post
As you can see the GFX version looks more 'bassy' than the voxengo one. (in fact it is pretty harsh electric guitar signal, Span slope gives me a more accurate (to what I hear) analyses by showing this bump in the highs.
That depends on the FFT settings. You used a window size of 1024 (set by default).
I don't know if Span has support for different FFT sizes but if not, then setting gfxanalyzers FFT to 32768 gives you accuracy Span could only dream about especially in the lower frequencies region.


EDIT: I'm sorry I think I misunderstood you. You talked accuracy and I talked resolution (which is connected to accuracy though)
Concerning accuracy have a look at that image. It shows static sines by 8 JS tonegenerator instances from A1 to A8 at -12dB. They perfectly align to their frequencies.


Could you do me a favor and test that with Span (I include a track template)?
I would be very curious if it matches too.

(other parameters which also alter the spectrum are integration time and window types so its best to make sure that they are roughly the same in both plugins)
Attached Images
File Type: png test.png (24.1 KB, 361 views)
Attached Files
File Type: rtracktemplate gfxanalyzer_test.RTrackTemplate (7.7 KB, 8 views)

Last edited by Veto; 12-10-2017 at 06:26 AM.
Veto is offline   Reply With Quote
Old 12-10-2017, 06:44 AM   #14
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 7,390
Default

Quote:
Originally Posted by Veto View Post
Is "Slope" identical to tilting the spectrum (I'm sorry I don't have Span here)? If so, it wouldn't be hard but I kind of find it a bit odd, because all amplitude values wouldn't match then. Let me think about this.
Yes.
A common setting (which I also use) is a slope of 3dB/octave so that pink noise shows flat.
Span uses 4.5dB/octave as default.

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

Nice work on the analyzer btw.

Last edited by nofish; 12-10-2017 at 07:14 AM.
nofish is offline   Reply With Quote
Old 12-10-2017, 07:18 AM   #15
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 4,365
Default

@Veto

Quote:
The colors are hard-coded
You can keep this mod, it make sense, especially if you master groups tracks that are not colored, but a toggle allowing custom colors would be nice :P Companion scripts to set this colors from selected tracks or palette or whatever could be made with access to color sliders.

Quote:
but would result in lesser contrast in any case.
User problem. We can think about a master Saturation slider but this is really low priority I think. Personally, I only use vibrant colors already.
There is some situations where we don't want contrast (like if yo master several tracks from a drum kit against another instrument, you may want all your drums tracks to have same colors).

Quote:
That depends on the FFT settings. You used a window size of 1024 (set by default).
Indeed, my GFX analyser and Span FFT didn't match but that didn't change the FR :P

Having slope may not be "accurate" but allow to have something that matches more "how we feel the sound".
In this Linkin Park song, I find bass is nicely balanced with medium and heigh. Span slope at 4.5 shows a curve globally flat. If I set it to 0, then I get the same results as the GFX analyser: a bump in bass display.



Here is with Sines at various octave from a 440hz (I just see you made a track template, I can remake the gif is needed):

In this case, it does make sense to have slope at 0, but in mixing context, I think slope at 4.5 (or custom) is more useful.

From Span manual:
Quote:
Note that by default SPAN uses 4.5 dB per octave
slope for the spectrum display
which makes it look considerably “elevated” towards the higher frequencies in
comparison to most other spectrum analyzers available on the market.
This setting
can be changed in the “Spectrum Mode Editor” window
Note than SPAN is free and cross platform is you want to test Great plugin, really smooth display! But I'm really curious what a JSFX version can do At least being able to have 16 channel (or even more by modding) is really interesting :P

Thanks again for your consideration

Last edited by X-Raym; 12-10-2017 at 07:26 AM. Reason: Added Image
X-Raym is offline   Reply With Quote
Old 12-10-2017, 08:56 AM   #16
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

@NoFish: Thank you, most of the work was already done by Justin (and/or Schwa?) but why re-invent the wheel? Especially if its a nice wheel

@All: Slope looks like a really useful and common feature. Otoh to figure out the exact offsets in dB seems not as straight-foward as I thought first because the frequency grid is not plain logarithmic.
Anyways, I feel like we really need to have this guys.

@X-Raym: Thanks for all the gifs! Unfortunately I can't test Span on pure Ubuntu (no Wine etc.)
Quite interesting, output is still different because Span seems to be using another integration algorithm. It's much slower at the same time.
That or some kind of smoothing could cancel out some of the fast moving maxima. It's still not exactly a comparison but these maxima could provide useful info too.

I also kind of like that fact that I can measure the "real" non-interpolated values in gfxanalyzer but the interpolation in Span definitely makes it looks smoother.

(Amplitude doesn't matches with 0dB slope in Span but that is probably only due to a setting)

EDIT: Oh, and I'll do the custom color "slider API"

Last edited by Veto; 12-10-2017 at 09:20 AM.
Veto is offline   Reply With Quote
Old 12-10-2017, 09:16 AM   #17
heda
Human being with feelings
 
heda's Avatar
 
Join Date: Jun 2012
Location: Spain
Posts: 4,579
Default

this is pink noise generator jsfx routed to it. the average should look horizontal line. This would be very useful.
__________________
HeDaScripts for REAPER | VIP Donations
heda is offline   Reply With Quote
Old 12-10-2017, 09:22 AM   #18
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

Yup I'm already sold
Just need to figure things out.
Veto is offline   Reply With Quote
Old 12-10-2017, 09:55 AM   #19
FnA
Human being with feelings
 
FnA's Avatar
 
Join Date: Jun 2012
Posts: 1,826
Default

Nice!

Slope sounds good. Other things span has that I have found useful are zoom feature and +- cents by the note number.

But doing great regardless.
FnA is offline   Reply With Quote
Old 12-10-2017, 03:31 PM   #20
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Germany
Posts: 3,858
Default

Quote:
Originally Posted by heda View Post
this is pink noise generator jsfx routed to it. the average should look horizontal line. This would be very useful.
Yep. I sometimes use pink noise to adapt equalization to a room/Loudspeaker by sending the microphone signal to SPAN and set the slope so that pink noise is an horizontal line.

-Michael
__________________
www.boa-sorte.de
mschnell is offline   Reply With Quote
Old 12-11-2017, 01:11 AM   #21
skippertag
Human being with feelings
 
Join Date: Jun 2015
Posts: 214
Default

Quote:
Originally Posted by Veto View Post
Thanks again everybody, in the end my gfxanalyzer mod shaped up nicely

Very, very cool!! Thanks a lot!

With regards to Span - I had always the feeling that it shows something to me that wasn't really helpful..

I mean...how can you get used to a curve when you always have to adjust the slope/tilt to make it show different signal levels every time?
Is it really useful to adjust something to show you what you wanna see instead of adjust the sound to make the given analyzer show what is "real"?

Would something like iZotope's Balance Control or Hofa IQ-Analyzer or anything simliar really be of good reference help it you don't know what the analyzer is currently showing because you always have to check and adjust the slope for that special task that you're observing?

I personally need one Reference to which I can get used to where I see directly if my sound curve is within the ballpark or not..

Thanks again Veto for that great mod!!

For me that greatest feature you may want to take into account is the ability to load and save reference curves and maybe to show a weighted curve in addition to the peaks like the great IQ-Analyzer does with its Energy Curve :-)

Last edited by skippertag; 12-11-2017 at 01:27 AM.
skippertag is offline   Reply With Quote
Old 12-11-2017, 07:25 AM   #22
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Germany
Posts: 3,858
Default

Quote:
Originally Posted by skippertag View Post
how can you get used to a curve when you always have to adjust the slope/tilt to make it show different signal levels every time?
While I think that slope is important, at least two slope setting (flat and "pink noise") should be available by direct buttons.

-Michael
__________________
www.boa-sorte.de
mschnell is offline   Reply With Quote
Old 12-15-2017, 02:27 PM   #23
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

v0.2 is up. For download links or ReaPack index have a look at post #1.

Slope and customizing colors by script turned out straight-foward, getting ReaPack to work on my highly exotic OS was the hard part. Got it now thanks to cfillion!
Atm amplitude grid and readout values do not change in proportion to the tilted spectrum, for now the cheap solution is to just blend them out when slope is set. Maybe in the next version.

If you come across visual quirks (so far only on linux, see here and here for more) set LINUX_COMP to 1 in the code, which is set on all linux systems by default.

If you need help be sure to take a look at the about section of the scripts/packages in ReaPack.

Last edited by Veto; 12-15-2017 at 03:27 PM.
Veto is offline   Reply With Quote
Old 12-15-2017, 02:38 PM   #24
skippertag
Human being with feelings
 
Join Date: Jun 2015
Posts: 214
Default

Many thanks Veto!!
skippertag is offline   Reply With Quote
Old 12-15-2017, 04:05 PM   #25
heda
Human being with feelings
 
heda's Avatar
 
Join Date: Jun 2012
Location: Spain
Posts: 4,579
Default

Thank you Veto.
It's perfect
and wonderful
__________________
HeDaScripts for REAPER | VIP Donations
heda is offline   Reply With Quote
Old 12-15-2017, 05:32 PM   #26
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 4,365
Default

Oh yes, Reapack release, awesome ! Thanks !

Here is a screenshot of v0.2



I can see indeed it missed the vertical scale and also that there is now up to 40hz bandwith (not sure if that is necessary in most cases ?).

The script to set color from tracks, but maybe a button to reset colors right on the window can be nice too.

Compared to SPAN, the X-axis scale seems to be different:

The 20-70hz scale seems a bit compressed in the JSFX. How come ?

Very good work anyway :P Having such plugin as JSFX allows to bring a lot of customization possibility !
X-Raym is offline   Reply With Quote
Old 12-16-2017, 01:31 AM   #27
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Germany
Posts: 3,858
Default

Quote:
Originally Posted by X-Raym View Post
Oh yes, Reapack release, awesome ! Thanks !
+1 !!!
-Michael
__________________
www.boa-sorte.de
mschnell is offline   Reply With Quote
Old 12-16-2017, 02:45 AM   #28
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

Cool, glad if some of you guys have some use for it

You may/may not need this in a musical context but like the original gfxanalyzer, frequency goes from 0 to Nyquist (you're using a samplerate of 96000 X-Raym) so you get the maximum of information.
Use a samplearate of 8000 in your mixes and the gap disappears completely
On a more serious note though, maybe I can add a slider (or implement zoom, or ...) to remove the gap in one of the next versions.

Like all Cockos spectrum analyzers (ReaEQ, ReaFir,..) the freq scale is not plain logarithmic.
I guess the thinking for this is to leave more room for the mids.

Last edited by Veto; 12-16-2017 at 05:52 AM.
Veto is offline   Reply With Quote
Old 12-16-2017, 07:13 AM   #29
vitalker
Human being with feelings
 
vitalker's Avatar
 
Join Date: Dec 2012
Posts: 3,141
Default

Quote:
Originally Posted by Veto View Post
Thanks guys.
You're right Michael, I really should look into Reapack.
It should be included into Reaper installer.
Nice plug-in! Thank you for the good job!
__________________
Quote:
Originally Posted by Sexan View Post
Make a thread "F%#! you Reaper! I quit!" to get more views and feedback since these kind of threads get much more traction
SoundCloudFR: "Real" Non-destructive GLUEFR: tree view for FX Bay
vitalker is online now   Reply With Quote
Old 12-16-2017, 11:54 AM   #30
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Germany
Posts: 3,858
Default

As already stated I would appreciate buttons to set the slope to zero and to pink noise compensation (I don't remember the value for that)

-Michael
__________________
www.boa-sorte.de
mschnell is offline   Reply With Quote
Old 12-16-2017, 03:32 PM   #31
Winfield
Human being with feelings
 
Winfield's Avatar
 
Join Date: Jan 2007
Location: The Underground Bunker
Posts: 411
Default

This is great, thanks!

Excuse my ignorance, but how do I set it up as shown above - with inputs from other tracks?

Thanks

-W
__________________
"if DAWs are religions, REAPER is atheism" - The big J
Winfield is offline   Reply With Quote
Old 12-16-2017, 04:17 PM   #32
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

Quote:
Originally Posted by vitalker View Post
It should be included into Reaper installer.
Nice plug-in! Thank you for the good job!
Thanks Vitalker! If the code qualifies I'd had no problem with that. My additions, like the original, are of course also LGPL.
There's a tiny CPU increase though using it with only 1 channel enabled (still super light imho)
which I just couldn't eliminate with checks.
The cause of this increase is mainly because of a simple check in @sample if channel 1-16 are enabled. *

Quote:
Originally Posted by mschnell View Post
As already stated I would appreciate buttons to set the slope to zero and to pink noise compensation (I don't remember the value for that)
Yes I saw that Michael but I'd rather like to keep the interface as clean as possible.
I think saving a preset for a specific configuration might be more suited here.
Btw dbl-click buttons already resets them to their default values.
0 in the case of slope, which you could also change.

Quote:
Originally Posted by Winfield View Post
This is great, thanks!

Excuse my ignorance, but how do I set it up as shown above - with inputs from other tracks?

Thanks

-W
You're welcome Winfield. If you mean coloring the spectrum like the tracks you'd need the eel script "Set colors of focused Veto_gfxanalyzer to tracks sending on channels 1-16.eel".
There's a description in the about section of the script in ReaPack which I'll quote here.
Just drop another line here if this doesn't help you.
Quote:
Description
This is a dedicated script to set the plot colors of the Veto_gfxanalyzer.jsfx plugin (Multi Channel Spectrum Analyzer) to the colors of the sending tracks.
Prerequisites
- SWS-Extension
How-To
1. Insert Veto_gfxanalyzer on track x
2. Route (up to) 8 colored stereo tracks to track x
3. Increment destination channels (1-2 -> 1-2, 1-2 -> 3-4, ...)
4. (Leave fx-chain routing of track x and pin connection of Veto_gfxanalyzer unmodified)
5. Set mouse focus to Veto_gfxanalyzer plugin
6. Run this .eel script
If you just want to route the tracks without the special coloring, just omit steps 4-6 (you don't need another script then).

*
EDIT: Just pushed a small optimization.
Apparently checking a slider variable (slider7) in @sample is more costly than a normal var.

Last edited by Veto; 12-20-2017 at 03:11 PM.
Veto is offline   Reply With Quote
Old 12-20-2017, 07:55 AM   #33
RCJacH
Human being with feelings
 
Join Date: Apr 2016
Location: Beijing, China
Posts: 87
Default

Hey this is a great one!
As a feature request, is it possible to implement RMS (or some sort of averaging) and peak hold?
RCJacH is offline   Reply With Quote
Old 12-20-2017, 10:55 AM   #34
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

Thanks RCJacH! Maybe I'm misunderstanding but setting integration time averages over time.
Just out of interest, what would RMS make different for you compared to that?

Freeze/hold is on the list (Skippertag would like to have it too I think) only need to find a little time.

Last edited by Veto; 12-20-2017 at 02:36 PM.
Veto is offline   Reply With Quote
Old 12-20-2017, 08:28 PM   #35
RCJacH
Human being with feelings
 
Join Date: Apr 2016
Location: Beijing, China
Posts: 87
Default

Quote:
Originally Posted by Veto View Post
Thanks RCJacH! Maybe I'm misunderstanding but setting integration time averages over time.
Just out of interest, what would RMS make different for you compared to that?

Freeze/hold is on the list (Skippertag would like to have it too I think) only need to find a little time.
Oh, I'm sorry, I didn't see that integration time setting. That is indeed what I meant.
RCJacH is offline   Reply With Quote
Old 12-20-2017, 09:29 PM   #36
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

Ok no worries
Veto is offline   Reply With Quote
Old 12-21-2017, 12:40 AM   #37
skippertag
Human being with feelings
 
Join Date: Jun 2015
Posts: 214
Default

Quote:
Originally Posted by Veto View Post
Thanks RCJacH! Maybe I'm misunderstanding but setting integration time averages over time.
Just out of interest, what would RMS make different for you compared to that?

Freeze/hold is on the list (Skippertag would like to have it too I think) only need to find a little time.
and when you somehow find even a little more time it would be soooooooo cool to save and load reference curves (although I know this is gonna be a problem because of the different timing options..)

Anyhow...thanks again and a very merry christmas time to you and y'all
skippertag is offline   Reply With Quote
Old 12-21-2017, 09:49 AM   #38
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 767
Default

Thanks skippertag, a fine Christmas to you and yours too!

Yes, having reference curves some day would be very nice too.
Veto is offline   Reply With Quote
Old 12-21-2017, 10:01 AM   #39
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 6,384
Default

Very impressive!
__________________
Reaper x64, win 8.1
G-Sun.no - Music Blog - My music
G-Sun is offline   Reply With Quote
Old 12-21-2017, 10:41 AM   #40
Robert Randolph
Human being with feelings
 
Robert Randolph's Avatar
 
Join Date: Apr 2017
Location: St. Petersburg, FL
Posts: 550
Default

I do not see Veto_gfxanalyzer in Reapack with the repository added. I only see Set colors of focused Veto_gfxanalyzer to tracks sending on channels 1-16

Should that be the case?
__________________
http://www.admiralbumblebee.com
Audio/DAW stuff, Woodworking, Programming and more... new posts twice a week or more.
Robert Randolph 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 06:47 AM.


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