zynaddsubfx / zyn-fusion-issues

Issue Only Repo
31 stars 0 forks source link

Group ADDsynth tabs to separate global settings from per-voice settings #359

Open dancesWithBugs opened 2 years ago

dancesWithBugs commented 2 years ago

Related: #259

The ADDsynth tab bar currently looks like this:

Selection_051

I'm no good with image manipulation, so here's a quick ASCII representation:

[on/off] [-] [VCE1] [+] [global] [voice] [oscillator] [mod-osc] [modulation] [voice list] [resonance]

Without prior knowledge of the synth it would seem logical to conclude that the on/off switch enables/disables the settings of all tabs that follow, especially seeing how the button is slightly bigger than the tabs themselves. Yet the tabs that follow are a mix of global and per-voice settings, and it is unclear, for beginners in particular, to know which is which.

Here's a quick example of a tab grouping that I would consider an improvement:

global: [settings] [voice list] [resonance] - voice: [-] 1 [+] [on/off] [settings] [oscillator] [mod-osc] [modulation]

The voice-related tabs could be greyed out until the on/off switch is activated.

fundamental commented 2 years ago

Sounds like a reasonable improvement over the status quo.

zynmuse commented 2 years ago

I suggest a few changes to the original suggestion ( which generally makes sense):

[global] [voice list] [-] VCE 1 [+] [on/off] [voice] [oscillator] [mod-osc] [modulation] [resonance]

  1. Resonance is enabled per voice so can stay last position.
  2. Voice selection (1-8) needs to come before on/off - which applies to the voice - eg. you may enable voices 3,4 and 7 but disable voice 1!

When the selected voice is OFF then greying out or removing the tags to the right of the On/Off button might make sense, then again somebody will ask why they can't change a parameter before enabling a voice!.

I would suggest however that even if a voice is disabled all its parameters remain unchanged. Voices can be enabled and disabled on the fly!

dancesWithBugs commented 2 years ago

@zynmuse, thanks for your suggestions for improving my proposed UI change. I have a couple of thoughts in response.

  1. Resonance is enabled per voice so can stay last position.

How do you enable resonance for one voice and disable it for another? I don't know about the internals of the engine, but any changes I make in the resonance tab, including enabling/disabling resonance altogether, remain constant while switching voices, indicating a global effect.

  1. Voice selection (1-8) needs to come before on/off - which applies to the voice - eg. you may enable voices 3,4 and 7 but disable voice 1!

I agree, but I don't see how that would be a change to my original suggestion because I ordered voice selection and on/off the same way you are.

When the selected voice is OFF then greying out or removing the tags to the right of the On/Off button might make sense, then again somebody will ask why they can't change a parameter before enabling a voice!.

I meant a purely visual change without disabling functionality, so that editing of disabled voices remains possible by clicking on a greyed out tab, but at the same time it is obvious that any changes will only be heard once the voice is enabled. I would assume someone who wishes to edit the parameters of an inactive voice would at least try clicking on a greyed out tab before asking why it doesn't work.

I would suggest however that even if a voice is disabled all its parameters remain unchanged. Voices can be enabled and disabled on the fly!

I did not mean to imply resetting parameters on disabling or re-enabling voices. Again, the changes I am proposing here are purely visual. The idea is to make more apparent which tabs affect the sound globally, and which pertain to the selected voice.