Cockos Incorporated Forums

Cockos Incorporated Forums (https://forum.cockos.com/index.php)
-   REAPER Pre-Release Discussion (https://forum.cockos.com/forumdisplay.php?f=37)
-   -   Spectral Peaks Discussion (https://forum.cockos.com/showthread.php?t=185557)

ReaDave 12-28-2016 01:40 PM

Spectral Peaks Discussion
 
Since this new feature (which I love BTW) is bound to progress over a number of pre-releases, I figured it might be worth giving it its own topic here so suggestions don't get lost in old pre threads.

To kick off, here's a copy of some of my suggestions from the 5.32pre2 topic. Chime in with yours as you are inspired.

__________________________________

Quote:

Originally Posted by plush2 (Post 1775595)
# spectral peaks: low end of color spectrum is now 40Hz

IMHO, this would be much more useful if it could go right down to DC.
If that range was combined with the option to specify frequency bands within the overall spectrum and assign certain colour ranges to those bands, this would be extremely useful for instantly spotting subsonic frequencies such as low end wind noise, mic stand bumps, plosives in vocals and other things.

Edit - For example: 0Hz - 15Hz range = Red to Orange, 16Hz - 50Hz = Orange to Yellow, 51Hz - 500Hz = Yellow to Green, 501Hz - 3.15KHz = Green to Blue, 3.16KHz - 20KHz = Blue to Aqua.
I've massively simplified this and haven't put much thought into the bands but this is just a quick illustration to show assigning colours to (sometimes vastly) differing bandwidths.

__________________________________

One more suggestion regarding the colour selection in the Peak Display Settings window, would it be possible to implement a user definable colour map something along the lines of the Photoshop custom gradient editor?
Each of the little coloured boxes can be double clicked to open a colour picker and they can be slid along the gradient to position them. More colour boxes can be added to the gradient by single clicking.

https://stash.reaper.fm/29321/PS-Gradient.png
__________________________________

A couple more quick things regarding the Peak Display Settings window:

* It is VERY small on my screen and the font is very hard to read. I actually had to use the Windows magnifier to make out what the text either side of the spectrum actually said!
Perhaps it could be made resizable like ReaEQ which would also make for much easier spectrum editing (hint, hint) ;)

* This is just a personal preference but perhaps the default spectrum colours could match the colour temperature scale. For example, cold (LF) = red through to hot (HF) = blue.
Coming from a physics, electronics, video and photography background, this just seems logical to me.

karbomusic 12-28-2016 02:08 PM

Quote:

Originally Posted by ReaDave (Post 1775975)
Chime in with yours as you are inspired.

It think stuff outside human hearing shouldn't be a color, ex: <20Hz black > 20kHz White. I also don't think it should follow the kelvin style color temperature scale for cold/hot because its confusing in an audio context, for example, blue is a cool color to our eyes and red is hot (just like meters) which is the better creative reference, we wouldn't want that reversed just because the other technical scale is used in lighting. I fully understand the other scale, I just don't see it helpful in audio where its inverse has already been used for so long.

Justin 12-28-2016 02:32 PM

Quote:

Originally Posted by ReaDave (Post 1775949)
IMHO, this would be much more useful if it could go right down to DC.

I don't disagree, however the analysis is limited in what it can produce -- each frequency bin is about 43Hz wide, so there's no real distinction between 10Hz and 40Hz for the purposes of spectral peaks. Sorry, live with it (until we all have 10x more processing power, in which case we can increase the resolution a bit, some day).

Justin 12-28-2016 02:33 PM

I should mention: I understand the impulse to go FR crazy with this -- there are tons of great suggestions here -- but for purposes of getting this functionality finished, we're really going to focus on making sure the core of it is as stable and generally useful as possible, providing a ReaScript API, and then later on we'll add more features.

ReaDave 12-28-2016 02:37 PM

Quote:

Originally Posted by karbomusic (Post 1775991)
It think stuff outside human hearing shouldn't be a color, ex: <20Hz black > 20kHz White.

Great idea! +1.

In fact, I kind of have the upper range set that way right now. I'm working on a new album with lots of analog synths and analog sequencer parts and the spectral display is showing anything with pink and white noise (used in sequences for percussive FX) as white (or very light grey) and it is much more than just a pretty display. It actually helps heaps with arranging and "seeing" what a certain part of the song sounds like.

Here's a screen shot (My spectral colours are red for LF to blue for Mid/High F).
First part (track 1) is a bass sequence on Roland SH09.

Second part (track 3) is an arpeggio part on Roland Juno 6. You can see the LFO modulation opening and closing the filter here. As it opens, the white noise generator produces a percussive effect which shows as light grey in the spectrum and, as it closes slightly, just the notes without the noise get through.

Third and fourth parts are stereo outputs 1 & 2 from my Yamaha SY77. The patch here has a bright attack with lots of top end (showing light grey again) which rolls off as the chords are sustained (these are high chords which show as blue).

Click image for full resolution:
https://stash.reaper.fm/29323/REAPER-...ay-1-Thumb.png

ReaDave 12-28-2016 02:43 PM

Quote:

Originally Posted by Justin (Post 1776004)
I don't disagree, however the analysis is limited in what it can produce -- each frequency bin is about 43Hz wide, so there's no real distinction between 10Hz and 40Hz for the purposes of spectral peaks. Sorry, live with it (until we all have 10x more processing power, in which case we can increase the resolution a bit, some day).

Thanks for the explanation Justin. No problem with that at all. Sub frequencies tend to stand out pretty well just by observing the waveform anyway.

Quote:

Originally Posted by Justin (Post 1776005)
I should mention: I understand the impulse to go FR crazy with this -- there are tons of great suggestions here -- but for purposes of getting this functionality finished, we're really going to focus on making sure the core of it is as stable and generally useful as possible, providing a ReaScript API, and then later on we'll add more features.

No problem there either. In fact, this feature is already immensely useful and very usable. As you can probably tell, I'm quite excited about it and really appreciate the fact that REAPER is progressing in such a continuous manner. I'm constantly amazed by your continued enthusiasm and work ethic (these releases are coming as most people have holidays!!!) :cool:

ReaDave 12-28-2016 02:58 PM

Quote:

Originally Posted by karbomusic (Post 1775991)
...I also don't think it should follow the kelvin style color temperature scale for cold/hot because its confusing in an audio context, for example, blue is a cool color to our eyes and red is hot (just like meters) which is the better creative reference, we wouldn't want that reversed just because the other technical scale is used in lighting. I fully understand the other scale, I just don't see it helpful in audio where its inverse has already been used for so long.

Fair enough. I guess this is why it would be great to have the custom selectable palette. As usual with REAPER, we could then set it up as we want.
EDIT - Just a personal thing here but I've always equated bass as 'hot' (or more usually 'warm') and treble as 'cool'. When we speak of warming up our audio (I know, very loose term there!!), that generally tends to mean less harshness in the HF (and quite often with some sort of rolloff) and more fullness in the LF.
LF generally has a lot more energy too and is thus usually hotter on the meters, especially analog VU meters.

EDIT 2 - Rethinking all this, I think we're actually saying the same thing. Red on the Kelvin scale is actually cool but it is also the lowest frequency. Blue is the hot end of the spectrum and is the highest frequency.
EDIT 3 - My brain hurts!!! - Are we saying the same thing? Or is LF cool to you and HF hot? - Sorry, not trying to be argumentative, just trying to wrap my head around our perspectives (and I actually do have a migraine coming on caused by something else).

The colour scale adjustment as it is now is quite usable with the click and slide option BTW. My suggestions are more for future updates and feature additions after, as Justin said, the core is proven to be stable and efficient (it already works well here!)

I'm used to this way of working with colour mainly through the way some of my other programs show spectrums (such as iZotope RX). Granted, this is more an intensity based colour map but given that there's almost always more energy in the low frequencies, RX tends to show LF as red and HF as blue.

Here's an example:

https://stash.reaper.fm/29325/iZotope-RX2-Adv.png

pcartwright 12-28-2016 03:01 PM

Pardon my ignorance, but what about the frequency determines the color? Is it a dominant band of frequencies?

What color would one expect from a media item that has a wide range of concurrent frequencies?

Justin 12-28-2016 03:07 PM

Quote:

Originally Posted by pcartwright (Post 1776016)
Pardon my ignorance, but what about the frequency determines the color? Is it a dominant band of frequencies?

What color would one expect from a media item that has a wide range of concurrent frequencies?

For REAPER's spectral peaks: the point which represents the rough center of the energy is used for the color. If there's a lot of concurrent frequencies throughout, REAPER then fades it towards white/gray/black/theme (depending on preference), because it is less tonal.

vanhaze 12-28-2016 03:16 PM

Forgive me to be offtopic and ignorance, but can someone please tell me how to enable Spectral View for items ?

And can it be enabled per-item ?
That would be great ...

pcartwright 12-28-2016 03:19 PM

Gotcha. So one would expect (as a generalization) a fairly wide range of colors on a vocal take (transitions between lower frequency vowels and higher frequency consonants) and a more neutral or gray for a full mix render, correct?

Xenakios 12-28-2016 03:33 PM

Quote:

Originally Posted by vanhaze (Post 1776021)
Forgive me to be offtopic and ignorance, but can someone please tell me how to enable Spectral View for items ?

And can it be enabled per-item ?
That would be great ...

Main Menu View->Peaks display settings.

Note that it is spectral peaks (colored waveforms), not a spectral view (sonogram/spectrogram) like you would expect to see in Adobe Audition or similar.

The feature currently can't be turned on/off per item, it's a global setting.

vanhaze 12-28-2016 03:37 PM

Ahaaa, many thanks for your help !

Masonic 12-28-2016 03:42 PM

I do believe that visual environment is very helpful (inspiring) while creating music. However, after having spectral views in Samplitude (probably, for about 5 years) I always turned it off. Firstly, it didnít look so great. Secondly, it wasnít helpful. In fact, it was really distracting. I thought it was meant to be implemented like in synesthesia (as prescribed by Alexander Scriabin) but in this instance the waveform would have to be displayed in full 3D.

Speaking of 3D, is there any chance to implement a very simple 3D grading of the waveform display? In order to unstuck it a little bit from the items? Make it float so to speak.

Another thing would be great is the ability to specify (or assign individually) different colors to different harmonies.
For example, I see C-major in red and D in orange tones, etc, etc. This way we could keep it according to our visions (literary) of music and then adjust the intensity of colors to suit the music.

karbomusic 12-28-2016 03:58 PM

Quote:

Originally Posted by Justin (Post 1776005)
I should mention: I understand the impulse to go FR crazy with this

Oops, that was the reason for my seemingly cryptic questions in clepsydrae's thread about spectral peaks. I assumed it wasn't supposed to be much beyond an enhanced peak file which is fine with me albeit couldn't help joining in on the discussion.

Argitoth 12-28-2016 04:18 PM

Quote:

Originally Posted by Justin (Post 1776004)
each frequency bin is about 43Hz wide, so there's no real distinction between 10Hz and 40Hz for the purposes of spectral peaks. Sorry, live with it (until we all have 10x more processing power, in which case we can increase the resolution a bit, some day).

Wouldn't it be more useful and just as much processing power to make low frequency bins smaller and high frequency bins wider? or f*** wait, is it the other way around...

Justin 12-28-2016 04:22 PM

Quote:

Originally Posted by Argitoth (Post 1776042)
Wouldn't it be more useful and just as much processing power to make low frequency bins smaller and high frequency bins wider? or f*** wait, is it the other way around...

If you have some resources on the math behind such a thing, I'll happily take a look.

ReaDave 12-28-2016 04:52 PM

Quote:

Originally Posted by Justin (Post 1776018)
For REAPER's spectral peaks: the point which represents the rough center of the energy is used for the color. If there's a lot of concurrent frequencies throughout, REAPER then fades it towards white/gray/black/theme (depending on preference), because it is less tonal.

Is there currently any weighting to the frequency response of the analysis process or is it an equal dB scale at all frequencies? Asking more out of curiosity than anything else really.

heda 12-28-2016 05:02 PM

I see devs experimenting with new UI elements in the peak display settings window. Why? It is cool but I almost didn't realize that you can also drag the frequencies at the bottom os the spectral settings gradient.

Would it be useful to have presets for different spectral peaks settings? Or be able to specify them per track instead of global?

I don't know what is the problem with processing power. It's really fast. Maybe id settings per track, one could activate more detailed analysis just for one track that needs it.

Argitoth 12-28-2016 05:18 PM

Quote:

Originally Posted by Justin (Post 1776044)
If you have some resources on the math behind such a thing, I'll happily take a look.

meheHHEHEHEHE HAHAHAAAAA!!!... well f***

I'll get back to you if I ever find something.

ReaDave 12-28-2016 05:39 PM

Quote:

Originally Posted by Justin (Post 1776044)
If you have some resources on the math behind such a thing, I'll happily take a look.

I don't know a lot about the actual maths behind FFT calculations but would what Argitoth is suggesting be something along the lines of using equal points per octave for the FFT? Some of the spectrum analysis gear I use has the option of expanding the resolution of the low range this way. Instead of increasing the overall FFT resolution, it just changes the spacing of the points.
I'm not sure how that would equate to resource usage though.

musicbynumbers 12-28-2016 06:04 PM

Quote:

Originally Posted by ReaDave (Post 1776069)
I don't know a lot about the actual maths behind FFT calculations but would what Argitoth is suggesting be something along the lines of using equal points per octave for the FFT? Some of the spectrum analysis gear I use has the option of expanding the resolution of the low range this way. Instead of increasing the overall FFT resolution, it just changes the spacing of the points.
I'm not sure how that would equate to resource usage though.

I might have misunderstood but you can grab the frequencies at the bottom and "stretch" the run so to speak which definitely helps with definition. :)

musicbynumbers 12-28-2016 06:36 PM

some things that might be useful.
 
Just to put these here as well. :)

