Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mixer peak indicators. #1271

Closed
mikobuntu opened this issue Nov 7, 2014 · 26 comments · Fixed by #7295
Closed

Mixer peak indicators. #1271

mikobuntu opened this issue Nov 7, 2014 · 26 comments · Fixed by #7295

Comments

@mikobuntu
Copy link
Contributor

screenshot from 2014-11-07 07 47 18

Mockup of how this could look on the Fx mixer....

To improve the mixing functionality, useful for for both song construction and final mixdown we should implement a GUI element which will indicate the highest peak of every cahnnel.

this will work in the following way.....

(1) Optional switch for on/off in the config settings
(1a) Optional switch on the GUI element itself ( code can be taken from the master waveview on the main toolbar )

(2) The indicator will hold and display the highest peak reached by its channel until a higher value is received on that channel.

(3) Left click will reset the indicator to wait until it receives another highest db reading. This is the main benefit of having this functionality as we can see that we are above our threshold or too high in a separate channel, which is forcing the total of all channels to cause Master fx channel to rise above 0bd ( aka clipping ).
So we can now lower the volume slider in an FX channel and see what the new db value is easily.

(4) If the peak indicators value is >= 0.0db it will be highlighted ( red in my example.)

This behaviour is consistent with Ardour and Hydrogen drum machine


note that i have done a keyword search in our git repo and cannot find this as a feature request, so if it is a replica i will merge this comment into it thanks MIkobuntu


@softrabbit
Copy link
Member

We already have those temporary peak lines in the level meters, maybe adding a permanent line there would be better? That way it would be easier to relate the level to what's going on at the moment, and it would be in stereo, too. Double lines might of course be a bit confusing, in that case some other representation could be explored.

@diizy
Copy link
Contributor

diizy commented Nov 7, 2014

On 11/07/2014 12:07 PM, Raine M. Ekman wrote:

We already have those temporary peak lines in the level meters, maybe
adding a permanent line there would be better? That way it would be
easier to relate the level to what's going on at the moment, and it
would be in stereo, too. Double lines might of course be a bit
confusing, in that case some other representation could be explored.

I think the most pressing need is to convert the peak meters as well as
the faders to dBV scale instead of linear.

Then we could add small lines to the graphics every 10 dBV so it'd be
easier to judge the levels...

This is getting more to LMMS 2.0 stuff again, but I'm planning a
redesign of all volume knobs and widgets. Get rid of the silly "show
volume in dBV" settings option and instead just always show all values
in both linear amp and dBV. The knob/fader movement should just always
be in dBV scale.

@musikBear
Copy link

Miko - it looks super 👍 -but this would make the 'name-space' (nto..:) even smaller. It has already limited space for channel-names
-Perhaps the 'jumping stick' in each meter could be 'sticky', so that it always would 'hang' in the most extreme reached pos? (or add one extra, for that purpose, that way a 'jagged' line would be drawn on the meters, and i then a mouse-over could show a read-out: val : bar,beat,tick - Well im just BS'ing :)

@tresf
Copy link
Member

tresf commented Nov 7, 2014

Then we could add small lines to the graphics every 10 dBV so it'd be easier to judge the levels...

👍 We really are running out of vertical realestate, so I'd be a big fan of fitting this stuff in the space we already have.

Nice mockup though! :)

@mikobuntu
Copy link
Contributor Author

Lots of good points made here guys. The main thing is the functionality i guess.

Some thoughts :- we could raise the vertical height of the mixer strips, this would allow something like my GUI element ( which acts sort of like a warning call, that is easily noticed by users, especially new users ) [ YouTube tho great for LMMS, you would almost think that LMMS purposely used gain on all channels, i think noobs seem to think that driving the maximum amplitude of audio is a good thing :P ]

.... anyway, This would also help with @musikBear & @tresf point about needing some more real estate for labelling tracks. As @diizy stated about using lines to mark every 10db has a +1 from me too ;)

... the floating line in the mixer is also a great idea, maybe having an extra line that stays there would work, i think the delay for fallback time can easily be increased in the code too iirc.

note: the GUI element in my mockup doesn't have to take up much space, i was actually thinking about maybe using a smaller image, where if no peak is detected it remains green and the offending channel will go red where a mouse hover will show our reading as a tooltip ???? i can do a mockup if required ;)

possibly even better idea:- The slider knob will indicate a maxed out peak, by changing colour (red :) until it is lowered to <0.00db this way no space is taken up!

@tresf
Copy link
Member

tresf commented Nov 7, 2014

.. the floating line in the mixer is also a great idea, maybe having an extra line that stays there would work

We have a floating line. 🍺

image

-Tres

@mikobuntu
Copy link
Contributor Author

@tresf Yes i know this, I used LMMS once :P .. but yeah I maybe didn't explain myself properly before. My point was really that we can have an extra floating line that stays at whatever point the maximum of our " floating line that you pointed out above" reaches . our floating line is just a quick indicator i.e it has a falloff, but maybe if @diizy add in the "ruler" type indicator this will not be needed, I was really just brainstorming Tres .... I think i have just drank too much coffee today :) a 👊 for me and a 🍨 for @tresf

@tresf
Copy link
Member

tresf commented Nov 7, 2014

Makes me think... Perhaps we raise the bar a notch or two so we know how much we're over by... thoughts?

@Spekular
Copy link
Member

Spekular commented Nov 7, 2014

So, calculate/stay at the max volume this mixer reaches and have a bar
there? Allowing a quick overview of what mixers need attention to lower the
volume, I'm assuming.

@tresf
Copy link
Member

tresf commented Nov 7, 2014

Something like this (ugly mockup, sorry):

image

@mikobuntu
Copy link
Contributor Author

