2025-05-30

voicing

assigns incoming triggers to playback voices under static polyphony constraints. determines which voice plays each event using rules like round-robin, priority, or weighted selection.

works with any trigger stream — whether from grid (metrical) or field (non-metrical) — and is independent of timing structure. voice logic operates purely on trigger order and allocation strategy.

families

  • id 0 round-robin

    • description: cycles through available voices in fixed order

    • real-world analogy: evenly distributing workload

    • notes:

      • a sets starting voice offset (0 = first voice, 1 = last voice)

      • b sets stride (0 = sequential, 1 = skip every other)

      • deterministic, non-stealing

  • id 1 weighted round-robin

    • description: chooses voices according to static weight proportions

    • real-world analogy: assigning emphasis or prominence to certain voices

    • notes:

      • a sets spread of weights (0 = uniform, 1 = extreme imbalance)

      • b sets reseed rate (0 = static weights, 1 = reweight every cycle)

      • useful for patterned or dynamic texture across voices

  • id 2 max-poly limit

    • description: enforces a hard cap on simultaneous voices; excess triggers are dropped or reassigned

    • real-world analogy: hardware voice limits, stylistic sparsity

    • notes:

      • a sets drop/steal rule (0 = drop newest, 1 = drop oldest)

      • b sets fade-out time for interrupted voices

      • ensures control over polyphonic density

parameter behaviour summary

  • round-robin

    • a: starting voice index

    • b: stride (0 = sequential, 1 = skip voices)

  • weighted round-robin

    • a: weight spread

    • b: reseed rate per cycle

  • max-poly limit

    • a: drop rule (newest vs oldest)

    • b: release fade time

why these were chosen

  • round-robin: predictable and even voice cycling
  • weighted: sculpted emphasis via proportional selection
  • max-poly: hard constraint for expressive or technical control

each form is static, deterministic, and fully compatible with any onset source. together they span the core strategies of voice assignment without requiring runtime state or feedback.

what’s not included

  • sidechain logic or audio-reactive voice reassignment (violates determinism)
  • global voice pools across instruments (belongs to arrangement layer)
  • time-varying polyphony rules (handled via modulation or segmentation)

conclusion

voicing governs how sounds are distributed across voices, independent of how or when triggers arrive. compatible with both grid and field, these forms offer robust, parametric control over voice allocation in any sonic context. fully precomputed and repeatable, they ensure that every event knows exactly who will play it.