mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.53k stars 1.28k forks source link

discretely valued effect parameter knobs #8756

Open mixxxbot opened 2 years ago

mixxxbot commented 2 years ago

Reported by: Be-ing Date: 2017-01-13T08:19:29Z Status: Confirmed Importance: Wishlist Launchpad Issue: lp1656225


It would be helpful to create a new type of effect parameter for adjusting discrete values. The first use case that comes to mind is selecting a number of beats for tempo synced effects (refer to Bug #9763). Because many controllers would control these parameters with continuous potentiometer knobs, it would be helpful to map the range of discrete values to the range of a continuous knob. Instead of a knob showing in the skins, only the exact value would be shown. If the value is less than 1, it should probably be shown as a fraction (for example, 1/8 beat) rather than a number with a decimal point.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2017-01-13T09:26:55Z


I do not like the idea to have an extra parameter type apart from buttons and knobs. Since such a parameter is controlled by a knob, it should be one of the knob nature.

The prepared solution for it is CONTROL_KNOB_STEPPING: https://github.com/mixxxdj/mixxx/blob/7e81c3014e0d92c57d685db9dd0d1d9394f783cc/src/effects/effectmanifestparameter.h#L14

This ControlHint, allows to make labeled scale on the knob or a value display as requested here.

We have only not managed to make a widget for it.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2017-01-19T02:21:32Z


I'll join in to push this idea! IMO especially the Echo effect is only usable for 'random delay' effect ATM. It's very hard to somehow adjust Echo delay on Pfl first (for a running track) then apply it to Channel and mix it in. Matching the BPM is pure chance...or hard work/time.

I imagine that it's kind of hard to implement: first press Echo's 'Sync' button then adjust a stepped Potmeter to set the delay to 1, 1/2, 1/4 of a beat. When a new track is loaded, I'd expect both to reset to some default value, like 1/2 or 1 beat of track's BPM, or better: the stepped Potmeter's last value.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2017-01-19T02:27:06Z


Btw: Isn't that the way way some of those fancy (Pioneer?) mixers handle it?

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2017-01-19T09:22:23Z


Yes, such a effect sync feature would be great. This is tracked here: #8312 Would you mind to add you comment there as well, or file a new bug, if it is do-able independently.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2017-01-20T16:00:05Z


Done. Must have mixed those two up.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2020-03-05T19:44:45Z


some thoughts on the widget implementation:

1 traditional knob with free pointer position

2 new knob widget that snaps to notches

For both versions, both notches and arc segments could accept clicks for easy adjustment.

ronso0 commented 2 years ago

With #11041 I saw LV2 parameter knobs where the displayed value would always snap to integers (range was something like 1-8 IIRC), though I don't remember which effect in particular I tested.

Though I can't find any related implementation of ValueScaler::Integral Or is my memory just wrong?

ronso0 commented 2 years ago

A first step is #11061 which makes knobs with ValueScaler::Integral snap to integers.