Waveform

Waveform 1.8.1

Phandasm

Member
Phandasm updated Waveform with a new update entry:

Waveform v1.7.0

  • Add the ironically missing-until-now waveform display mode (experimental)
  • Add 'Pulse' render mode
  • Add option to continue processing audio while source is muted
  • Add option to adjust maximum volume normalization gain
  • Add option to adjust rotation of radial display
  • Add Traditional Chinese localization (thanks to Kai Lee)
  • Add Italian localization (thanks to Peppe73)
  • Attempt to mitigate A/V desync in some setups
  • Fix spectrum accuracy, spectrum graphs will...

Read the rest of this update entry...
 

olzug

New Member
The Visualizer is very sensitive is that a mistake or a feature? And if it is a feature how can i change it.
 

Phandasm

Member
The Visualizer is very sensitive is that a mistake or a feature? And if it is a feature how can i change it.
If you mean it's too "loud" then you can raise the 'Floor' and/or 'Ceiling' parameters.
If it's still too loud after that you can turn on volume normalization and lower the target volume.
 

tomdevlive

New Member
I see this has been asked a few times but wasnt sure what the verdict was. Is it possible to mirror "heard" audio? So if I turn down the vloume slider the waveform plugin would reduce in activity, or if I turn the volume it all the way down, you would not see any activity form the waveform plugin? I thought thats whats the 'hide graph when silent' thing did.
 

Phandasm

Member
I see this has been asked a few times but wasnt sure what the verdict was. Is it possible to mirror "heard" audio? So if I turn down the vloume slider the waveform plugin would reduce in activity, or if I turn the volume it all the way down, you would not see any activity form the waveform plugin? I thought thats whats the 'hide graph when silent' thing did.
The "hide when silent" option prevents anything from being drawn when the source audio is *completely* silent (e.g. muted).
Capturing the "output bus" should reflect the volume sliders in OBS, since it captures the final mix.
Other than that I'd have to add an option to mimic the volume slider when directly capturing a source.
 

Destroy666

Member
@Phandasm could you explain how the pulse mode works or link to a documentation? I'm having hard time understanding it and some of the names like "crest color" ore "gradient ratio" are completely confusing me, no idea what's their meaning, they could use the (?) icon with explantation tooltip.

For example, I'd like a setup where more chill music (calm piano, soothing singing, etc.) uses green base (or crest) color. However, more "aggressive" music (heavy metal, electronic drops) uses red crest (or base) color at volume peaks. Is this achievable? What would the settings be? I assume frequency mode should be used as magnitude would be volume based, it kind of works, but it seems to be way too jumpy for me at times, even when the same part of the song is playing.
 

Phandasm

Member
@Phandasm could you explain how the pulse mode works or link to a documentation? I'm having hard time understanding it and some of the names like "crest color" ore "gradient ratio" are completely confusing me, no idea what's their meaning, they could use the (?) icon with explantation tooltip.
In gradient mode the "Base color" is the color at the bottom (or center) of the graph, while "Crest color" is the color at the tip of the highest peak in the graph.
The gradient interpolates linearly between the bottom (or center) and the highest peak, but this distance can be scaled with the "Gradient ratio" option.
The default ratio of 0.75 means it reaches the "Crest color" 75% of the way up the peak, leaving the top 25% a solid color. Conversely a value of 1.25 puts the "Crest color" 25% *above* the peak, meaning you never make it all the way through the gradient.

Pulse mode is exactly the same, except instead of a gradient the whole graph is a solid color that scales between the "Base" and "Crest" colors based on the peak magnitude or frequency contained in the graph.
You probably do want magnitude mode, but it sounds like what you're actually looking for is something more like average power which isn't currently implemented.

In its current state pulse mode tends to work best when zoomed in on a small part of the spectrum (e.g. bass frequencies for EDM music).
 

Destroy666

Member
In gradient mode the "Base color" is the color at the bottom (or center) of the graph, while "Crest color" is the color at the tip of the highest peak in the graph.
The gradient interpolates linearly between the bottom (or center) and the highest peak, but this distance can be scaled with the "Gradient ratio" option.
The default ratio of 0.75 means it reaches the "Crest color" 75% of the way up the peak, leaving the top 25% a solid color. Conversely a value of 1.25 puts the "Crest color" 25% *above* the peak, meaning you never make it all the way through the gradient.

Pulse mode is exactly the same, except instead of a gradient the whole graph is a solid color that scales between the "Base" and "Crest" colors based on the peak magnitude or frequency contained in the graph.
You probably do want magnitude mode, but it sounds like what you're actually looking for is something more like average power which isn't currently implemented.

In its current state pulse mode tends to work best when zoomed in on a small part of the spectrum (e.g. bass frequencies for EDM music).
Thanks, I think I understand those options now. Well, the description at least :P

When I tested magnitude it was much further from what I wanted - what is that based on, if not volume? If it is volume, then chill songs (as well as the heavier ones) were reaching the peak pretty often, way more often than in frequency mode. Perhaps because I'm normalizing the volume? Which is lowered down by filters and thus the graph was always too low if I didn't. But even without normalization, when I listen to them daily, many of them are simply loud, soothing but with high volume levels.

Average as in mix of volume and frequency?
 

Phandasm

