home/ atoms/ atk-multichannel-speaker-routing

ATK decoders output channels in counter-clockwise order starting from front-center; call .directions to verify routing

When using FOA decoders for multichannel loudspeaker systems (newPanto for regular polygon arrangements, newPeri for dual-ring periphonic setups), the ATK outputs channels in a specific order that may not match the physical hardware routing. The convention is to start at the front center and proceed counter-clockwise. For a quad system this produces: ch0 = front-left, ch1 = rear-left, ch2 = rear-right, ch3 = front-right. Calling .directions on the decoder object (optionally with a .raddeg conversion) returns the exact speaker positions in channel order. SuperCollider array reordering (using indexing syntax) is the software equivalent of re-patching an analog multichannel signal — useful when the physical wiring is fixed. The newPanto decoder needs number-of-speakers, orientation (‘flat’ or ‘point’), and a k-factor (beam pattern).

Examples

dec = FoaDecoderMatrix.newPanto(4, 'flat', 'energy'); dec.directions.raddeg returns speaker positions in channel order. Reordering: sig = sig[[0,3,1,2]] swaps channels to match a different physical layout.

Assessment

You have a quad system physically wired as: ch0=front-left, ch1=front-right, ch2=rear-left, ch3=rear-right. The ATK decoder outputs [FL,RL,RR,FR]. Write the SuperCollider array reordering needed to match the hardware.

“fortunately, you can always call 'directions' on your decoder, converting to degrees if desired, to return the locations of the speakers, in the order the ATK expects them. So in this case, channel 0 should go to the”
corpus · eli-fieldsteel-supercollider-tutorials-youtube-playlist · chunk 5