This class is used to configure SATIE. It also provides access to its server's options. The initial configuration must be done prior to booting SATIE. The table below explains the order of setting of parameters:
(before SATIE)
-server | configured via constructor |
-listeningFormat | configured via constructor |
-numAudioAux | configured via constructor |
-outBusIndex | configured via constructor |
-ambiOrders | configured via constructor |
-minOutputBusChannels | configured via constructor |
-userPluginsDir | configured via constructor |
(still before SATIE)
-hoaEncoderType | configured by user on the SatieConfguration instance |
-generateSynthdefs | configured by user on the SatieConfguration instance |
(before or after instantiating SATIE)
-debug | configured by user on the SatieConfguration instance |
-orientationOffsetDeg | configured by user on the SatieConfguration instance or via OSC |
Create a new configuration.
server |
The server instance. The server should not be booted. SATIE can be used with either |
listeningFormat |
An array of listening formats. The default is |
numAudioAux |
A number of auxiliary channels. Auxiliary channels are used for routing audio signals to effects, especially, but can have other uses. |
outBusIndex |
An array of output channel offset values for the |
ambiOrders |
A list of Ambisonic orders. Currently, SATIE makes use of the SC-HOA quark and can be used up to order 3. You can specify multiple ambisonic orders in this list. |
minOutputBusChannels |
The minimum number of server outputs channels. The default is NOTE: Upon initialization, the number of output busses/channels needed is calculated automatically based on
\listeningFormat . The actual number of physical outputs will be the larger number between the calculated sum and this option.NOTE: The user must take into account the number of channels required for \ambiOrders . SATIE does not calculate this number automatically. If there are any ambiOrders specified, the user must add that sum to any other channels. |
userPluginsDir |
An optional path to a user-provided directory of SATIE plugins. The default value is
|
A SatieConfiguration.
Create a new configuration from a JSON file
path |
A path to a JSON file containing a SATIE configuration. See example below for a description of such a JSON configuration file. |
A SatieConfiguration.
Create a new configuration from stringified JSON
string |
Stringified JSON containing a SATIE configuration. See example below for a description of such a JSON configuration file. |
A SatieConfiguration.
Turns on debugging for this SatieConfiguration instance. Will post messages while SATIE boots.
Current server
Server instance
An Array of Symbols corresponding to the spatializer plugin names that SATIE was configured to use.
Array
An Array of Bus: *audio objects corresponding to each of the configured listeningFormats
. Spatializers output their signal to their bus, and the \satieOutput
synth reads from these buses and routes their signals to the hardware outputs.
Array
An array of Bus: *audio objects corresponding to each of the configured #ambiOrders
. Ambisonic synths output their order N
B-format signal to the bus that corresponds to that order. Ambisonic post-processors reads from these buses and route their signals to the hardware outputs.
Array
Sets the type of Higher-order Ambisonics encoding to be used.
type |
A |
This setting has an effect on how SynthDefs for source
type plugins are generated when using Ambisonics. There are three possible choices: \wave
, \harmonic
, and \lebedev50
. The default hoaEncoderType
is \wave
. It will use the HOAEncoder
UGen to encode a source into an Ambisonic B-format. The encoder type called \harmonic
makes use of HOASphericalHarmonics
to get its source into B-format. The \harmonic
encoder is much more CPU efficient, whereas the \wave
encoder is more configurable. An alternative approach to encoding is used by the \lebedev50
enocoder type. It takes a mono source, encodes it into a VBAP 50 point Lebedev grid, and then encodes the signal into B-format using HOAEncLebedev50
. This approach has the avantage of allowing the source to be panned using the VBAP
UGen rather than the Ambisonic UGens from SC-HOA
.
Boolean. Tells the SATIE server whether it should generate audio plugins SynthDefs automatically upon boot. True by default. If set to false, the user needs to run Satie: -makeSynthDef by hand for each desired plugin.
Loads a SATIE plugin directory
path |
A String representing the path to a plugin directory |
The plugin directory must be structured appropriately. See SatiePlugin
Instance variable holds audio plugins
Dictionary
Instance variable for effects plugins.
Dictionary
Instance variable hold spatializer plugins
Dictionary
Instance variable holds mapper plugins.
Dictionary
Absolute path to the root of SATIE's source code
String
Absolute path to SATIE's user support directory
Linux | ~/.local/share/satie/ |
macOS | ~/Library/Application Support/satie/ |
Windows | C:\Users\username\AppData\Local\satie\ |
String
A SatieConfiguration can be created from a JSON file that describes a configuration. This is done via the class method SatieConfiguration: *fromJsonFile. An example JSON configuration is shown below.
The entire configuration is stored under the key called "satie_configuration"
. The nested JSON object that it contains has five keys: server
, listeningFormat
, outBusIndex
, numAudioAux
, ambiOrders
, and minOutputBusChannels
. The values that must be provided are listed below.
null
or a JSON object { }
null
or a Stringnull
or a BooleanSee SatieConfiguration: *new for more information on the above configuration parameters.