Satie:
Filter:
SATIE/Classes (extension) | Libraries

Satie
ExtensionExtension

The main SATIE class

Description

This is the main entry class into the SATIE audio rendering system. It relies on SatieConfiguration

Class Methods

.new

Creates a new Satie renderer

Arguments:

satieConfiguration

An instance of SatieConfiguration. Leaving this argument Nil will create a configuration object interally by calling SatieConfiguration: *new.

execFile

Optional. (String): path to a .scd file to be executed immediately after SATIE has booted.

Instance Methods

.status

Returns SATIE's current status as a Symbol. There are 4 possible statuses:

\initialized
SATIE's initial status after creation. Status returns to \initialized after SATIE has quit.
\booting
SATIE's status when booting is in progress.
\running
SATIE's status when booting has completed and SATIE is ready to be used.
\quitting
SATIE's status when quitting is in progress.

.config

The SatieConfiguration object used by an instance of Satie. Allows access to settings and can be used to alter configurations prior to -boot.

.boot

The primary method for starting SATIE. Calls Server: -boot on the server and initializes SATIE.

.booted

Returns true if SATIE is booted and ready to be used, false otherwise.

.waitForBoot

Evaluate onComplete as soon as SATIE is booted and ready. This method will wait for booting to finish, or boot SATIE then wait if booting is not already in progress. If SATIE is already booted, it will evaluate the onComplete function immediately. See Server: -waitForBoot.

Arguments:

onComplete

A function to be executed after SATIE has finished booting.

.reboot

Quits and then immediately reboots SATIE. If SATIE was not booted, this method will call Satie: -boot.

.reconfigure

Configure SATIE to use a different SatieConfiguration. If SATIE is booted, calling reconfigure will re-init SATIE using the new configuration and then reboot.

Arguments:

configuration

An instance of SatieConfiguration that will be used as the new configuration.

.reconfigureFromJsonFile

Similar to Satie: -reconfigure, but instead of passing a SatieConfiguration directly, this method takes a path to a JSON file as argument.

Arguments:

path

A path to a JSON file that contains a valid SATIE configuration. For an example, see SatieConfiguration: JSON Configuration.

.reconfigureFromJsonString

Similar to Satie: -reconfigure, but instead of passing a SatieConfiguration directly, this method takes stringified JSON as an argument.

Arguments:

string

Stringified JSON that contains a valid SATIE configuration. For an example, see SatieConfiguration: JSON Configuration.

.makeInstance

Instantiate a compiled synthdef (audio source or effect) and insert a reference into the groupInstances dictionary.

Arguments:

name

Symbol: a unique name by which the audio source or effect will be recognizable by SATIE

synthDefName

Symbol: the name of the synth definition (see Satie: -makeSynthDef below)

group

Symbol: the name of the group to place the audio source or effect in.

synthArgs

Array: Synth properties to be taken into account at instantiation time. All settable synth properties can be manipulated via the standard set message provided by Synth instance.

Returns:

.makeSourceInstance

A wrapper around Satie: -makeInstance to explicitly create an audio source

Returns:

.makeFxInstance

A wrapper around Satie: -makeInstance to explicitly create an audio effect

Returns:

.set

A convenience method to set instances and groups' control parameters. This method will try to identify if the instance reffers to a group or instance and act accordingly.

Arguments:

instance

Name of the instance. If group, it will set the control parameters to the entire group.

control

an array with the control parameters, writen in key/value pairs.

group

Optional argument to specify the group.

.execFile

Holds a path to the file that is exectud upon SATIE boot.

.replacePostProcessor

Replaces post-processor pipeline at the output of the spatializer.

Arguments:

pipeline

a list of symbols representing the post-processor names. See SatiePlugins and Plugins for more information on SATIE plugins

outputIndex

Output channel index from which this post-processor will take effect, default 0

spatializerNumber

Index number of the spatializer to which the post-process will be attached. Default 0

synthArgs

An array of arguments, if any

.effects

a dictionary containing effects plugins definitions

Returns:

.synthDescLib

Returns:

a SynthDescLib containing the SynthDefs generated by Satie.

.cloneProcess

Clone a process

Arguments:

processName

The name of the process

Returns:

a clone of the process

(see an example of processes in Processes)

.makeKamikaze

Instantiate a Synth that frees itself when it becomes silent. Makes use of DetectSilence.

Arguments:

synthDefName

Symbol: the name of the synth definition (see Satie: -makeSynthDef)

group

Symbol: the name of the group to place the audio source or effect in.

synthArgs

Array: Synth properties to be taken into account at instantiation time. All settable synth properties can be manipulated via the standard set message provided by Synth instance.

Returns:

.makeSatieGroup

A SATIE group is a dictionary that holds references to instantiated audio objects. It is particularly useful for changing properties on many objects with one message.

Arguments:

name

Symbol: the group's name

addAction