-Ability to colour by "note pitch" (repeated per octave). This might not be possible but being able to see each note in an octave as one of 12 strongly defined colours that repeat each octave would be insanely useful for editing and easily seeing pitch of notes etc.

-Presets. At least at the global and maybe make them action assignable for the first 5 of them. These would be great for getting the most optimum view for say individual types of instruments as well as an overview.

BenK-msx 12-28-2016 06:42 PM

Another way could be to 'lock' peaks to items, so user can adjust global setting to suit item(s) X then lock them then adjust for items(s) Y etc.

I think as long as devs can provide a way to analyse (selections) of peaks yielding histogram related data/code then scripters can use that info for all sorts of clever stuff,e.g matching searching etc.

PitchSlap 12-29-2016 12:57 AM

This is one of those things I didn't even consider requesting, but now I wouldn't want to work without it.

I'll leave the FR's for others (for once), just happy to have it. :)

mschnell 12-29-2016 01:31 AM

Reading about Rainbow-like coloring in this thread:

Obviously this only works straight forwardly if a single frequency can be detected in a snippet of the waveform. I.e. it is a sine.

What is supposed to happen with more complex waveform the Fourier-transform of which features more than one peak ? Should the highest peak (e.g. using "A" weighting) alone determine the color ? This would prevent white (and all unclear and dim colors).

