It is currently May 5th, 2024, 6:30 pm

AudioLevel

Share and get help with Plugins and Addons
User avatar
Dank420
Posts: 145
Joined: April 3rd, 2013, 1:04 am
Location: O-High-O

Re: New Plugin: AudioLevel

Post by Dank420 »

ok maybe i could get little box at end of line...

Code: Select all

[Rainmeter]
update=5

[Variables]
barhieght=200
barwidth=90
color=63,133,49
color2=207,27,51

[MeasureAudioOutput1]
Measure=Plugin
Plugin=AudioLevel
Port=Output
RMSAttack=150
RMSDecay=50
RMSGain=2.5
PeakAttack=15
PeakDecay=1000
PeakGain=1.0
;Id={0.0.0.00000000}.{f74349d0-9741-4987-a9bd-40178fa9ad06}

[MeasureAudioOutput1_2]
Measure=Plugin
Plugin=AudioLevel
Port=Output
RMSAttack=150
RMSDecay=75
RMSGain=2.5
PeakAttack=10
PeakDecay=1500
PeakGain=1.1
;Id={0.0.0.00000000}.{f74349d0-9741-4987-a9bd-40178fa9ad06}


[MeasureAudiopeak_L1]
Measure=Plugin
Plugin=AudioLevel
Parent=MeasureAudioOutput1
Channel=L
Type=peak

[MeasureAudiopeak_L1_2]
Measure=Plugin
Plugin=AudioLevel
Parent=MeasureAudioOutput1_2
Channel=L
Type=peak


[MeasureAudiopeak_R1]
Measure=Plugin
Plugin=AudioLevel
Parent=MeasureAudioOutput1
Channel=R
Type=peak

[MeasureAudiopeak_R1_2]
Measure=Plugin
Plugin=AudioLevel
Parent=MeasureAudioOutput1_2
Channel=R
Type=peak


;--------------------
[VU-Meter1_L]
Meter=Bar
BarOrientation=Vertical
MeasureName=MeasureAudiopeak_L1
barcolor=#Color#
X=0
Y=r
w=#barwidth#
h=#barhieght#

[VU-Meter2_R]
Meter=Bar
BarOrientation=Vertical
MeasureName=MeasureAudiopeak_R1
barcolor=#Color#
X=2R
Y=r
w=#barwidth#
h=#barhieght#
;--------------------

