Routing Matrix Conception

Work on a routing matrix implementation started, based on my earlier abstract concept with rotated labels. So it’s time to get into details:

Feedback welcome :wink:

One thing is clear already: the “Show” options are just wrong, since "Busses and “Tracks” can only be shown if “Ardour” is on. I intend to switch to checkboxes for “Busses”, “Tracks” and “Hardware” (instead of “System”).

Looking good.
Are you considering making a way to assign the outputs of multiple tracks at the same time?
It would be very handy when you want to put all drum tracks, bvox or whatever to the same bus.

philicorda: thanks. yes, could be done by allowing the legend items to be Ctrl or Shift selected, working similar to editing with multiple selected tracks in the editor.


Update, with new details:

Thanks, porl :slight_smile:

Just now I wonder if the buttons should be labeled “Add Send”/“Add Return” instead of “Add Output”/“Add Input”.

i think 'add [in/out]put makes more sense here, as there may be confusion otherwise with what they actually do. a ‘send’ on a console is like a branch, with the original signal continuing on, whereas an insert actually breaks the signal. there is also the possible issue that some people might wonder why a ‘send’ they add in this window doesn’t appear in any ‘send’ windows (not sure if that’s clear or not).

anyways, keep up the good work :slight_smile:


the insert part looks awesome. i like how these are clear without resorting to the cliched ‘patch cables’ look. definitely suits ardour’s design approach of making sense without looking like a gimmick :slight_smile:


Hmm, a monologue. Anyway, on to inserts:

Little tweaks and a version for Inputs:

First mockups for the global variant:

looking great. i like the first one the best, but the only thing i would suggest is to make the ‘on’ indicators (can’t think of a better word for it at the moment) a bit less blurred and rounded. they look great with the matrix on it’s own, but i think they would look a bit out of place in the subtle-highlight world of ardour.


Thanks and glad you like it, porl, but it has been found to be too busy. Leading to:

one way to do it might be to use the subtle single coloured boxes, but have them change to the 2-colour boxes on mouseover, with perhaps the row and column also taking the colours to allow easy sighting. that way if you are unsure of something due to an excessively complex routing matrix you can just move your mouse around to see. it would also be an easy way to show which two inputs/outputs a particular grid cell will connect. this should be slightly transparent to allow you to see the connections underneath, and this also allows you to see if the cell is on or off.

i know this is probably not that clearly worded, so i’ll try to make some mockup hacks of your images:
(hope these appear properly)

mouseover inactive cell:

mouseover active cell:

hope this makes sense :slight_smile:


ps. the images are hosted on my own home adsl connection, so apologies if they are slow. if necessary i can move them elsewhere if someone wants me to.

porl: Nice. There will definitively be some highlighting, likely row and column from crosspoint to source and destination like here. Your version works fine in the mockup, but would do less so with darker track/bus colours. So I lean more towards neutral highlighting.


Here we go again:

Even more, now with “bundle-level” views:

Is a ‘bundle’ when tracks or busses have the same number of io channels, and so can be represented by a single item in the routing matrix?

I’m not all that keen on the circles for some reason. It feels harder to read than the lighter squares in this one for instance:

The faint grid lines, some of which are slightly lighter to emphasise which rows belong to which track, do make a lot of sense to me. Anything to help the eye getting lost in a grid is a bonus IMHO.

philicorda: a bundle is a track, bus, device or application. so it’s a logical bundle of ports :slight_smile:

Paul likes the circles.

Glad to hear the different line widths work.