[Ardour-Dev] Set Selected Regions

Paul Davis paul at linuxaudiosystems.com
Mon Oct 1 09:35:49 PDT 2007

On Mon, 2007-08-27 at 15:35 +0200, Tim Orford wrote:
> On Sat, Aug 25, 2007 at 09:51:51PM +0100, Chris Goddard wrote:
> > Why ?
> > 
> > On Saturday 25 August 2007 23:29:18 Esben Stien wrote:
> > > Paul Davis <paul at linuxaudiosystems.com> writes:
> > > >> <selections> Should not be "undo-able"
> > > >
> > > > agreed.
> > >
> > > Oh, no; that's a terrible idea. Please make this an option. Every
> > > operation should be undoable.

 [ once again, some wierd flush of email at dreamhost continues to flush
    old emails out of the server backrooms. important stuff though, so
    i am replying anyway. ]

> The history dialog UI pattern introduced by Adobe in PS5
> (afaik) in 1999, is imo one of the few useful recent UI innovations. 
> Having the existing undo is of course a great feature for Ardour to
> have, but I'm not the only one who finds a simple Undo/Redo to
> be a little primitive. Jenifer Tidwell in her Oreilly book, 
> http://designinginterfaces.com/Multi-Level_Undo, 
> describes Ardours current approach as:
> "Confusing? You bet." :-)

you're wrong. and in addition, ardour's current approach is *precisely*
what she advocates: 

Confusing? You bet. Most users never will develop a clear mental picture
of the algorithms used here; most people don't know what a "stack" is,
let alone how it is used in conjunction with Repeat and Redo. That's why
the Smart Menu Items are absolutely critical to usability here. They
explain exactly what's going to happen, which reduces the cognitive
burden on the user.

ardour uses "smart menu items", which is the full extent of her
recommendations for dealing with this issue.

> Even Bash allows you to browse the history.

you've totally confused two entire different kinds of "history".

bash's history operates without any attention being paid to idempotency.
when you type !121, bash simply re-executes whatever command 121 was. if
command 121 was "rm foobar", then this re-execution generates an error
because the filesystem state has changed in a way that makes command
121's lack of idempotency very apparent. this is true for more or less
any shell command of any consequence ("date" would be an obvious
exception, along with "cd" etc.)

ardour's history is, from a semantic perspective not a list of commands,
its a set of states. you don't reissue the command that was carried out
10 mins ago, you go back to the state of 10 minutes ago.

this means that any time the user moves back in time and then carries
out new operations, you have to branch the history list. this creates a
*NIGHTMARE* for non-programming-literate users.

> some undo history use cases:
> *I make a complicated selection of a song section involving
> regions that extend before and after the section
> boundaries and overlap others. This takes several minutes 
> and involves repeated auditions. Then I accidentally lose 
> the selection, I go to the History dialog and unclick the 
> Filter Selections toggle button that is on by default. 
> I can now step back to the desired state.
> *After editing track 4, I realise my previous change on
> track 3 was wrong. I use Ardour 6.0's per-object history
> list to revert these changes without affecting unrelated
> tracks. I'm so glad i didnt have to tediously import the
> track from a previous saved version.

ardour had this model in its earlier days. it was utterly confusing to
everyone who tried it. "did i undo everything back to that state?" "how
do i back up to the branch and then go down a different branch" the
questions were obvious and endless.

> *I'm focussed and have full flow experience using my
> favourite creative tool (Ardour 8.99beta4-r3). I've tried
> several tricks to try and make the mix gel, but I've run
> out of time, and have to pick one of them. I tab to the
> History dialog and see that the history tree has 3 recent
> branches. I select the end of each branch, audition, and
> see that the first one was the best (of course!). I delete 
> the other branches to remove clutter, and run off the mix.
> (http://vimdoc.sourceforge.net/htmldoc/usr_32.html)

no, what actually happens in practice, since 99% of the user base
doesn't think like a programmer, is that they pick some spot in the
history tree, start making changes, thus creating *more* branches, and
end up sending an email or a forum post saying "why is ardour's undo so
complicated to use? i get all these lines every time i try to change
anything". believe me, i've seen it.


More information about the Ardour-Dev mailing list