Member
When I tested magnitude it was much further from what I wanted - what is that based on, if not volume?
It's based on peak magnitude of frequency components, i.e. the loudest frequency in the spectrum (basically the same as the default gradient mode).
Normalizing the volume will definitely accentuate that.

Average as in mix of volume and frequency?
Average power across the spectrum, assumption being that more "aggressive" genres like metal will have a wider (and more consistently powerful) frequency spread than say, bossa nova.
 

24k_PurpleLove

New Member
Hey Im wondering if you know any fix for this, (Its not a huge problem since i run a high hz monitor but still wondering) How could I cause the frames to not drop down ?. Sometimes i noticed it drops to half the FPS set on obs which gets noticable after awile, But it does switch back. I use my visualizers Live, I dont record or anything, Altho I do know when you record its defently no drop in fps.
 

Phandasm

Member
Hey Im wondering if you know any fix for this, (Its not a huge problem since i run a high hz monitor but still wondering) How could I cause the frames to not drop down ?. Sometimes i noticed it drops to half the FPS set on obs which gets noticable after awile, But it does switch back. I use my visualizers Live, I dont record or anything, Altho I do know when you record its defently no drop in fps.
What fps are you running in OBS?
My test setup holds 1080p 60 no problem.
 

24k_PurpleLove

New Member
What fps are you running in OBS?
My test setup holds 1080p 60 no problem.
I used to use 1080p 60 aswell back when I had a pc and tv(60hz), But even then randomly it will drop to half the fps, (30) I use Fraps it measures game and obs fps thats how I know, Rn i use 1080p 144 (Yes my monitor and laptop, I use a laptop now) are 144hz, Now when it drops to half its not to bad because 72fps isnt choppy but you can tell its different. But it does settle back after a little, It usally trickles up back to its fps set. Then again I dont record, I use my Visualizers Live, (By live I mean like, I set my visualizers up in obs and thats it, and sometimes I click click on the screen area and click fullscreen to my certain monitor so it looks nice. Hopefully I got that "Live" section clear so yk what I mean. Not live in a way where Its live on youtube, (Altho I think streamlabs is meant for that more even tho its the same) And also my laptop is stronger than my pc I used to have, Altho I dont think that matter since these visualizers don't really budge the gpu and cpu.
 

Phandasm

Member
I used to use 1080p 60 aswell back when I had a pc and tv(60hz), But even then randomly it will drop to half the fps, (30) I use Fraps it measures game and obs fps thats how I know, Rn i use 1080p 144 (Yes my monitor and laptop, I use a laptop now) are 144hz, Now when it drops to half its not to bad because 72fps isnt choppy but you can tell its different. But it does settle back after a little, It usally trickles up back to its fps set. Then again I dont record, I use my Visualizers Live, (By live I mean like, I set my visualizers up in obs and thats it, and sometimes I click click on the screen area and click fullscreen to my certain monitor so it looks nice. Hopefully I got that "Live" section clear so yk what I mean. Not live in a way where Its live on youtube, (Altho I think streamlabs is meant for that more even tho its the same) And also my laptop is stronger than my pc I used to have, Altho I dont think that matter since these visualizers don't really budge the gpu and cpu.
Right, but surely OBS isn't actually running at 144 fps? It doesn't just automatically match your monitor, you have to set it manually in settings->video.
The most it seems to support is 120.

The number that fraps reports is likely just the presentation rate of the *preview*, which is not necessarily the same as the rate OBS renders the actual output frames internally.
OBS has built in performance metrics (view->stats), check those and see if you're actually dropping frames.
 

tomdevlive

New Member
The "hide when silent" option prevents anything from being drawn when the source audio is *completely* silent (e.g. muted).
Capturing the "output bus" should reflect the volume sliders in OBS, since it captures the final mix.
Other than that I'd have to add an option to mimic the volume slider when directly capturing a source.
Thanks for the reply!

So yea the 'hide when silent' only works if its, well, silent. So I realize the audio itself needs to be silent, and the volume fader making it silent doesnt really have an effect. I was hoping to have the waveform audio level be determined by the relevant voulme slider for the attached audio input to waveform.
 

Phandasm

Member
I was hoping to have the waveform audio level be determined by the relevant voulme slider for the attached audio input to waveform.
Yeah, waveform captures audio as output from the source, before OBS's faders actually take effect (except for the "output bus").
There's currently no way to do this, I'd have to figure out a way to explicitly mimic the faders.
 

tomdevlive

New Member
Yeah, waveform captures audio as output from the source, before OBS's faders actually take effect (except for the "output bus").
There's currently no way to do this, I'd have to figure out a way to explicitly mimic the faders.
It's all good man, this is just like some weird off hand request.

I super appreciate what you have done with this plugin already!
 

JohnInStockie

New Member
Great plugin, any way it could be monitoring a scene with multiple sources (so a scene as the source within another scene), rather than just 1 single specific source?
 

Phandasm

Member
Great plugin, any way it could be monitoring a scene with multiple sources (so a scene as the source within another scene), rather than just 1 single specific source?
I don't think that's feasible for similar reasons as above.
Even if you could capture all the sources in a scene, the mix wouldn't necessarily be right.
It's just a level of complexity I'd rather avoid.
 
Top