[ardour-dev] metaphors and metamorphs

Paul Davis paul at linuxaudiosystems.com
Tue Feb 7 05:24:03 PST 2006

> The one that probably belongs here;
> If one wanted to start with ardour to make a "trackless" mixer, is
> there anything that's basic to the programming that is inherently
> track programming?

you're taking the track metaphor too literally.

what is important to working with sound is not the track concept, but
signal processing pathways. what you see represented in ardour is not a
"track" in the conventional sense, its a signal processing pathway.
inside the code, it is represented by a C++ object called a "Route". the
same object underlies both audio tracks and busses. the concept of a
signal processing pathway is basically to define the transformations
that will be applied to a signal as it moves through ardour. gain and
panning are the obvious ones, but obviously various plugin-based
processing can happen also. for most people, its not the track model
that is required to make their life easier, its the presence of a
clearly defined pathway with single controls for gain etc. in fact this
is precisely why busses exist, both in software and hardware audio
systems: they allow you to route multiple signals into a new "unified"
signal processing pathway.

the linearity you perceive doesn't come from a track metaphor, but from
the timeline. if you are not working with music in which the timeline
plays any role, then a UI that is based around this concept may present
some unnecessary obstacles. however, its not trivial to avoid this
concept, even in academic electro-acoustic music.

> Is the underlying code for Ardour capable of being worked without the
> track metaphor? Would it be possible to send the data from individual
> regions to a filter (if the tracks were abandoned)? If one were to
> pursue this line of thought, could groups of regions be "bussed" and
> groups of regions be "nested"?

"could groups of regions be "bussed"" ... do you understand that you are
asking precisely for what ardour is actually giving you with its
"tracks": a way to put a set of regions into a single signal processing
pathway. if you want to think of them as pieces of tape, thats your
issue :)

the only think i can think of that would make life easier for what you
appear to be thinking of is if we allowed you to unstack overlapping
regions so that you could have multiple regions in the same signal
processing pathway but all visible at the same time (instead of lying on
top of one another). we are considering doing this for other reasons,
but even if we do it, it creates all kinds of issues for gain control,
and panning. what if you want one of the regions to be louder than
another? or moved over to speaker #6 just a little more? all of a sudden
you are perilously close to a model in which its easier to just have 1
track per region. the overhead of "a track" is relatively small in CPU
terms, and about 5MB in memory terms (adjustable).

most users of ardour don't understand its use of playlists, which are
where the linear arrangement and track metaphor really kick in. but
ardour's track merely *use* playlists to determine what signal to
process, they are not playlists in and off themselves.

finally, the "regions made of other regions" is an idea you will see
appearing in ardour not too long after 2.0 is released.


More information about the Ardour-Dev mailing list