@tresf yes that could def work. The way the mixer works now is 0dbv is around/at the middle of the mixer strip, and the maximum reading is +6.02 to range of -inf (silence ) the last visible reading is -32.77db . So yeah your idea is perfect, but we would need the lines represented at the 0.00db point i think? ... @Spekular yes that was one of my thoughts. Everyone has to agree on what way to approach this as there are a few, but one of my main concerns is making it easily noticed by the user!

@mikobuntu
Copy link
Contributor Author

.... Im just realising that @tresf your idea is correct the way it stands as the slider is the gain amount not the actual reading of that channels max amplitude. Or should i say the slider knob does not sit on the 0db point that the led faders show.

@tresf
Copy link
Member

tresf commented Nov 7, 2014

Good point.. we may want the slider to stop short of that spot to avoid confusion. :)

@mikobuntu
Copy link
Contributor Author

yeah Tres, this is kind of confusing the way it works now.

@diizy
Copy link
Contributor

diizy commented Nov 8, 2014

On 11/07/2014 07:34 PM, Mikobuntu wrote:

@tresf https:/tresf yes that could def work. The way the
mixer works now is 0dbv is around/at the middle of the mixer strip

Nooo... what gave you that idea? 0dBV is near the top, right around
where the red starts.

@mikobuntu
Copy link
Contributor Author

mixer works now is 0dbv is around/at the middle of the mixer strip

"Nooo... what gave you that idea? 0dBV is near the top, right around
where the red starts."!
Yes If you read more you will notice that I realised this "eventually". I was just having a fubar moment ;)

thanks Mikobuntu ;)

@tresf https:/tresf yes that could def work. The way the


Reply to this email directly or view it on GitHub.

                  =

@musikBear
Copy link

musikBear commented Nov 8, 2014

one thought -Could 'captions' be used for user-info -like (-here mouse-over channel 2)
fxmixer-preset-area

I have used this quite often, also for dynamic debug info, like fps
I just thought that caption-space, could perhaps be used for more than just form-names, and have a dynamic concat info ?

@badosu
Copy link
Contributor

badosu commented Dec 24, 2014

Hello, relating to the first comment on this issue and the feature request. Is this in any way already a WIP?

@Sti2nd
Copy link
Contributor

Sti2nd commented Dec 25, 2014

No one have reported working on this, the pictures were just mockups of how it could look.

@RebeccaDeField
Copy link
Contributor

@mikobuntu Has this issue been fixed by #3056 ?

@musikBear
Copy link

@RebeccaDeField imo no. @mikobuntu idea was a real readout of the value. I love that idea, but it clashed with the area available.
I still think that miko's idea is so sexy, that it really deserve a 2. consideration.
The sc. 'realestate' area is imho quite an eye-sore, and on top of that, its function is also suboptimal. I feel we could exploit the caption-bar better, and then make a 6 char rule for the 'realestate' area. This rule should ensure that only 6 letters of a preset name was displayed in the mixer, but when a channel was highlighted, the whole preset-name would be shown in the caption (just as my mockup-picture above ( #1271 (comment) ). It is also difficult read whole vertical names, so a display of the name in proper writing in fi. caption-bar, is in need. And that would leave room in the 'realestate' area for not only miko's sexy meeter, but even more functions.

( Current 'tooltip' is not too good. Often this happens
fxmix_dodgyhint
I have NO idea why. Since its not reproducible, i cant file a ticket

OBS! Names on the channels are extremely important, im not saying they arent! but 6 ..or 8? chars would be sufficient for identifying the channel, and the whole name would then appear at mouse-over in caption-bar, or similar, fi. there are a lot of space for a general purpose info-area in Main to the right of the CPU-meter

@Rossmaxx
Copy link
Contributor

Rossmaxx commented May 9, 2024

Done via #7045

@tresf tresf closed this as completed May 9, 2024
@DomClark
Copy link
Member

Done via #7045

It doesn't look like it to me - that PR improved the existing features, but didn't add this one.

@DomClark DomClark reopened this May 19, 2024
@michaelgregorius
Copy link
Contributor

michaelgregorius commented May 20, 2024

I have a first implementation of peak indicators which adds the new class PeakIndicator. It inherits from QLabel and has a slot to set/update the current peak value if it represents a new peak. It connects to a new signal of the Fader class. Here's the current implementation in action:

Screencast_20240520_203622.webm

Peak indicator reset

For some strange reasons resetting the value via click does not work because the click event does not reach the peak indicator widget although I have overridden mousePressEvent. Does anybody have an idea what might be causing this? Some event filters somewhere or something similar? Forget what I wrote before. For some reasons it is now working. 😅 Perhaps some miscompilation due to changes with regards to signals/slots? 🤔

Resetting the indicators when a new project is loaded also would have to be implemented due to the fact that the mixer strips are reused and keep their old state.

Warning colors

Also no warning colors of any kind are implemented. Don't know if that is wanted in the first place?

Noisy Lb302

What's interesting is that in the video the master channel already starts at "-147 dbFS" instead of "-inf dbFS" because the Lb302 instance directly seems to inject a weak signal. Test file is "Greippi - Krem Kaakkuja (Second Flight Remix).mmpz".

@Veratil
Copy link
Contributor

Veratil commented May 20, 2024

Also no warning colors of any kind are implemented. Don't know if that is wanted in the first place?

I think setting it to the color that the channel gets to would be neat, or at least be theme-able.

@michaelgregorius michaelgregorius linked a pull request May 30, 2024 that will close this issue
@michaelgregorius
Copy link
Contributor

Pull request #7295 adds peak indicators. They do not light up in warning colors if a threshold is crossed but already add some nice value.

I guess warning colors would need something more than just inheriting from QLabel so that the background colors can be set accordingly. So that's something for later or someone else.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.