Computes, for each virtual sound object and each loudspeaker, the delay and amplitude that drive a Wave-Field-Synthesis-style spatialisation: how long the signal must be delayed on each speaker so the wavefronts re-form at the object's position, and how loud each speaker should play it.
The module is fed with two 3D point clouds:
X / Y / Z arrays),For every active object × speaker pair, it computes:
stage size / sound speed,It also handles a direct-out routing override (per-object × per-speaker switch matrix), a "Céline Dion" mode that broadcasts each object on every speaker regardless of position, and a central zone behaviour that softly attenuates objects sitting near the centre of the loudspeaker rig.
The calculation is spread over time (~50 ms per full pass): only objects whose position has changed since the previous pass are reprocessed, unless always process is enabled.
Coordinate convention — inputs are in normalised
0…1coordinates; positions are internally remapped to-1…+1for the central-zone geometry. Distances are converted to samples usingdelay = distance × stage_size_m / sound_speed_m·s⁻¹.
Enables the delay and amplitudes calculation.
Per-object X positions (data array, normalised 0…1).
Per-object Y positions.
Per-object Z positions. Ignored when ignore z is ON.
Per-object integer array. 0 mutes the object (amplitude = 0, delay = 0); 1 enables it. Default 1.
Hard cap on the number of objects processed, regardless of the actual array length. Defaults to MAX_AUDIO_CHANNELS. Use this to limit CPU when the object arrays are oversized.
Per-speaker X positions.
Per-speaker Y positions.
Per-speaker Z positions. Ignored when ignore z is ON.
Hard cap on the number of speakers processed. Defaults to MAX_AUDIO_CHANNELS.
When ON, the calculation is done in 2D and the Z arrays are not read.
Combo box:
amplitude + delay (0, default) — both outputs are produced.amplitude only (1) — delays and min delays are left empty.delay only (2) — amplitudes is left empty.Per-object integer array. Selects how the delay is computed for each object:
0 — minimum delay: the closest speaker plays without delay, the others are delayed by their extra distance. This is the standard Delay/Amplitude behaviour.1 — full delay: every speaker is delayed by its absolute distance to the object. Equivalent mode for delay-based imaging.2 — no delay: all speakers play with the same delay (delay objects only). Useful when delay should be driven externally.Per-object source width, range 0 – 2. Default 1.0. Lower values concentrate the energy on the closest speakers (focused source); higher values spread it over more speakers (diffuse source). Internally mapped through a log curve, so the response stays musical across the full range.
Per-object delay offset, in milliseconds, added on top of the computed delays. Range −1000 – +1000.
Per-object gain, multiplied into every speaker amplitude for that object. Default 1.0, no limit.
Per-object integer array. When 1, the calculation is bypassed for that object: the speakers receive a direct copy controlled by direct out speakers objects.
Per-(object, speaker) integer mask (flat-packed: nb_objects × nb_speakers). Only consulted when direct out on objects is 1 for the object. 1 routes the object's signal to that speaker with the per-object delay objects delay and gain objects gain; 0 mutes the pair.
Physical size of the stage / rig in metres, range 1 – 200. Combined with sound speed it converts normalised distances into a delay in milliseconds: delay = distance_normalised × stage_size × 1000 / sound_speed.
Speed of sound used for the delay conversion, range 325 – 400. Default 343.5.
Fraction (0…1) of the radius of the smallest sphere enclosing the loudspeakers. Defines the size of the central zone: objects sitting inside that sphere are progressively attenuated on speakers that are on the opposite side of the rig (object · speaker < 0). Default 0.15.
Read-back of the effective central-zone radius (center zone radius coeff × enclosing-sphere radius). 0 when the rig isn't enclosing enough speakers to form a central sphere.
Flat array of length nb_objects × nb_speakers, indexed [object × nb_speakers + speaker]. Per-pair delay in milliseconds (clamped to ≥ 0). Empty in amplitude only mode.
Flat array of length nb_objects × nb_speakers, same indexing. Per-pair amplitude, normalised so that the per-object energy sum stays at gain objects × on objects. Empty in delay only mode.
Per-object array of length nb_objects. In minimum delay mode this is the delay applied to the closest speaker (i.e. stage_size × QdistMin); in full delay / no delay modes it is 0. Empty in amplitude only mode.
When ON, every object is recomputed on every block, regardless of whether its position has changed. When OFF (default), the module only reprocesses objects that moved since the last pass, and spreads the work over ~50 ms — cheaper for large object counts on static scenes.
Opens the web browser to display information or help about the selected object, if it exists.
For more details about information/help creation, see create-help-file.
Description of the module for internal help purposes only. The description is not displayed in the interface.
visible only in god mode, see setup-panel-tab-expert.
Current private ID for this control used to identify the object.
Current private preset ID for this control used for presets.
If you experience difficulties in Polyphonic mode, try to recreate new id(s) with this button.
Each Patch shared on the local network uses its own ID (identification number). If you experience issues of Patches that don't send information to the good target, this button will rebuild all these id's.
Absolute remote address. see objects-address.
Local to the current patch remote address. see objects-address.
User defined remote address. see objects-address.
version 7.0.250121
Edit All Pages