snestracker icon indicating copy to clipboard operation
snestracker copied to clipboard

More intuitive ADSR Envelope GUI

Open bazz1tv opened this issue 4 years ago • 0 comments

The Problem

The current ADSR envelope view is only adjustable by selecting the hardware presets from dropdown boxes. Make this more intuitive.

ADSR Adjustable Graph Points

Although I am electing not to go this way, here are thoughts on how that could be implemented. Adjustable Graph points is something that will need to be eventually implemented for other envelopes, such as Voice Volume, Pan, Noise...

Make the graph itself adjustable. Each point of the envelope would have a semi-large circle that the user can click on to adjust the envelope.

In order to give users a smooth feel of the UI, do not lock the position to the hardware presets, but allow free movement (aside from necessary limits), and then just map their position to the closest hardware value available. I just am not a fan of such loosely coupled control (which is why this is the "almost" solution). Or maybe I just think it would be harder to get this feeling right, easily. That is, if I were to code it.

The Actual Solution

Let's implement UI like a traditional Synthesizer - KNOBS! This grants the best of both worlds. It makes it smoother and faster to adjust the parameters, and it's easy to stay "locked in" with the available hardware presets in a clear and simple manner. So we'll have 4 knobs and you click and drag to cycle across the preset values. I also think knobs contribute to the overall musician's feel of music software.

As you turn the knob, the graph responds accordingly, and a text of the parameter value should float above your cursor as you have the mouse button down.

Since the decay cannot be adjusted when the sustain level is maxed out, grey out and disable that control during such a condition.

Of course, there is currently no Knob class, so that will have to be created. and a special sub-class PresetKnob or something that accepts a list of preset values for the knob.

bazz1tv avatar Jun 10 '20 08:06 bazz1tv