Spatializers#

Overview#

SATIE provides two types of spatializers: amplitude panning-based spatializers (Stereophonic, Quadrophonic, 2D/3D VBAP) and Higher-order Ambisonics (HOA) up to the 3rd order.

Example amplitude panning-based spatializers#

Name

Number of channels

Description

cube

8

8 channel 3D layout

domeVBAP

31

31 channel speaker dome (SAT)

iaiaVBAP

24

24 channel speaker dome (IAIA)

quadpanaz

4

4 channel 2D layout

stereoListener

2

Stereo panner

VBAP1474

16

16 channel speaker dome (IEM)

Example HOA plugins#

HOA plugins make use the SC-HOA quark by Florian Grond.

Example HOA spatializers#

Name

Description

HOABinaural

Binaural decoder based on the HOABinaural UGen

Example HOA processing plugins#

Besides ambisonic spatializers, HOA plugins also include processors specific for b-format signals.

Name

Description

BeamCardio

Filters along a specifed direction (hyper cardioid pattern)

BeamDirac

Filters along a specifed direction (truncated Dirac)

Mirror

Mirror soundfield

Rotate

Rotate the sound field in 3 axes

RotateAz

Rotation around the z axis

Subwoofers#

Subwoofer channels can be added by way of using a single-channel “spatializer” called monoSpat and adding a post-processor called sub.

So we can create a 3 channel setup for 2.1:

(
~satieConfiguration = SatieConfiguration.new(s, [\stereoListener, \monoSpat], outBusIndex: [0, 2], minOutputBusChannels: 3);
~satie = Satie.new(~satieConfiguration);
~satie.boot();
s.meter;
)

Instantiate a sound source and a postprocessor attached to the second spatializer and indexed on the output channel 3:

~satie.makeSourceInstance(\noizy, \default, \default);
~satie.replacePostProcessor([\sub], 2, 1);

Play the source

~satie.groupInstances[\default][\noizy].set(\gainDB, -30, \aziDeg, 0, \eleDeg, 10)

Add subwoofer channel:

~satie.postProcessors[\post_proc_1].set(\sub_gainDB, -30, \sub_lpHz, 60);