Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Waveform Minibar (mod) (Read 49305 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: Waveform Minibar (mod)

Reply #300
Thanks for continually updating this amazing component Case. Half wave mode looks great to me. I'm no coder or EE, but I heard that when things like compressors want to derive the average signal to apply gain reduction to, etc., they use something called 'half wave rectification' which I think looks similar to this 'half wave' display style. Not sure if it's pertinent to the current discussion, but just thought I'd mention it in case it might be helpful. Keep up the great work!

Re: Waveform Minibar (mod)

Reply #301
@Case:

I tested the test version. There seems to be something wrong with the algorithm. See attached images and their filenames (long one: "better than showing silence, but why only RMS.png"). In my understanding, the half-wave peaks should be the result of pseudocode max(pos_px_col_peak, abs(neg_px_col_peak)). Regarding RMS: Audacity seems to ignore (and not assume as zero) sample values with different sign than the waveform half that the RMS value is calculated for. It also doesn't use the same value above and below the zero line. I guess that's how you do it also, since RMS is about the surface of the waves in the respective waveform halves. (Also, RMS needs to be restricted by the peaks.) If negative sample values are treated as positive, I wonder if it's because of this that the surface increases and the RMS value is unexpectedly large. So maybe the half-wave RMS value, derived from abs(sample) values, should be divided by 2 as a conceptual average, or, alternatively, calculate RMS as before for lower and upper half and build the average of that. Or is there a more direct mathematical way to not calculate an average of an average?

The short audio files you attached of course look strange with their bouncy shape. But showing silence half of the time would also be a bit off toward the signal reality. It's a simplification after all and, most importantly, these very short files aren't real-world data the component was made for.

BTW: Here's an article about waveform asymmetry. Apparently, some instruments are especially prone to it.

Re: Waveform Minibar (mod)

Reply #302
The first alternative mode from the previous post was a bit of a hybrid. It only converted negative samples positive if there was nothing on the top half of the waveform to show.
Here's another variant that always shows the larger peak of the two: <edit: obsolete version removed>.
I'm trying to use the existing render function as much as possible and only do minimal amount of variable toggling, that caused the RMS logic bug shown in your screenshot. At least things look better now with the sample you provided.
Note that RMS and all other data is pre-calculated, this is just manipulating rendering. And yes, rendering RMS is restricted between the waveform shape.

Re: Waveform Minibar (mod)

Reply #303
That looks good -- peak and RMS, as far as I can tell! If you want to investigate: Your "sine.flac" unexpectedly looks different than before. There's the bouncy shape, but with some peak color decor on top of the RMS color and less free space below the shape in some places. But it's not a concern for me.

Re: Waveform Minibar (mod)

Reply #304
wow, great to see this plugin still being so actively worked on!

so, pardon me, but i wanna seize the occassion, and suggest a (relatively) small feature:
per-instance config, just for the things available from the context menu (ie: playing/selected track displayed, etc), with one minor addition: the option to disable seeking and/or clicking, and just use it as a waveform display.
being a (nowadays mostly) hobby-dj, i find the display immensely useful when selecting tracks and comparing possible duplicates while organizing my music library - however now i have to switch between the currently playing track, and the playlist selected one....
so it would be nice to be able two of these in a setup, with diiferent behavior, one for the playing track, and one for the playlist selection.

Thank you!

(ive tried the other waveform panels, but the original dx shader one seems laggy, and I could not get an exact shader (albeit got very close), and pondered modding the old non-mod version of this plugin, but tnen i would miss all the fixes and optimizations optimizations made to it since...)
A∴A∴ ⭙ Ad astra per abditer nostra.

Re: Waveform Minibar (mod)

Reply #305
Ooooooooo....liking the half wave mode. Keep up the great work!

Re: Waveform Minibar (mod)

Reply #306
Hello, everyone  :)

Unfortunately, I didn't have time to look back earlier, but as I can see, wonderful programming art was done here.
I'm blown away, exactly what I wanted and in record time thanks to your commitment.
It's nice that others also share my opinion and find this display mode quite good.
This plugin may be getting old, but it's still the best for Foobar, and it's nice to see that it still has so many users.

I'm looking forward to the official new release.
I've currently updated from to the release of Case.

Many thanks
SevenSenses

Re: Waveform Minibar (mod)

Reply #307
so, pardon me, but i wanna seize the occassion, and suggest a (relatively) small feature:
per-instance config, just for the things available from the context menu (ie: playing/selected track displayed, etc), with one minor addition: the option to disable seeking and/or clicking, and just use it as a waveform display.
Unfortunately I have not taken this kind of use into account and the entire thing is based on globally tracking which tracks to follow and render. I'd have to do a lot of redesigning to support this.

But I may be able to fulfil your request other way. Here's an experimental Waveform Minibar (viewmod) version that you can install on the side. It's a view-only version of the component with its own configuration but it still uses the same waveform database.

Re: Waveform Minibar (mod)

Reply #308
Unfortunately I have not taken this kind of use into account and the entire thing is based on globally tracking which tracks to follow and render. I'd have to do a lot of redesigning to support this.

