Map an IN:OUT console size to a BusAllocation. Every banked tier comes out a
whole STRIP_QUANTUM multiple, so the setup form never offers a count that would
strand a partial block of faders:
auxis the OUT the operator pinned, so it rounds up (roundUpToQuantum) —
20 out stays 20 aux; a non-quantum 6 becomes 8 rather than losing a send.
group is half the outputs, rounded up the same way: 20 out -> 12 groups, not 10.
matrix is a quarter of the outputs, rounded to the nearest quantum
(roundToNearestQuantum) — a derived suggestion, so 20 out -> 4, not 8.
dca is the per-size pool (8, or 16 on a ≥ 64-in desk); both are already quanta.
fxReturn is 4 — a rack of four FX (the Midas reference desk's own count).
mixMinus is 0 — never allocated; it is a channel property, not a tier (see
BusAllocation.mixMinus).
main is a single (stereo) bus and is not banked: it owns a dedicated master fader,
so it is neither quantised nor counted towards the banks (see BusTypeDescriptor).
The banked total is a multiple of SURFACE_BANK_WIDTH exactly when an even number of
tiers sit on an odd quantum — 48:20 does (20+12+4+8+4 = 48 = 6 full banks). When it does
not, that is reported, not fixed: this function returns the counts as derived, and
bankAlignmentWarning tells the caller how many faders are left empty so the operator
can adjust. Silently inflating a tier to force the sum would invent a bus nobody asked for.
Map an
IN:OUTconsole size to a BusAllocation. Every banked tier comes out a whole STRIP_QUANTUM multiple, so the setup form never offers a count that would strand a partial block of faders:auxis the OUT the operator pinned, so it rounds up (roundUpToQuantum) — 20 out stays 20 aux; a non-quantum 6 becomes 8 rather than losing a send.groupis half the outputs, rounded up the same way: 20 out -> 12 groups, not 10.matrixis a quarter of the outputs, rounded to the nearest quantum (roundToNearestQuantum) — a derived suggestion, so 20 out -> 4, not 8.dcais the per-size pool (8, or 16 on a ≥ 64-in desk); both are already quanta.fxReturnis 4 — a rack of four FX (the Midas reference desk's own count).mixMinusis 0 — never allocated; it is a channel property, not a tier (see BusAllocation.mixMinus).mainis a single (stereo) bus and is not banked: it owns a dedicated master fader, so it is neither quantised nor counted towards the banks (see BusTypeDescriptor).The banked total is a multiple of SURFACE_BANK_WIDTH exactly when an even number of tiers sit on an odd quantum — 48:20 does (20+12+4+8+4 = 48 = 6 full banks). When it does not, that is reported, not fixed: this function returns the counts as derived, and bankAlignmentWarning tells the caller how many faders are left empty so the operator can adjust. Silently inflating a tier to force the sum would invent a bus nobody asked for.