Hi. Sviatoslav Chagaev <0x1392 () gmail ! com> > I have absolutely no idea. I'm not an audio equipment manufacturer.
I have used many consoles ... digital and analogue ones ... "live" and in studios. I also have an electronics background - digital and analogue ... and repaired many consoles. I've also used software mixing facilities. The model is always the same. As someone said in the aucat thread "the principle of least surprise" and this applies extremely in the professional audio world where it's expected that I can go to a venue and be able to work immediately with equipment I may have never seen before. As far as bussing goes there's an accepted way of doing things. In the analogue world this is limited by the layout of the circuits whereas in the digital there's a lot more flexibility but ... it's only in the most simple cases that a pure hierarchy is at work. I've never defined this before but this is from wikipedia and pretty much sums it up: "In a group of related items, heterarchy is a state wherein any pair of items is likely to be related in two or more differing ways. Whereas hierarchies sort groups into progressively smaller categories and subcategories, heterarchies divide and unite groups variously, according to multiple concerns that emerge or recede from view according to perspective." http://en.wikipedia.org/wiki/Heterarchy A most pertinent point there to ordering output: "... heterarchies divide and unite groups variously, according to multiple concerns that emerge or recede from view according to perspective." This is exactly how mixing consoles (even simple analogue ones) and mixing software work and exactly how people who use them think - having more than one visual model in their head at a given time, usually assembling heterarchies into multiple hierarchies and often matrixing them as well. This also applies very strongly (I've omitted some of the flexibility which doesn't apply to the rigidity of bussing): "A heterarchy may be ... subsumed to a hierarchy ...; the two kinds of structure are not mutually exclusive. In fact, each level in a hierarchical system is composed of a ... heterarchical group ..." Even in consoles with very flexible bussing there's always a number of levels in a somewhat hierarchical structure - almost invariably more than one hierarchy is available and even in simple analogue consoles it's possible to move items so that they span different levels of a hierachy (or move into another hierarchy). Where we originally might have ... ___a___ | | _a_ _b_ | | | | a b c d It's pretty trivial to do ... _____a____ | | | | _a_ | | | | | a b c d ... or permutations thereof. Labelling of mixing consoles have been designed this way since day dot as a direct result of electronic bussing and continued right into software mixing on the principle of least surprise". Something else that's extremely relevant is that "mixers" (people who do mixing) "label" in this manner also - whether mentally or with a texta ... Usually "likeness" trumps everything. For instance I will bus all the violins into a violins group and bus all the cellos into the cello group and then bus them together into the strings group. On an analogue console (and a digital one in a simple layout) I will see this: ____S____ ____________V C | ________________| _ | _ _ | _ | | | | | | v v v c c c On a digital console I might see this: ____S____ ______V C______ _ | _ _ | _ | | | | | | v v v c c c That's how layout works from left to right but ... LIKE THINGS WILL ALWAYS BE GROUPED both on the console/software and in the models. Not in alphanumeric order - that's only useful when I have three trombones and I label them T1, T2, T3 ... One thing that is invariable though ... is that the input and the output of a particular "channel" are always grouped together unless they are specifically supposed to work as a team. For instance this ... channela -> channelb -> groupA (a&b) -> channelc -> channeld -> groupB (c&d) -> mainA (A&B) -> ... is always understood to mean ... -> input channela output -> -> input channelb output -> -> input groupA (a&b) output -> -> input channelc output -> -> input channeld output -> -> input groupB (c&d) output -> -> input mainA (A&B) output -> ... it doesn't matter at all if you want to do this though ... -> input channela output -> -> input channelb output -> -> input channelc output -> -> input channeld output -> -> input groupA (a&b) output -> -> input groupB (c&d) output -> -> input mainA (A&B) output -> ... but never this ... -> input channela -> input channelb -> input channelc -> input channeld -> input groupA (a&b) -> input groupB (c&d) -> input mainA (A&B) channela output -> channelb output -> channelc output -> channeld output -> groupA (a&b) output -> groupB (c&d) output -> mainA (A&B) output -> ... the only way that's useful is if you are (as above) working on "channels" that are as a default expected to work together, e.g. stereo and so on ... -> left input -> right input left output -> right output -> ... in that case either way is useful but my experience is that's about the only time inputs and outputs are separated WHEN THERE'S NO INTERMEDIATE BUSSING GOING ON AND THERE'S SOME COMMONALITY and in that case it becomes very useful to label, orient, visualize in that way. Most analogue consoles have specific pairs of inputs and outputs for this purpose with ganged potentiometers and most also have some matrix environment to do it in more flexible ways. I'm not much of a C reader but if that doesn't seem to apply much please let me know. I think it does and I'd try and apply it a little bit closer to the actual code if it's necessary. Best wishes.