[ardour-dev] UI review: Fully context menu driven UI

Marek Peteraj marpet at naex.sk
Sun May 30 04:58:01 PDT 2004

A fully context menu driven UI has the advantage of a single, simple
rule:"whatever object you point at, a rightclick shows the operations
for that object"
If such rule applies everywhere in the UI, it unifies the logic and
behaviour of the entire UI.
Moreover, it makes the menus more light thus easier, more efficient and
faster to pick an operation.
The key is to look at each individual function/operation and determine
the extent to which it applies to:
a) whole session/globally
b) track
c) region/multiple regions
and categorize them properly.

If you right-click on a region or in empty space you'll see the
following items in the context menu:
Region - only if rightclick happened on region

Let's look at the functions contained within these submenus:


* play location
* play from cursor
* play from start

These are typical global functions and should move to the global menu.
Soloing tracks will play only those tracks if one of the above mentioned
function is picked.

* play region
* play selected region
* loop region
* loop selected region

In the "button press" selection, a distinction between selected and
"plain" regions becomes obsolete, since the selection always follows
thus the user always operates on selected region(s). 

So we end up with:

* play selected region(s)
* loop selected region(s)

The (s) indicates that there might be a multiple selection in place,
therefore it would play/loop from the first to last region in the
timeline. Region based operations.

* Select all - a global function, should move to global menu
* Select all in track - always happens in the button press selection
model for tracks, leave out.
* Invert - a global function, should move to global menu
* Invert all in track - isn't possible in the button press selection
model, but it's more a mathematical and speculative function, i believe
that it won't be needed in 99% of cases. Most users should be ok with
Invert. Leave out.
* Select current range - ? seems to be a range based operation, leave

is a definitive track based operation

all operations contained within this submenu are track based


* Cut
* Copy
* Paste
* Align
* Align relative

are definitely region based operations, for both single and multiple
They belong to frequently used category, i wouldn't group them at all.

* insert region
* insert chunk
* insert ext. sndfile

are track based operations, can be grouped into 'insert'. 

* New region from selection
* Separate selection

range based operations, leave out.

What remains is the region menu, which can be further "optimized",
depending on how frequently each operation is used, less frequent and
similar operations should be grouped in submenus. All operations listed
as region based should move into this menu. If you look at the rest
you'll see that all operations belong elsewhere thus 'play' 'select'
'freeze' 'nudge' 'edit'  can move away from the region context menu. So
the 'region' submenu becomes the actual main menu which makes it much
faster to pick a region based operation. Effective, easy. 

All operations listed as track based should move into the track context
menu (right-click on track header).
Height, color, waveform are track properties.
Most won't change that often during a session, height should be
adjustable by grabbing the bottom of a track and doing smooth arbitrary
height adjustments in the future. They're also accessible via 'v'. I'd
suggest to group them into properties.
The 'remove' operation should be removed from the 'v' menu.


More information about the Ardour-Dev mailing list