To me, white noise should be shown white :) ( independent of it's volume, which in the end is consistent with showing silence as a straight white line.

-Michael

Tale 12-29-2016 01:35 AM

Quote:

Originally Posted by ReaDave (Post 1776069)
I don't know a lot about the actual maths behind FFT calculations but would what Argitoth is suggesting be something along the lines of using equal points per octave for the FFT? Some of the spectrum analysis gear I use has the option of expanding the resolution of the low range this way. Instead of increasing the overall FFT resolution, it just changes the spacing of the points.
I'm not sure how that would equate to resource usage though.

Yeah, that is probably the thing: The FFT uses linear scale throughout its entire range, and AFAIK there is no way around that...

timlloyd 12-29-2016 02:30 AM

Quote:

Originally Posted by Justin (Post 1776044)
If you have some resources on the math behind such a thing, I'll happily take a look.

http://doc.ml.tu-berlin.de/bbci/mate...Bla_constQ.pdf

Looks like a good starting point :)

Doesn't need to be invertible for this application, but the following might be interesting anyway, since it claims to be more efficient.

http://www.univie.ac.at/nonstatgab/p...e11_amsart.pdf

But it still looks slow, particularly for long input signals :-s

mschnell 12-29-2016 04:14 AM

Quote:

Originally Posted by Tale (Post 1776181)
FFT uses linear scale throughout its entire range, and AFAIK there is no way around that...