But I may be able to fulfil your request other way. Here's an experimental Waveform Minibar (viewmod) version that you can install on the side. It's a view-only version of the component with its own configuration but it still uses the same waveform database.

ah somehow i missed this, checking it out now thanks!

edit:
works like a charm, seriously thank you good sir! 8)

quick screenshot:
A∴A∴ ⭙ Ad astra per abditer nostra.

Re: Waveform Minibar (mod)

Reply #309
Hello together

Your plugin is already in full use :-) Thank you



Re: Waveform Minibar (mod)

Reply #310
@Case: I have set "Track to prefer when showing waveform" set to "Playing, selected when stopped". It would be great if you'd still be able to view other waveforms while playing a track, e.g., to compare another track with the playing one to judge whether they're duplicates, or just general interest. Since Alt+click and Alt+arrow keys don't seem to have special meaning (as opposed to Ctrl or Shift), this could be used to switch over to the waveform of the selected track. I think it would be ideal if the other waveform would be displayed again as soon as Alt is released. Ideally, Alt-clicking the already selected track would again show its waveform.

Re: Waveform Minibar (mod)

Reply #311
Hi Case :)

Some parts are not displayed in settings dialogs.
"Use half wave mode" cannot be checked on Linux (Ubuntu Cinnamon).

Ubuntu Cinnamon 21.04 + Wine 7.5 (Development)
foobar2000 v1.6.10
Waveform Minibar (mod) 1.0.46
https://hydrogenaud.io/index.php?PHPSESSID=v9tce2geuc644cghdbl056o562&topic=116045.msg1008942#msg1008942


Thanks.




SHURE SRH1840, SENNHEISER HD660S, Beyerdynamic DT 1990 PRO, HIFIMAN HE5se, Ultrasone Performance 880, AKG K712 PRO, Bowers & Wilkins P7, SONY MDR-1AM2, Bose QuietComfort 45, SONY WH-1000XM3 (made a Upgrade/Balanced Cable by myself)

Re: Waveform Minibar (mod)

Reply #312
Your Wine is configured to use custom fonts with different sizes instead of normal Windows fonts. Dialog sizes are computed from fonts. Here's a test version that uses the old default dialog font and should solve your issue: <edit: obsolete version removed>.
This is newer alternative from alt2 test mode linked earlier. Includes half-wave mode in right click context menu.

Re: Waveform Minibar (mod)

Reply #313
Thanks Case.
> Dialog sizes are computed from fonts.
Yes, But this component only.

> This is newer alternative from alt2 test mode linked earlier.
OK. The problem has been solved.
Many Thanks.
SHURE SRH1840, SENNHEISER HD660S, Beyerdynamic DT 1990 PRO, HIFIMAN HE5se, Ultrasone Performance 880, AKG K712 PRO, Bowers & Wilkins P7, SONY MDR-1AM2, Bose QuietComfort 45, SONY WH-1000XM3 (made a Upgrade/Balanced Cable by myself)

Re: Waveform Minibar (mod)

Reply #314
@Case: After running the context menu's "Utilities > Regenerate minibar waveform" of a playlist item, the component isn't updated. You have to select another item and then the updated item again.

Also, when I use MP3Gain to achieve clipping (confirmed by audio editor), the component still displays free space up to it's outermost edges.

Re: Waveform Minibar (mod)

Reply #315
The component is likely normalizing the peaks as it scans, in that case. foobar2000 does not clip lossy audio formats, it will decode them to whatever incredibly high peak level the codec decodes to, since it decodes most of them in floating or fixed point, depending on the decoder.

Re: Waveform Minibar (mod)

Reply #316
The component has an option to normalize the waveform, but that isn't used by default. The track is split into 4096 slices and each slice is scanned for smallest and highest sample values. This data gets resized to the UI element's size further limiting the visibility of single peaks.
I released version 1.0.47 with all the changes from the test versions along with a tweak to force regenerated waveform to become instantly visible.

Re: Waveform Minibar (mod)

Reply #317
Hello Case!
Thanks for your component. It is very useful.
But I got a problem when I installed the new version 1.0.47 of mod: CPU load 29-99%.
You can reproduce the situation, for example, by adding location: tone://1500 and trying to play it.
P.S. Mod settings: "track to prefer when showing waveform->Selected track"
     foobar v.1.5.9

Re: Waveform Minibar (mod)

Reply #318
Thank you. Fixed version uploaded.


Re: Waveform Minibar (mod)

Reply #320
Thanks for letting me know. I don't understand why the contents got scaled disproportionally. But it's fixed now with slight style adjustment to the dialog resource file.

Re: Waveform Minibar (mod)

Reply #321
Confirmed. Thank you.

Re: Waveform Minibar (mod)

Reply #322
Hello Case,
please enable automatic switch between dark and light mode of Waveform Minibar (mod) in CUI.

Re: Waveform Minibar (mod)

Reply #323
It should already work if you don't use custom colors. Does it not work for you?

Re: Waveform Minibar (mod)

Reply #324
It works, I used custom colors. But now the contrast in Dark mode is too low