Hi folks (and in particular Ale),
This is a LONG first post - Apologies in advance
Found Yaeltex via a circuitous route that began discussion controller ergonomics and a peer working on creating a controller that has OLED screens. There was some discussion about Big Small screens, orientation etc.
Ergonomics are key.
Anyway, without going too much into some of my relevant music background (Hint Soundcloud) Pland_uk, i’ve been taking computers on stage to perform since well before Y2K.
So based on that discussion (which neatly drops into the discussion here) I mapped out a scale diagram of what such a thing might look like to give folks some ideas and get folks inspired over there.
Then I found Yaeltex and realized there’s not only a large amount of overlap in design philosophy (Modular units arranged to make a whole) but some of the concepts below might help make this a reality for the community.
So this is what I put together in a couple of hours to get some basic ideas across - There’s more around how the screens interact with controls for a fluid work flow. This is just a quick outline.
Obviously this is a “Fixed configuration” controller, but using modular ideas. Basically same as Yaeltex.
The diagram is drawn in Visio, and is to scale. Rack is 19" across, and the main section is 17.5" across.
I used the JP-8080 rack configuration as a baseline so we all have a common frame of reference on size.
The pitch (Horizontal spacing) between the vertical strips is the same as found on my Novation Remote Zero.
The buttons are the same size (10mm x 5mm), the potentiometer/encoder caps are 8mm in diameter - also same as the Remote Zero.
The faders are 80mm long (Picked just for aesthetics and to “Make them fit”).
This is all much more dense than the current Yaeltex modules, but the concepts apply no matter what pitches and size panels are in use.
As drawn, the buttons mimic the style of the JP-8080 but with a bi colored led.
Now I’ve seen the Yaeltex RGB buttons that’s the first revision I’d make.
RGB buttons are definitely the way to go.
Now to the fun stuff.
LOWER LEFT 8 “Strips” containing 24 pots
As drawn using pots, but continuous rotaries would be better (With or without an illuminated “Ring”) .
The modules behind this section of the controller would have 3 buttons and 3 encoders WITHOUT collars. Reasons
Obviously folks will want a 4 pot * button combo module too - This type of “Hybrid” module would be a great addition to the current Yaeltex range - Something with 4 narrow pitch buttons and 4 narrow pitch pots on a module in the same form factor as the 8 small button module would rock.
Of course such a hybrid module (Two types of input on one board) counts as 2 modules, but it’s certainly more physically robust to install high density stuff that way and it opens up options for “Odd numbered” layouts such as 3 high density rows of buttons and one row of high density pots.
Moving onto the screens - in the diagram, ABOVE each POT/ENCODER is a MONOCHROMATIC 0.71" 48x64 dot OLED mounted in portrait (Vertical).
Can link to the data sheet of the part I used for sizing, but that feels like it wouldn’t be kosher here (And I’m in no way affiliated with any particular vendor here)
Anyway, 64 x 48 dots lets you get a good 7-8 characters horizontally. Not great… Not Big,
Mounting the “per pot” OLEDs in PORTRAIT mode allows the front panel to have a higher density pitch between columns / strips of input encoders & buttons
Also, thanks to portrait/vertical orientation you can easily fit 2 rows of text (16 Chars) for the name and still have a substantial area to display parameter values, status, or dynamic information without wasting horizontal space.
Using a wider pitch between columns would allow a bigger screen, but again, VERTICALLY mount the larger screens to enable more information to be clearly conveyed in the width of one encoder…
If you zoom in you can see some examples of text /graphics using this style.
Using a BI or even TRI color OLED panel per pot enables improved ergonomics and more intuitive “Situational awarenss” while the user is “In the flow”, but a Monochrome display per encoder is a huge leap forwards compared to what’s generally available now.
CUTE FEATURE - If you use a rotary encoder it would be trivial to have the screen change to show the CURRENT value update in mealtime and also show the ORIGINAL value and which way to rotate to get to it (In the snapshot / scene). Screens SHOULD be dynamic in nature - they’re not fixed “Silk screened” text!)
If Pots are used, have the screen show the name and the current value and a < > showing which way to turn to have the pot to match the stored value. Then display | when the pot position and the stored value match.
If a “Tune” button is pressed before the pot is turned, the parameter doesn’t change value until it matches the stored value (Enabling smooth change between stored parameter and the dynamic value generated by the pot). Also enables scene changes to be easily non disruptive and values to be aligned prior to actually needing them.
So while the screens in this mock up are monochrome, and admittedly small in this implementation- they are inexpensive per display and that means practically every encoder/pot can have one above it without needing google money to build it.
Summary - The main takeaways from the lower left section are are:
- Mount Channel strip screens in portrait,
- Use multiple lines for names
- Display a simple graphic for position / catchup guidance (If needed)
- Change the display to show the current value when the value is actually changing (Saves real estate on the panel)
- If you have an encoder assigned to something like tempo, having the screen update in time with MIDI clock is a nifty/useful feature (See example in diagram)
Ok, Next up - 12 encoders & buttons around a central screen
While lower left section has 24 buttons and encoders, each of the upper two “Boxes” has 12 buttons and 12 encoders arranges around a 5.5" diagonal screen (I sized a 256 x 64 OLED here as an example)
The particular screens I drew come in monochrome, but Bi color and tri color displays can be sourced at reasonable cost.
If we want to get silly cost wise, there are multi touch capable displays with 1920x1080 full color resolution (Though HDMI Input makes them rather different to handle). This are a little bigger but really open the door to creative solutions and integrations.
Could be fun, but out of scope for now.
So, ignoring the buttons to the left and right of each TOP “box” for now,
A 5’5" screen in the middle of a “Cluster” of Pots and buttons permits the screen to be shared between 6 horizontal channels, each with two continuous parameters and 2 / 4 binary options (2 buttons & 2 pots, or 2 buttons + 2 continuous encoders with momentary push button if pressed).
All with proven ergonomic spacing.
A screen + encoders & buttons could be deployed as a single module, or with the screen as one module and 2 input modules either side (1 top and 1 bottom).
These 2 Row, 6 column input modules would be the same as those used in the LOWER LEFT section of this model.
For these input modules, orientation is “free”. This enables choice of buttons closer to the screen than knobs, or knobs closer to the screen than buttons, or arrange the whole thing vertically Vs horizontally.
As drawn wouldn’t look right, but with RGB buttons and continuous encoders… No problem!
The 5.5" 256x64 dot screen has just enough room to show two lines of 5-6 characters per pot/button pair.
Not great given the cost… BUT, using “Dynamic change” on the display significantly improves user experience.
Dynamic change means that when one of the encoders is touched it, the display expands a “Pop-up Window” over the left or right half of the screen to show a 128 Horizontal x 64 vertical “Parameter change” page.
That page can include all kinds of information and visual cues.
For example, the top left encoder is labelled “ATTK” and you press or turn the encoder.
Now the LEFT half the screen now shows the WHOLE amp envelope "Function: & the current and pre-press value of the ATTK parameter. This lets you restore something back to exactly where it was after a momentary change.
The pop up hides names of the other 5 knobs nearest the ATTK knob, but the six on the right side still show their names for navigation purposes.
Changing the “ATTK” value redraws the envelope in an intuitive way (This is pretty much how any Synth released in the past 30 years with a dot matrix display bigger than a Rizzla handles such things)
Next, in our example - The user decides to change the RLSE parameter of the FILTER envelope at the same time as tweaking the ATTTK parameter of the AMP envelope.
Once the user touches the RLSE encoder which is TOP RIGHT.
Now the RIGHT half of the screen shows the Filter ADSR and dynamically updates the release values and shows the changes in slope.
So at this point no NAMES are visible on the screen and the screen is split into two halves.
The LEFT half shows the AMP envelope and ATTK parameters, and the RIGHT half shows the Filter Envelope and RLSE parameters
User now decides to change BOTH the Attack AND Release of the AMP Envelope.
This time the WHOLE screen updates to ONE Large Parameter display that show the AMP envelope and both ATTK and RLSE values changing with the encoder and also their original values.
This is Logical and intuitive as both elements belong to the same “Functional block” - the Amp Envelope. As the user is focused on making changes with both hands, and will have to remove at least before selecting another encoder, there is no need to display ANY encoder names during 2 handed edits.
If you have two unrelated parameters being manipulated by hand you split the screen
If you have two related parameters, you use the whole screen to display the two values being changed and ideally visual cues / graphics showing their relative impact.
With “Plugin” modules for graphics / the visual cues displayed while an encoder is manipulated there are literally limitless options for customization.
Examples include the obvious ADSR Envelope shapes, Filter cutoff moving left and right with frequency, slope changes and resonance creating a spikes. Also nothing preventing modules being created for more complex things like EQs, Delay responses, Reverb parameters or even calculating the resultant wave form during FM synthesis…
This enables user attention to be focused on the controller with no need to break focus d to look away to a computer screen and reduces “mousing around.”
Summary - Central Screen 12 encoders & buttons
Most folks only have two hands so out of 12 options the small real estate for 12 “Labels” instantly becomes a large amounts of screen space space for detailed feedback on 1 or 2 parameters being tweaked at that time.
You have to remove your hand to select another encoder so:
If only ONE of the 12 parameters being changed and the hand removed from the encoder ( Or no changes after a user specified interval) the screen either flips back to all 12 names
If TWO parameters were being changed (No names visible because there were two edit popups), when ONE encoder is let go (Or unchanged after a while) its related popup closes and the screen reverts to showing the names of the buttons on that half of the screen.
To sum up, if you pick one of the left 6 encoders (either the 3 on the top or the 3 on the bottom), the “Change Popup” is drawn on the left side of the screen obscuring the nearest names (Which can be remembered easily).
Touch one of the right 6 encoders and the names of the 6 on the left remain visible and the “Change Popup” opens on the right side of the screen
It’s possible to get fancier with this, but the basic concepts should be pretty clear despite muddied writing…
The Fader Section to the lower right integrates the concepts from the centralized screen and distributed screens
Essentially, all the elements in a given “Strip” share one small screen. This dispenses with the large parameter change display, but enables multiple potentiometers to share one screen for basic parameter and “Name” information. Zoom in to the diagram for some ideas.
Finally the diagram has a small full color OLED next to a vector stick - This is multi-purpose and used for housekeeping on the unit, but its proximity to the x-y controller enables easy integration and feedback for controllers with 2 degrees for freedom Vs the usual 1.
Think that’s quite enough from me, if you’ve read this far - thank you.
Would love to hear feed back on this and happy to clarify my muddled English or answer any questions on this.
Regardless, forward to seeing watching things develop.