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.