[Ardour-Dev] ardour3 video timeline

Paul Davis paul at linuxaudiosystems.com
Mon Jun 28 06:38:49 PDT 2010

On Mon, Jun 28, 2010 at 9:19 AM, Patrick Shirkey
<pshirkey at boosthardware.com> wrote:
> Thanks for the quick explanation. Is that primarily to enable functionality
> like multi track drag/select/cut/paste etc... ?
> How is each track/bus drawn and positional info retained? Is there the
> equivalent of parent->child relationship between the canvas and the
> individual track/bus?
> Couldn't the code that handles displaying an audio/midi track/bus be
> extended to allow any "child" track/bus type?
> I guess I'm wondering about the logic behind making the editor canvas
> inflexible in this regard.

the key point is that the objects on the canvas are not widgets that
can be used without the canvas. they are canvas items, whose internal
implementation is closely tied into the internal design of the canvas
itself. its still quite object-oriented in all the right ways, but not
using widgets that could be re-used in a totally different context. to
give a specific example: some of the ideas about how ardour draws
waveforms come from something that was called GtkWaveView. that was a
regular GtkWidget which could be used just like a toggle button,
textview or whatever. but the current (and foreseeable future) design
of GTK means that you can't use widgets the way that you need to
create the experience you expect from a non-linear, non-destructive
multitrack editor. so some of that code ended up in the
CanvasWaveViewItem object, which draws itself onto a canvas. its
modular, its compact, but its also useless without the canvas.

there is still a heirarchy of objects/items on the canvas, specific
track types etc. etc. - they just don't involve "widgets" in the
normal sense of a GtkWidget.


> --
> Patrick Shirkey
> Boost Hardware Ltd

More information about the Ardour-Dev mailing list