Distance Attenuation

Computes, for each sound source, its distance to a loudspeaker rig — measured as the distance to the convex hull formed by the speakers — and reports whether the source is inside or outside that hull.

The module receives two point clouds:

  • the sources (one position per index, given as parallel X / Y / Z arrays),
  • the speakers (same layout).

It builds the convex hull of the speakers (in 2D when ignore z is ON, in 3D otherwise) and, for every source, evaluates two things:

  • is inside1 when the source lies inside the hull, 0 otherwise. The inside test is a ray-cast / odd-crossing test on each plane (XY, and additionally YZ + XZ in 3D).
  • distance0 when the source is inside the hull, otherwise the shortest distance from the source to the hull's outline. In 3D the distance is averaged between the YZ and XZ projections.

When only one speaker is connected, the module falls back to a direct point-to-point quadratic distance.

The hull is rebuilt only when the speaker positions change. The source-to-hull evaluation is spread over time (around 50 ms per full pass) so that very large source arrays don't stall the audio thread; sources that haven't moved aren't recomputed unless always process is ON.

Settings

on

Master enable. When OFF the module stops processing and freezes its outputs.

source X

Per-source X coordinates, packed as a data array. The number of sources is min(length(source X), length(source Y)), or min(length(source X), length(source Y), length(source Z)) in 3D.

source Y

Per-source Y coordinates. Same length convention as source X.

source Z

Per-source Z coordinates. Read only when ignore z is OFF.

speaker X

Per-speaker X coordinates, packed as a data array. The number of speakers is min(length(speaker X), length(speaker Y)), or min(length(speaker X), length(speaker Y), length(speaker Z)) in 3D. Any change on this input rebuilds the convex hull.

speaker Y

Per-speaker Y coordinates. Triggers a hull rebuild on change.

speaker Z

Per-speaker Z coordinates. Read only when ignore z is OFF. Triggers a hull rebuild on change.

ignore z

When ON, the module works in 2D using only the X and Y coordinates of sources and speakers. When OFF, the Z coordinate is taken into account and the inside test is run on the three planes (XY, YZ, XZ).

is inside

Per-source switch array. 1 when the source is inside the speaker hull, 0 otherwise. Same length as the source arrays.

distance

Per-source data array. 0 when the source is inside the hull, otherwise the shortest distance from the source to the hull outline. In 3D the value is the average of the YZ and XZ projected distances. When a single speaker is connected, this is the straight-line distance from the source to that speaker (quadratic distance, 2D or 3D depending on ignore z).

always process

When ON, the distance evaluation is recomputed on every block, even if the sources haven't changed. Useful when downstream modules expect a steady refresh rate. When OFF (default), the module only refreshes sources that have changed since the previous pass — cheaper but with a small latency on static scenes.

Common Settings

info

show manual

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

Description of the module for internal help purposes only. The description is not displayed in the interface.

ID's

visible only in god mode, see setup-panel-tab-expert.

unique ID

Current private ID for this control used to identify the object.

preset ID

Current private preset ID for this control used for presets.

recreate ID

If you experience difficulties in Polyphonic mode, try to recreate new id(s) with this button.

repair ID s

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.

Object Remote Address

absolute

Absolute remote address. see objects-address.

local

Local to the current patch remote address. see objects-address.

user addr

User defined remote address. see objects-address.

See also

version 7.0.250121

Edit All Pages