Yep.

But "FFT" = "Fast digital Fourier Transform" only is "faster" if there is a great number of sample / frequencies to be handled. (Order n*log(n) instead of n^2.)

If wanting to detect the Power of just a few frequencies in rather short snippets (and hence low exactness), other means might be usable more effectively.

-Michael

lexaproductions 12-29-2016 05:50 AM

.... And the ULTIMATE feature request with all of this would be to be able to select by colour range. Imagine the power to deess and pop filter a vocal track without a plugin?

ReaDave 12-29-2016 07:11 AM

Quote:

Originally Posted by Tale (Post 1776181)
Yeah, that is probably the thing: The FFT uses linear scale throughout its entire range, and AFAIK there is no way around that...

There is a way around it. What it is though, I don't know. I'm not an expert in FFT by a long stretch!!
I have an app on my old iPhone 3G from eight years ago called Audio Tools that has a very good spectrum analyzer which has the option of running the FFT as equal points per octave and it runs well in real time. That iPhone runs a single core 400MHz processor.

All this is under the assumption that Justin is using FFT for the waveform frequency calculations. That might not even be the case though.

Xenakios 12-29-2016 07:19 AM

Quote:

Originally Posted by ReaDave (Post 1776288)
which has the option of running the FFT as equal points per octave

The FFT analysis results can of course be displayed with any desired scaling of the data. But are you sure what that iPhone app is doing is actually doing the FFT analysis any differently than is usual? (The usual being, with way too much frequency resolution in the highest octaves than is wanted and poor resolution in the bass octaves...)