[slowdecaybar_L]
Meter=Image
W=#barwidth#
H=10
x=0
y=((#barhieght#)-([MeasureAudiopeak_L1_2:]*(#barhieght#)))
SolidColor=#Color2#
DynamicVariables=1

[slowdecaybar_R]
Meter=Image
W=#barwidth#
H=10
x=[VU-Meter2_R:X]
y=((#barhieght#)-([MeasureAudiopeak_R1_2:]*(#barhieght#)))
SolidColor=#Color2#
DynamicVariables=1


You do not have the required permissions to view the files attached to this post.
User avatar
dgrace
Developer
Posts: 265
Joined: June 28th, 2014, 8:32 am
Location: Tokyo, Japan

Re: New Plugin: AudioLevel

Post by dgrace »

One question I can't decide - do I do individual FFTs on each channel, or are people more likely to just want a spectrum analysis of the total signal? (all channels summed) Currently it's doing it per-channel but I don't know what's going to happen to cpu for you guys running 7.1. Are people likely to want individual spectra for left/right/ctr etc?

dave
supernemo
Posts: 6
Joined: July 21st, 2014, 12:52 pm

Re: New Plugin: AudioLevel

Post by supernemo »

1.png
Top and Bottom.
I want so, as a gadget. Help make, please
You do not have the required permissions to view the files attached to this post.
User avatar
Dank420
Posts: 145
Joined: April 3rd, 2013, 1:04 am
Location: O-High-O

Re: New Plugin: AudioLevel

Post by Dank420 »

Hmmm, System monitoring is Rainmeter, Raison d'être, id say as much info as you could output ( per channel), but i have no idea the difficulties or system usage that may result in...
User avatar
killall-q
Posts: 305
Joined: August 14th, 2009, 8:04 am

Re: New Plugin: AudioLevel

Post by killall-q »


Just look at all those %*#@ data points. Who knows what they mean, but that's beside the point.

FFTs should be available at the very least in stereo. One for every channel would be badass, with so many real time data points, some really interesting visualizations could be possible. Not a lot of people are running surround sound setups and those that do probably don't only play 7.1 audio on it, but if you already have it implemented and it doesn't cripple system performance, it wouldn't hurt as an extra option.
User avatar
dgrace
Developer
Posts: 265
Joined: June 28th, 2014, 8:32 am
Location: Tokyo, Japan

Re: New Plugin: AudioLevel

Post by dgrace »

Ok I'll leave it the way it is and if your CPU gets slammed, you can always switch your audio device back to stereo or turn off the FFT I guess. ;)

It's working pretty well right now but I want to convert the FFT data back into a log-scale spectral display which is a lot more familiar-looking. There is some lag which I can't get around - in order to get a high enough resolution on the lower frequencies, you need to use a big FFT size, but by using a big size, you're introducing that many samples of latency into the calculation. Another option would be doing it with a bank of bandpass filters instead of the FFT route, but I want to see if I can make it work this way first before I explore that. I'm also getting more frequency-spreading than I expected, i.e. when I run a sine wave through it I'm getting peaks on multiple frequency bands, so I'd like to figure that out.

I also want to put in an optimization where it'll bypass the FFT stage if the buffer is flagged as silent, which is true pretty much any time you're not playing audio on your system.

I'll hopefully post one tonight.

dave
supernemo
Posts: 6
Joined: July 21st, 2014, 12:52 pm

Re: New Plugin: AudioLevel

Post by supernemo »

Dank420
I do not think that there will be difficulties with the system due to the addition of the peaks. I can not get them done. Something I did not properly prescribe
User avatar
dgrace
Developer
Posts: 265
Joined: June 28th, 2014, 8:32 am
Location: Tokyo, Japan

Re: New Plugin: AudioLevel

Post by dgrace »

Ok here's the second attempt. I suspect Avast will still complain, but I believe that's their bug and not mine.

This one has my first pass attempt at integrating the FFT into log frequency bands, but I had to fudge it a bit - it's more pretty than accurate.

Too tired to do the documentation right now - poke through the skin and tweak things. Enjoy!

dave
User avatar
rm_lion
Posts: 93
Joined: December 27th, 2013, 4:04 pm
Location: Switzerland

Re: New Plugin: AudioLevel

Post by rm_lion »

The Measures for FFT have all exactly the same Value.
Maybe this links will help you?
http://www.engineeringtoolbox.com/octave-bands-frequency-limits-d_1602.html
Link found on the following page where they are discussing about : I need advice about how to make an audio frequency analyzer in C++
http://dsp.stackexchange.com/questions/2121/i-need-advice-about-how-to-make-an-audio-frequency-analyzer
On my Laptop with Core i5-3230M it consumes an average of 7% CPU. It's ok in my opinion.
You do not have the required permissions to view the files attached to this post.
User avatar
Dank420
Posts: 145
Joined: April 3rd, 2013, 1:04 am
Location: O-High-O

Re: New Plugin: AudioLevel

Post by Dank420 »

Dank420
I do not think that there will be difficulties with the system due to the addition of the peaks. I can not get them done. Something I did not properly prescribe


supernemo

getting the line to bounce lies in the Y
Y=((#barheight#)-([MeasureAudioRMS_L1:]*(#barheight#)))
barheight is just that height of bar, or in your case image which i think is 146
minus
audio level which ever measure you link it to (linking it to the same measure as graph will put it at top of bar) to make it higher/slower you will need to make new parent/child measure to change peaks/decays
(*) times
barheight again
and of course ever important DYNAMICVARIABLES=1 on each meter containing the equation

syntax important on equation as well as audio lvl times bar height happens before -barheight
0 x 5=0 or 146-0=146 (bar at bottom) .5 x 146=73 so 146-73=73 (bar in middle)

(from bottom.ini)
[Line1]
Meter=IMAGE
SolidColor=0,0,0,255
x=0
y=(146-([MeasureAudioRMS_L1:]*146))
W=50
H=2
DynamicVariables=1

line 2 would be [MeasureAudioRMS_L2:] and so on down the line

i was adding into bottom.ini and made a mistake. if part of the equation is missing(audiolvl misnamed) bars dont move but rainmeter trys the equation anyway causeing larger cpu usage, so watch the spelling and labeling....
Last edited by Dank420 on July 29th, 2014, 7:22 pm, edited 1 time in total.