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

Gradual Volume Reduction Feature #13754

Open
ckmrt opened this issue Oct 11, 2024 · 3 comments
Open

Gradual Volume Reduction Feature #13754

ckmrt opened this issue Oct 11, 2024 · 3 comments

Comments

@ckmrt
Copy link

ckmrt commented Oct 11, 2024

Feature Description

Add Gradual Volume Reduction Button for Non-MIDI Users

This PR introduces a button in Mixxx that allows users to gradually reduce the volume of the currently playing track. This feature is designed for users without MIDI controllers, such as DJs at events like Milonga, where smooth transitions are essential.

Motivation:

As a Tango DJ, I need smooth volume transitions between music sets. Manually handling volume can be disruptive. This feature provides an easy way to reduce volume gradually with a button click, improving the event's flow.

Implementation:

UI/UX: Adds a new button near the volume control.
Functionality: Gradually decreases volume in steps until it reaches a minimum level.

@ckmrt ckmrt added the feature label Oct 11, 2024
@ronso0
Copy link
Member

ronso0 commented Oct 11, 2024

Thanks for this feature requests, it already came up a few times IIRC.

Should apply to volume increase, too, I'd say.
This behavior could be applied to all ControlpotMeter controls IMO, ie. all knobs and sliders: crossfader, picth, EQs, effect mix knobs (wet/dry) etc.

  • fade_to_1
  • fade_to_center
  • fade_to_0

@daschuer
Copy link
Member

I can confirm the feature request and also the proposed solution. However let's look at the requirements to do it "right". I can remember a similar request around Auto DJ and curtina tracks.

@ckmrt can you describe your desired transition with more details, timing and involve tracks with artist an title?

The proposed CO interface is useful for pad only controllers and wizard map-able. I am just puzzled how to determine the fade speed and how to abort a started fade process.

Do we have experience with js mapping based solutions yet?

We may also consider to model the requirements as a tango Auto DJ mode as alternative or in addition.

@ronso0
Copy link
Member

ronso0 commented Oct 12, 2024

I am just puzzled how to determine the fade speed and how to abort a started fade process.

I thought we use a default fade speed (set in preferences) so these basic controls can be mapped to keyboard, skin buttons and controllers.

In my mind, the 'fade' controls would only set a flag and each EngineControl::process() would do the fading.
It can be aborted by setting the fade control 0, so when fade controls are toggle buttons, another button press would stop the fade.
Additionally, every manipulation of the underlying control (eg. volume) would abort the fade, too.
That could be clicking the respective slider or knob.

Of course we could provide UI feedback with frames or (responsive) overlays, like we do with the crossfader frame when AutoDJ is active.

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

No branches or pull requests

3 participants