View Issue Details

IDProjectCategoryView StatusLast Update
0015650MediaMonkey 5Skinning frameworkpublic2020-11-01 10:58
Reporterpeke Assigned To 
Status closedResolutionreopened 
Target Version5.0Fixed in Version5.0 
Summary0015650: Skinning: Waveform Progress Bar
DescriptionIt would be very useful and it was requested many times over the years that MediaMonkey show track Waveform. Looks interesting as it is based on Web Audio API and HTML5 Canvas that beside MM5 make it also interesting for MMS implementation.
Additional Information
TagsNo tags attached.
Fixed in build2186


related to 0015691 closedmichal Show time when hovering seekbar. 
related to 0015708 assignedrusty Ability to set Start/Stop Time from context menu 
related to 0017038 closedmichal Loud tracks with negative normalization show too thin waveform 



2019-05-07 02:12


bug15650_mockup.jpg (615,741 bytes)


2019-05-17 15:17

developer   ~0053552

Fixed in build 2176. Implemented for all our skins as alternate seekbar, can be selected in player Customization menu. Generated only on play request, cached for library files.


2019-05-17 22:49

developer   ~0053557

Verified 2176

Waveform is available on Player Right click -> Customization -> Seekbar

WaveForm generation for full track of average track length around 4min is under 2s of playback start.

Please triage rest of suggestions or create new bugs.


2019-05-20 08:40

administrator   ~0053572

Generally speaking works pretty well, few observations though:
a. Waveform seems to be very dense sometimes -- mostly when the window is narrow and track loud => it's almost 100% filled rectangle then. Can we adjust the drawing algorithm, probably so that every pixel don't show maximum, but rather average of what happens there?
b. The configuration is a bit hidden imho. I'd consider:
 b1. Does it make sense to show it in the main 'View' menu?
 b2. I think that we can make it enabled for new MM5 installations? So that users know about it and only disable it if unwanted.
 b3. Options\Layout could have 'Configure' icon next to the Player item, which would show the Player customization pop-up menu?

Michal, can you please note unfinished parts of this issue to another (new) one? I suppose that we'll defer them to MM ~5.1.


2019-05-20 10:49

developer   ~0053576

Last edited: 2019-05-20 10:51

View 3 revisions

a) average could be added as overlay with different color tone (at the cost of slightly higher CPU load), but it mostly does not look so good standalone, because it removes the peaks and the curve is less dynamic then. Based on IM chat, we leave this as it is now and maybe try to adjust it in the future (maybe similar analysis as replay gain?).

b1) I think not needed there, we try to implement it using b3

b2) default changed to waveform bar for beta testing in build 2177. But for release I would prefer original seekabar as default, it is less CPU consuming and probably most users does not need waveforms.

Because 5) is probably not needed at all, I think there is nothing left for implementation now.

Assigning to Petr for implementing b3 and then resolve.


2019-05-20 17:12

developer   ~0053578



2019-05-23 21:17

developer   ~0053613

Last edited: 2019-05-23 21:45

View 3 revisions

Mostly Verified 2177

6. Tooltip do not show Time post on mouse event. It just show "waveform bar"

re a): I would rather Show Leveled (Original+Gain) Wave Form instead of original (eg. It will show user output level which will visually tell when there is a chance of clipping). Average is not important as it will look bad on classical orchestral tracks that are by nature lower and secon benefit it will show users level of non Calculated Level.

7. Wonder if Waveform Bar is enabled that Gain Index is calculated automatically?

8. Context Menu: missing Track Properties

9. Context Menu: It would be good if we can add two more options to Waveform bar eg. Set Start/Stop Time as user can visually pinpoint position with mouse.


2019-05-24 07:22

developer   ~0053625

6) is not bug, this feature is missing in MM5 generally, tracked as 0015691

7) gain/level is not calculated/used for waveform now, we display raw data. It is slightly faster and the difference is mostly hardly noticeable. Not sure, is this really needed?

8) reproduced, not related to waveform issue, tracked as 0015692

9) could you insert separate issue and better specify this? It is new feature. You can assign it to me then.


2019-06-01 01:49

developer   ~0053703

7) Calculating Gain for tracks that do not have gain value after Waveform seekbar is shown should improve Playback Leveling (Especially as Leveling enabled is default option), but it will be added to library only not to tag.

9) added in 0015708

Regarding a) from my point at 0015650:0053613 and Jiri 0015650:0053572 if Waveform is shown with appended Gain Index user can clearly visually see if Track will Clip or not. Or track level is low (Common for Classical pieces) especially if no Gain index exist, it will look better and will add more functions to Waveform Seek bar instead of just UI cosmetic.


2019-06-02 22:47

developer   ~0053705

Last edited: 2019-06-02 22:59

View 2 revisions

Sample files regarding a) and using RAW+GAIN in Waveform rendering are uploaded to FTP. Only issue like Jiri pointed I see on Tracks that are Hammered (eg Compressed + Limited to 0db) in order to have louder sound by killing dynamics.


2019-07-02 16:29

developer   ~0054071

Applying normalization to waveform fixed in build 2186.


2019-07-10 21:31

developer   ~0054119

Last edited: 2019-07-10 21:32

View 2 revisions

Verified 2186

Now this is better, as now even quieter songs are shown correctly.