M4L || 4DSource | 4DSpace | 4DGlobal

4D M4L - 4DSource

version 1.7 Beta

The header on the left shows the source index and the source color throughout all tabs.

The source index is set by naming the corresponding channel in Live. Names always need to start with an index number followed by a space, and then type any name you want.

The source color is determined by the channel color set in Live. This color is also mirrored in the 4D Monitor.

On the panning tab the basic properties of a source are set: position, dimensions, and orientation.


When global is enabled, then the source is affected by global transformations (ref. 4Dglobal device). When it is disabled, global transformations are ignored.

Example: using a total of 10 sources, you want to move 6 of them at the same time using Global Position, while the other 4 remain static in the space.


A position is set with cartesian coördinates in meters:

X = width = left/right, Y = height = up/down, Z = depth = front/back

In this section you can juxtapose a selection of offsets that result into a source position.

clip : shows the offset that is given by a clip script (does NOT save with the Live set).
offset : this is the general offset, typically used for a static setting or with automation. For the latter option a multiplier of 0.1, 1, or 10 is included to determine the scope and amount of detail when drawing a curve.
rotation : you can rotate a source position around the grid center (only when the source is off-center, otherwise it won't be affected).
invert : this inverts the position per axis.
follow : select another source to use its position as an input for this source. The above offsets can then be applied on top of that.

Example: when another source makes a circle, using this feature you can mirror that movement by simply inverting one or more of the axes.


Dimensions are set with a value in meters for each axis.

clip : shows the offset that is given by a clip script (does NOT save with the Live set).
offset : this is the general offset, typically used for a static setting or with automation.
scale : lets you easily increase or decrease the size of a source, without the need to address the three dimensions separately.

Spatial Dynamics

This is a spatial interpretation of a compressor/expander: the louder the sound, the smaller the source size (or the other way around). The initial dimensions of the source are the largest it can be, so effectively, spatial dynamics only make a source smaller. Especially with live input like vocals, spatial compression produces a controlled sound projection where soft whispers can fill the space while a loud scream remains local to the performer.

mode : off = disabled, comp = compressor, exp = expander.
curve :
min / max : sets the minimal and maximal multiplication.
attack / release : sets the reaction time and decay in milliseconds.


The source orientation is the rotation of a source, based on a certain orientation point. This can be:

static : the orientation is set by the user, or modulated with automation.
path : the orientation follows the trajectory of its movement
center : the source faces the grid center in any position

In 4DSOUND a path is a predetermined movement that is also visualised in the 4D Monitor. A path library is available, which expands over time. (Also drawing your own paths will be possible in the future).


name : select a path from the list.
enable : activates the path (in other words, makes the source move).
size : set the dimensions of the path.
scale : lets you easily increase or decrease the size of a path, without the need to address the three dimensions separately.
rotation : rotate the path per axis.


The phase is the position on the path, where 0 is the start and 1 is the end. Sync lets you determine what is driving the phase:

off: the phase is modulated by the user; with automation or manually.
freq: when frequency is selected then the dial on the right lets you set path speed in Hertz.
bpm: when bpm is selected then the path speed is relative to the bpm in Live, the dial on the right lets you set the beat count it syncs to.
direction: » = forwards, « = backwards, >< = palindrome.
rev: this instantly reverses the direction.
position: this either shows the position (phase) of a synced modulation, or lets you modulate it manually (or with automation).

Modulations are based on three dimensional Lissajous patterns, which occur when a position is modulated specifically (or arbitrary) per axis, regarding waveform, speed and phase.

Important: Modulations only work when the 4D Engine receives a Master Phase, which can be enabled or modulated in the 4Dglobal device (find it on the OSC tab).


enable: enables and disables the modulation.
speed: sets the speed of the modulation, either in Hertz or relative to the bpm in Live.
scale: sets the size of the modulation in its entirety.


All the below parameters are set per axis.

freq: adjusts the speed of a modulation (relative to the speed in the Drive section).
phase: sets the phase of a modulation.
pow: curves the waveform to create different (non-lineair) speed dynamics.
depth: adjusts the modulation depth.
invert: inverts the modulation.


A preset triggers specific modulations settings within the device. For instance lineX produces a straight line along the x-axis, and spiralY creates a spiral going up and down.

Gestures are integrated spatialisation algorithms within the 4D Engine. They perform actions inspired by certain behaviour, generating a variety of movements. For all gestures counts that trig triggers the gesture, and reset sets the produced offset to 0 on all axes.


Shake generates a random change of position within a specified field, and it takes a certain duration to get to that new position.


Spasm generates a series of random position changes with a specified amount of steps, within a specified field, and it takes a certain duration between each step.


Plasma first puts the source at a distance of a certain scale, and then takes a number of steps, with a certain deviation among them to within the given duration finally return to its initial position.

This tab shows a selection of parameters that determine the spatial perception of a source that relate to digital signal processing (as opposed to panning properties for instance).


A modulating delay related to distance, and emphasises the acceleration of a source.

scale: scale the modulating delay time.
smooth: smooth the modulating delay time.


Synthesises the suggestion of distance.

intensity: the further a source, the lower its intensity.
damping: the further a source, the more high frequencies are cut.
diffusion: the further a source, the more reverberant the source becomes.

All three effects can be enabled/disabled and are tweaked with setting a threshold - the distance where the effect reaches its maximum, and a curve which defines the slope between distance=0 and distance=threshold. The curve can be concave (negative value), convex (positive value), or lineair (value of 0).


Emphasises the angle of a source in relation to the grid center.

The Angle Filter is a double comb-filter that modulates feedback times (pitch) as a source moves. When subtle, it resembles filtering by the ear shell. When exaggerated, it has a very pronounced characteristic.

enable: activates the effect.
color: adjusts the characteristic.
intensity: sets the overall intensity of the filter.
gain: boosts the feedback chain.
drywet: crossover mix between the dry and filtered sound.


Emphasises the vertical direction.

The elevation filter synthesises the suggestion of a source being up in the air or underneath the ground. It's a combination of a low-cut and a high-cut filter. When a source moves below y=0 (below the virtual floor), then high frequencies are cut, the lower the source the more. When a source moves above, then low frequencies are cut, the higher the more.

enable: activates the effect.
thresholds: sets the distance for when the filtering is maximum, separately for above and below.
contrast: adjusts the difference in cut of frequencies between the high-cut and low-cut filter. When contrast=0, then the filter is not effectuated.
invert: swaps the two filters for above and below.

A complex multi feedback delay effect that creates a diffuse sound image, from subtle reverberation to surreal particle clouds.

The core of Spatial Delay is a feedback network of modulating delay lines, represented by a virtual mesh (see 4D Monitor) that visualises the spatial implementation: a shape with a certain size and other properties determine the behaviour of the effect.

more in depth info soon


off: deactivates the effect.
rand: generates a random delay pattern (a new pattern can be triggered with the 'pattern' button that appears under Delay in this mode).
grid: produces an interactive delay pattern based on the movement of the source in relation to a virtual grid.


scale: scales the delay times.
feedback: adjusts the feedback of the delay network.
smooth: sets the smoothing of the modulating delays.
drywet: a crossover between the original source output and the modified sound.
noise modulation: on top of the delay patterns a noise modulation can be added, with depth defining its intensity, and freq the modulation speed.

Note: Spatial Delay acts like a 'send', when the effect is switched of, feedback behaviour will continue until it fades out.

The way the virtual source is projected within, and from outside onto the speaker grid.

This is a more advanced collection of parameters that generally are used only in special circumstances.


orientation center: the anchor position for movement related parameters. When you rotate a source using rotation (on the Panning tab onder position), it revolves around the orientation center.
mode: 'perspective' means the source projection becomes smaller when further away, 'orthogonal' means the projection size is not affected by the source distance. Note: this mode is independent from other distance parameters.
articulation: adjusts the intensity curve between speakers to create a staccato to legato effect regarding moving sources.
vantage point: the location of the virtual observer to calculate the projection, but also distance and angles. 'global cntr' means it mirrors the global center (ref. 4Dglobal device), 'orient center' means it mirrors the orientation center, and 'custom' means it is defined by the user.


boost: generates an increasing boost to the sub spatialisation, from off = regular panning, to 3 all subs are always on (no panning).
elevation reduction: this relates to the Elevation Filter and makes the effect more rigid; above a certain threshold the subs are not active at all.

Send processed source audio back from the 4D Engine to Live.

Sends are typically used in combination with the 4Dspace device, to process reverb over the spatialised sound (as opposed to the non-spatialised sound within Live).

Live receives sends 1 to 4 on channels 58 to 61 (this can be adjusted, ref. 4D Engine XML setup).

Store presets and recall them instantly from the Live sequencer.

The instant is a preset management system that allows to store device settings, and recall them from a Live clip or with a midi note. For an extensive explanation of the instant see the 4D Instant Guide. Here we treat only the functions on this particular device tab.


A preset refers to settings of a single device.
All presets are automatically shared among all 4Dsource devices within a Live set.

select preset menu: lists the stored presets in order to select one (selecting does not load the preset.
load selected: click this to load the selected preset.
remove selected: remove the selected preset (Note: this is irreversible!).
preset file: shows the name of the currently active preset file (see also 4Dglobal device).


preset name text entry: here you can type the name you want to give to a preset.
store in next slot: store the current device settings under the name given in the text box.
update selected: update the preset selected in the 'select preset menu' under the same name, with the current device settings.
replace selected: replace the preset selected in the 'select preset menu', the old preset will be removed and the current the device settings will be saved under the name given in the text box.


view editor: opens a window that shows all presets and editable preset values.
save edits: store edits made in the preset editor.

This tab is mainly used by developers for debugging. It is also useful for user reports.

OSC enable: enables/disables OSC output for the device.
data rate: sets the rate at which OSC data is sent.
output values: output all the current parameter settings of this device over OSC.
reset values: reset all parameter settings in this device.
version: shows the 4D M4L version of this device.
osc to engine:
osc to lemur:
osc in: monitors the incoming OSC data addressed to this device.
LOG enable: enables/disables the printing of OSC I/O in the 'OSC print log'.
clear: clears the 'OSC print log'.
mon: after selecting a parameter in the 'OSC print log', clicking this lets you monitor that single OSC message.
OSC print log: a menu based OSC logger.
select param: manually set a single paramater to monitor by selecting the I/O source, and typing the OSC-tag in the text entry (see also OSC reference).
rate: shows the rate at which the selected parameter is sending OSC (for measuring performance purposes).