Dear Ardour team. This is my
Newbie RANT about Ardours’ GUI.
Any edition application need basically three types of actions:
- Navigation.
- Selection.
- Modification.
Those actions are done in most editing programs through the mouse and the keyboard.
Those set of actions are like a LANGUAGE that the user has to learn in order to control the program.
Ardour uses several kinds of concepts to edit sound: Tracks, Regions, Ranges, etc. Grouped by other kinds of concepts: mixing, editing, etc. Using different kinds of views and windows.
So from the point of view of a newbie like me, it is VERY important to keep that LANGUAGE of mouse and keyboard actions, that the user has to learn, as SIMPLE and CONSISTENT throughout the whole interface as possible. That allows a quick learning curve.
NAVIGATION.
Navigation with keyboard shortcuts SHOULD be done in EXACTLY the same way in EVERY context.
In any of these contexts:
- Navigating tracks.
- Navigating regions inside a track.
- Navigating midi notes inside a region.
- Navigating notes inside a notes list window.
- Navigating tracks inside a tracks list window.
- Navigating regions inside a regions list window.
- Navigating sources inside a sources list window.
- Navigating plugins or elements inside a mixer strip.
- Navigating elements inside any given context.
I should be able to use THE SAME actions in ANY of these contexts. After all they are all lists of elements.
Mouse, shortcuts or mixed actions for any of the following SHOULD be the SAME in any given context:
- zoom in ({ctrl +}{ctrl alt +})
- zoom out ({ctrl -}{ctrl alt -})
- nav up ({roll_up}{pg_up}{ctr pg_up}{ctr alt pg_up}{arrow_up}{ctrl arrow_up} etc)
- nav down ({roll_dwn}{pg_down}{ctr pg_down}{arrow_down}{ctrl arrow_down} etc)
- nav right ({→}{ctrl →}{alt →}{ctrl alt →}{end}{ctrl end}{ctrl alt end} etc)
- nav left ({←}{ctrl ←}{alt ←}{ctrl alt ←}{start}{ctrl start}{ctrl alt start} etc)
SUGGESTED actions borrowed from text editing, which is a very popular GUI “LANGUAGE”, are in parenthesis.
And that keyboard LANGUAGE for NAVIGATION should NEVER mix with the keyboard language for EDITION. That means that a shortcut for navigation should never be used to “nudge” a MIDI note, for example, because I end up editing when my intention was to just navigate.
The same goes for MOUSE actions. It should NOT be possible to just roll the middle button and EDIT (change the value) of what ever is UNDER the mouse pointer. It is very annoying that a common NAVIGATION action CHANGES the values under the pointer. Some additional or confirmation action SHOULD be needed.
All SIMPLE actions SHOULD be for NAVIGATION and NEVER for EDITION. Meaning that a simple drag of the mouse, without previous actions like double click or at least a 2-key shortcut, SHOULD NOT change anything. It usually happens to me that since the only option to select a region is to click it, and NO keyboard navigation allows me to select it, the click is taken as a drag and it ends up modifying the session. Also NO simple keyboard shortcuts, NONE, ZERO, like a single letter, SHOULD allow CHANGING the session. It is a door open for unwanted changes. That is why the GUI ends up with different mechanisms for “locking” changes.
All information about a session SHOULD be possible to obtain WITHOUT entering an EDITION mode. How come that if I want to know the velocity of a MIDI note I have to enter in EDITION mode? That is a call for unwanted changes. How come that if I open the MIDI notes list window, I can change its velocity and length just by rolling the middle button of the mouse? That is a call for unwanted changes.
NAVIGATION, at least with the keyboard, SHOULD be complete. Meaning I should NOT need to use the mouse to navigate any GUI context. Specially MIDI regions. But currently if I want to “page down” or “page up” a MIDI region to see the notes above or below what the “scroomer” is showing me I HAVE to use the mouse. Very annoying because the “scroomer” is not very precise. If I want to “page down” or “page up” the plugins in a Mixer Strip, I HAVE to use the mouse. Very annoying.
NAVIGATION should be omnipresent, simple and complete. So that you can look around WITHOUT changing anything. A 5 year old should be able to NAVIGATE the document, ups sorry the “session”, without accidentally modifying it because he accidentally pressed “E”, or “clicked” a little too long and ended up dragging something because it is the ONLY option to select something.
SELECTION.
Keeping the same idea as in navigation, a set of mouse actions and a set of keyboard actions, that SHOULD be DIFFERENT from the navigation ones, but common to ALL contexts, define a LANGUAGE for selection.
Selection SHOULD be also possible with keyboard shortcuts, and they SHOULD be the SAME for any context.
In any of these contexts:
- Selecting tracks.
- Selecting regions inside a track.
- Selecting midi notes inside a region.
- Selecting notes inside a notes list window.
- Selecting tracks inside a tracks list window.
- Selecting regions inside a regions list window.
- Selecting sources inside a sources list window.
- Selecting plugins or elements inside a mixer strip.
- Selecting elements inside any given context.
I should be able to use THE SAME actions in ANY of these contexts. After all they are all lists or tables of elements.
Mouse, shortcuts or mixed actions for any of the following SHOULD be the SAME in any given context:
- select up ({drag_up}{shift pg_up} {ctr shift pg_up} {shift arrow_up} {ctrl shift arrow_up} etc)
- select down ({drag_dwn}{shift pg_down} {ctr shift pg_down} {shift arrow_down} etc)
- select right ({drag_right}{shift →} {ctrl shift →} {ctrl shift →} {shift end} {ctrl shift end} etc)
- select left ({drag_left}{shift ←} {ctrl shift ←} {ctrl shift ←} {shift start} {ctrl shift start} etc)
- select element ({shift click} {ctrl click})
SUGGESTED actions borrowed from text editing, which is a very standardized GUI “LANGUAGE”, are in parenthesis.
EDITION.
Edition SHOULD be a COMPLEMENT to NAVIGATION and SELECTION. Edition should be only possible by INTENTIONAL actions.
That means that to MODIFY anything I SHOULD need to NAVIGATE to it, then SELECT it, and THEN do something else to modify it or to START modifying it.
In text editing it is mostly done by the famous copy/cut-paste ({ctr c}{ctr x}{ctr v}{ctr ins}{ctr supr} etc) driven by TWO and THREE combination of mouse actions or key shortcuts, NEVER by single key shortcuts or simple mouse actions. You pressed “K”? Ups you just CHANGED something.
The global behavior of the editing “LANGUAGE” SHOULD NOT be modifiable by simple actions of the mouse or the keyboard. You just rolled the middle mouse button because you were trying to NAVIGATE but you did it while your mouse was hovering over the edit mode selector? Ups, everything NOW seems IMPOSSIBLE to change because it is now in “lock” mode. That is a call for bug reports that are not bugs at all but just confusing behavior.
The user SHOULD be able to adapt the language in a very flexible way. The possibility of complex keyboard shortcuts allow that. For example if I am able to configure a {ctrl shift alt 3 2 1} shortcut.
In order to be able to have the SAME set of navigation and selection actions for any context, Ardour SHOULD have an action to enter the context of a single SELECTED element and get out of it. That should be possible both with the keyboard and the mouse.
That means I should need to do a double click or a 2 key shortcut to actually enter a context. So that I can use the SAME sets of actions for NAVIGATING, SELECTING and EDITING ANY given context.
A context could be as small as a length of a MIDI note in which I just type with the keyboard a value, or, AFTER entering the context, roll the middle button of the mouse, or drag the mouse around to make the desired CHANGE to the MIDI note.
NAVIGATION, SELECTION and EDITION SHOULD be completely DISJOINT actions. The way that is achieved in text edition is with the “caret” pointer. You NAVIGATE the “caret” to the POINT of EDITION. It is different from the mouse pointer so that the NAVIGATION and EDITION actions are DISJOINT.
In the case of a DAW like Ardour there SHOULD be an EDITION pointer SEPARATE from the PLAYHEAD which is for the point of reproduction (hence the name) and SEPARATE from the MOUSE pointer which SHOULD be JUST for navigation. It could even be just an special color maker for one and only one of the SELECTED elements of a context so that the user knows where the edition point is.
It seems to me that Ardour wants to let me NAVIGATE, PLAY the session, and eventually EDIT it at the SAME time. But without an actual EDITION pointer like the caret in text editors, or should I say the “edit cursor” of before Ardour 2.3 (which I never knew), it is not precise nor secure because I can accidentally change something that I did not intended to change.
And in ANY case if a modification is taking place the GUI SHOULD take me to the place of modification and SHOW to me the modification or at least give me some indication, like a confirmation dialog, of what and where is the CHANGE taking place.
It SHOULD NOT be ease to CHANGE something without having a VISUALIZATION of the CHANGE. That is a call for unwanted changes. So if I am changing something while reproducing, the PLAYHEAD should go its way but the GUI should no longer show me the position of the playhead but the position where the CHANGE is taking place, no matter what the default behavior has been configured for. Just like in text editors. And if there is a SEPARATE edition pointer like the caret of text editors, that behavior is easier to implement.
Currently in Ardour when the mouse is the edition point, it only tells me a “time” position. In some contexts like MIDI edition it is an horizontal position. So to actually paste a set of MIDI notes where I want them I have to first paste them and then move them around. So navigating MIDI should be precise and simple. With only the mouse pointer is neither. A simple, precise and powerful NAVIGATION of an edition pointer allows for an EDITION with the same characteristics.
The BEST open source audio application out there SHOULD be SIMPLER to learn and use.
I REALLY hope that the guys who actually make the choices (looking at Paul) for Ardour consider making it simpler for the newbie to learn and explore Ardour. Even a kid should be able to use it.
I am sorry if I was too harsh on all the GOOD work you have done over the years, or if I made mistakes about the actual behavior of Ardour, after all I am a newbie.
Having said my RANT, Ardour is THE choice over any other open source sound program because of … well … THE SOUND. So …
Thank you.
JLQ.