Borrowing channel mappings for surround tracks.

I was wondering why there isn’t a front-left, back-right kind of option for channel and bus mappings in Ardour/JACK. I heard on IRC that JACK just doesn’t work that way. If I understood correctly, Media players that automatically play the right surround tracks on the right speakers do so because the ALSA sound system creates a pseudo-device who knows what’s what.

So, I was curious. If somehow ALSA does it, can’t JACK have an option to identify the locations (front-left, center etc.) of speakers by ‘borrowing’ this mapping information from ALSA?

Ofcourse you want your freedom of mapping and routing your serious hardware (and not just a simple sound card) the way you want, and you have it. But 5.1, 7.1 etc. are standards and it’s very common you’re gonna want to have your channels mapped that way.

For example, when I want to tweak a 5.1 surround WAV file. (VLC Media player for example (ALSA) plays it back ‘correctly.’) I don’t know, make the rear softer and add some voice in the center channel. I have to guess-map 6 channels to the 16 channels my sound card gives the system. From my non-technical point of view, it would be nothing but cool and certainly not impossible to have a channel-guess function. Map the ‘correct’ channels to the file’s tracks on import. And the ability to choose for example ‘center’ for mapping a new channel.

I don’t know how, but some software can also export this 5, 6 or 8 channel .WAV. It identifies the channels as where they are, or maybe there is just a predetermined order they should be in. Wouldn’t it be awesome if Ardour can just im- and export these? Hassle free workflow between Adobe Premiere or Cinelerra or Aften or FAAC even.

The last thing I want is software making guesses for me, I’m more than happy spending the 20 seconds it would take to send the streams to the right places. The marvellous thing about standards is that there are so many of them ! 5.1 may be a standard but as far as I know 7.1 isn’t. Even in 5.1 there are at least 2 ways of laying the streams out. L,C,R,Ls,Rs,Sub or L,R,C,Sub,Ls,Rs. Which one is right ? Both.

If any kind of defined layout were to be implemented it should be in Ardour, for tacks and busses; Jack is just a facilitator, it moves audio from place to place, it shouldn’t be done there. Even then it should still be down to the user to define where those connections go.

One thing you don’t seem to understand is that the option to take a guess, something that a lot of software seems to do right anyway so it’s not really a guess as the desktop sound system is somehow always right, is something you don’t have to use.

So if your argument for the option being a bad idea is that you don’t want the system to take guesses, I don’t really hear you say anything other than the wish that the software won’t implement simple options that make it appeal to a larger audience.

@Redsandro: if and when Ardour handles N.M formats (like 5.1, 7.1, 10.2 etc), there will clearly be a need to map physical channels to the "L, R, F ..." designations used by these systems. But currently, Ardour does not handle these formats in any way. It is therefore fairly (but not totally) meaningless for it to try to make a mapping.

If you want this to happen right now, just tell JACK to use, for example, the "surround51" device. You will get 5 channels, number 1 to 5, with the conventional understanding of the channel mapping.

There are very few surround sound users of Ardour, primarily because we do not have an adequate panning system. The people who do surround with Ardour generally use ambisonics, where the notion of speaker configuration and placement and channels is almost completely irrelevant (more information on that here:


To give an option that I haven’t tested but seems like it might work to provide this, would be to utilize Templates in Ardour combined with the Patchbay in QJackCTL.

Namely, creating the buss[es] and naming them appropriately, then using patchbay to have QJackCTL automatically connect those to the correct connections. Then save this Ardour Session as a template, and when you create a new session, open that template and see if you get the routing restored. I suspect you will, but haven’t tried it yet myself.


Quoting paul:
If you want this to happen right now, just tell JACK to use, for example, the “surround51” device. You will get 5 channels, number 1 to 5, with the conventional understanding of the channel mapping.

I didn’t know that. Up until recently I didn’t pay attention to Jack, I thought it was just a subsystem loaded by Ardour and up until recently it just worked. But now I realize that you said something similar on IRC about surround40. But where can you specify this? It’s not on the Setup - Settings page, unless I’m totally overlooking it.

@ seablade:
That sounds like a very good idea. If it works as easy as it sounds, now that I got the “Hardware not moving” fix. I will try it out when I find the proper Jack option. Can the session mappings be tied to this surround51 Paul is talking about and not my specific hardware sound card?

@ paul:
Channel routing out of the way, multichannel WAV export would still be nice. You have it pretty much set up already, except now you can only specify if a track/bus goes to left or right.

I think both 5 and 6 channel WAV’s are a standard because Cubase can export them, Premiere can import them, Premiere can export 2 or 6 channel WAVs and Aften accepts them for AC3 encoding.

@Redsandro I am pretty sure that multichannel export is a feature request in Mantis, but it is worth double checking and adding your vote(And better is sponsoring) to it if you want.

In as far as the question you asked me, honestly I don’t know, sorry. In theory I would think so, but as I said before I haven’t even tried what I suggested to you yet to know if THAT works;)


@redsandro: multichannel export (and a lot more) is already implemented in Ardour 3.0 (not yet released). Ardour can import audio files with any number of channels (try creating a 40 channel track in some of the apps you mentioned!). To specify the audio device that JACK uses you need to use qjackctl and type it into the “Interface” selector. Its not presented by default (in ardour or qjackctl) because its not a real physical device - just a pseudo-device that maps to the real one.