defines where this group will placed within the chain of existing groups.

Returns:

.cleanInstance

Remove the synth instance (audio source or effect)

Arguments:

name

Symbol: name of the instance

group

Symbol: from which group

This method does not return.

.spat

Instance variable that holds the name of the curently used spatializer.

Returns:

Symbol

.makeProcess

Creates a process. See Processes for an example about processes.

Arguments:

processName

Name of process as Symbol. See Processes for an example about processes.

env

String: the Environment source (see Processes)

Returns:

.processes

A dictionary of processes. Read only.

Returns:

.groups

A dictionary of groups. Read only.

Returns:

.groupInstances

A dictionary of instances, per group. Read only.

Returns:

.loadSample

Loads an audio sample into a Buffer and stores it inside the Satie: -audioSamples dictionary.

Arguments:

name

Symbol: the chosen name for this Buffer.

path

String: the path of the audio sample file to be loaded.

Discussion:

.audioSamples

A dictionary of audio sample Buffers. Audio samples loaded into Satie via Satie: -loadSample will be stored here.

.killSatieGroup

Remove a SATIE group.

Arguments:

name

Symbol: the name of the group.

.pauseInstance

Stop processing an instance but do not destroy it (sends it release() message).

Arguments:

name

Symbol: the name of the instance.

group

Symbol: the name of the group.

This method does not return.

.debug

Turn on debug posting for SATIE

.enableHeartbeat

Enables SATIE's heartbeat message which indicates that SATIE is booted. The OSC message /satie.heartbeat is sent to SATIE's responder address twice a second. This message is triggered whenever SATIE's Server sends out a /status.reply message after SATIE has finished booting.

Arguments:

bool

A Boolean value which turns this feature On/Off. SATIE defaults to having it turned Off.

.makeSynthDef

Calls SatieFactory: makeSynthDef method and creates references to compiled SynthDefs for use with the configured spatializers.

Arguments:

name

(Symbol) The SynthDef's unique name on the server

srcName

(Symbol) The name of the source (see Plugins)

srcPreToBusses

(Array) Passed to pre-process busses (see SatieFactory)

srcPostToBusses

(Array) Passed to post-process busses (see SatieFactory)

srcPreMonitorFuncsArray

(Array) Analysis/Monitoring plugins to be wrapped in the SynthDef (see SatieFactory and Plugins)

spatSymbolArray

(Array) Passed to spatialiser array (see SatieFactory)

firstOutputIndexes

(Array) A list of output bus objects or integer channel indexes for each spatSymbolArray value (see SatieFactory)

paramsMapper

(Array) Parameter mapper plugins (see SatieFactory)

synthArgs

Custom synth arguments passed to SatieFactory

.makeAmbi

Calls SatieFactory: makeAmbi method and creates references to compiled SynthDefs for use with ambisonic spatialization methods.

Arguments:

name

(Symbol) The SynthDef's unique name on the server

srcName

(Symbol) The name of the source (see Plugins)

preBusArray

(Array) Passed to pre-process busses

postBusArray

(Array) Passed to post-process busses

srcPreMonitorFuncsArray

(Array) Analysis/Monitoring plugins to be wrapped in the SynthDef (see Plugins)

ambiOrder

(int) Ambisonic Order

ambiEffectPipeline

(Array) A pipeline of ambisonic effects

ambiBus

(Bus) An audio Bus on which to output the Ambisonic B-format signal. The Bus must have the correct number of channels for the specified ambiOrder.

paramsMapper

(Array) Parameter mapper plugins

synthArgs

Custom synth arguments passed to SatieFactory

.makeAmbiFromMono

Calls SatieFactory: makeAmbiFromMono method and creates references to compiled SynthDefs for use with ambisonic spatialization methods.

Arguments:

name

(Symbol) The SynthDef's unique name on the server

srcName

(Symbol) The name of the source (see Plugins)

preBusArray

(Array) Passed to pre-process busses

postBusArray

(Array) Passed to post-process busses

srcPreMonitorFuncsArray

(Array) Analysis/Monitoring plugins to be wrapped in the SynthDef (see Plugins)

hoaEncoderType

(Symbol) The HOA encoder type to be used by this specific SynthDef. Can be either \wave or \harmonic. If this argument is left nil, the encoder type that is set in Satie's configuration will be used. See SatieConfiguration: -hoaEncoderType for more information.

ambiOrder

(int) Ambisonic Order

ambiEffectPipeline

(Array) A pipeline of ambisonic effects

ambiBus

(Bus) An audio Bus on which to output the Ambisonic B-format signal. The Bus must have the correct number of channels for the specified ambiOrder.

paramsMapper

(Array) Parameter mapper plugins

synthArgs

Custom synth arguments passed to SatieFactory

.removeProcess

Remove a process from the pipeline and clear its references.

Arguments:

processName

(Symbol) The name (id) of the process

Examples

Post-processor example