There are of course various alternative ways of doing the spectral analysis, with and without using FFT. The most advanced analysis methods tend to be closed source, proprietary technology.

ReaDave 12-29-2016 07:25 AM

Quote:

Originally Posted by Xenakios (Post 1776295)
The FFT analysis results can of course be displayed with any desired scaling of the data. But are you sure what that iPhone app is doing is actually doing the FFT analysis any differently than is usual? (The usual being, with way too much frequency resolution in the highest octaves than is wanted and poor resolution in the bass octaves...)

There are of course various alternative ways of doing the spectral analysis, with and without using FFT.

The result when selecting equal points per octave is exactly that. How it achieves it, I don't know.
They added that option to specifically increase the resolution as the frequency decreases. The trade-off is that the lower bands respond slower than the higher bands but it is perfectly usable in realtime even on such ancient (by modern standards) hardware.

That app was actually quite expensive and was designed by audio professionals to be used in serious applications. I ran it with hardware preamps and calibrated microphones and it was (still is) very accurate and useful.

EvilDragon 12-29-2016 07:27 AM

That sounds like they're changing FFT bin size depending on frequency...

ReaDave 12-29-2016 07:29 AM

Quote:

Originally Posted by EvilDragon (Post 1776297)
That sounds like they're changing FFT bin size depending on frequency...

That's exactly what they are doing. The maths and methods behind it I haven't studied.

Xenakios 12-29-2016 07:32 AM

Quote:

Originally Posted by ReaDave (Post 1776296)
The trade-off is that the lower bands respond slower than the higher bands

That sounds like normal FFT where increasing the analysis size gives more resolution in the low frequencies, but of course needs more data per analysis frame. (Therefore the slower response.)

Archimedes 12-29-2016 07:37 AM

Blech... Adobe Audition is quite useful.

ReaDave 12-29-2016 07:44 AM

Quote:

Originally Posted by Xenakios (Post 1776301)
That sounds like normal FFT where increasing the analysis size gives more resolution in the low frequencies, but of course needs more data per analysis frame. (Therefore the slower response.)

Agreed. Perhaps they're using 1024 for high frequencies and progressively increasing to something like 32,768 for the lowest frequencies.
The point behind all this is that this is doable and capable of running usefully in realtime even on old equipment running very slow (by today's standards) processing.

Jack Winter 12-29-2016 09:01 AM

Quote:

Originally Posted by Archimedes (Post 1776307)
Well, I hate to be the guy who says this, but wouldn't some simple stats be more useful than colorized waveforms (and what about folks who are color blind?).

Well I feel sorry for them, but that doesn't mean that the rest of us can't find a use for it. Maybe some kind of mapping to a grey scale would be useful.

hopi 12-29-2016 09:50 AM

Personally like this new feature, and might only ask for a bit more friendly user GUI on it:

Perhaps what I want would be mostly solved by making the window for it resizeable...
I ask this because the dragable divisions at the bottom can overlap the freq. numbers so they become hard to read...so if the window could be larger maybe this would be better?

Also wonder if a given set up can be saved as a 'preset' so we can return to or choose between several diff settings?

I know it's early in this game but just asking gently...


All times are GMT -7. The time now is 12:29 PM.

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