Space Control User Manual
Space Control User Manual
Space Control User Manual
User Manual
Version 1.0.1
2 Quick Start 8
2.1 Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Interfaces 10
3.1 Timeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Mixer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 Event List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5 Breakout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6 Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5 Tips 30
6 Acknowledgments 31
7 Disclaimer 32
1 Introduction
Space Control is an interactive, real-time application for multitrack sound spatialization.
Based on a concept by and designed in consultation with João Pedro Oliveira, it was
developed between 2020 and 2022 by Raphael Radna. Space Control is implemented as a
Max/MSP standalone application for Mac and Windows computers, and makes extensive
use of custom Javascript extensions and external objects written in C++. Key features
include:
• spatialization using up to 128 sources and between 4 and 24 output channels;
• intuitive, easily learned graphical user interface;
• real-time playback, metering, and editing;
• offline (faster than realtime) export in multi-mono or interleaved formats;
• virtual mixer for balancing sources in the spatial mix;
• per-source volume automation;
• waveform zoom functionality enabling spatialization on the microsound timescale;
• algorithmic transformations of spatial trajectories;
• bass management option with adjustable subwoofer level and crossover frequency;
• scalable interface with 4 magnification levels;
• and the ability to save and load user project files.
Space Control simplifies the process of composing spatial music, encouraging a focus
on creative rather than technical concerns. The user defines the spatiotemporal movement
of each source using two correlated graphical interface modules: a timeline superimposed
on the source waveform, for setting points in time; and a circular representation of the 2D
spatial field, for assigning corresponding spatial positions. The spatial trajectory appears
as a chain of points, each synchronized with a time in the input file, that can be edited
either directly or programmatically.
During playback, a source travels along this path, reaching each subsequent point at
its specified time, with the intermediary positions attained through linear interpolation.
Adjustments are facilitated by real-time monitoring and editing, and a mixer that allows
changes to be made to the relative balance of the sources, among other features.
A multichannel mix can then be exported, which accounts for the movement, amplitude
envelope, and mix parameters of each source; and with channels corresponding to speaker
locations in the user-defined loudspeaker layout. Common layouts are easily selected from
a collection of presets, with custom configurations also supported. Mixes can contain
between 4 and 24 output channels.
3
1.1 Spatialization Method
Space Control implements Amplitude Panning between Stereo Pairs (“APbSP”), a spatial-
ization algorithm originally used in spatium.panning, part of the Spatium spatialization
tools created by Rui Penha.1
In APbSP, each source is distributed to between 1 and 4 speakers, depending on its
location. First, the angular direction (azimuth) of the source is used to determine its
balance between the 2 speakers nearest to it via equal-power panning. The distance from
the source to the center of the spatial field (radius) is then used as the parameter of a
second equal-power panning between this pair of speakers, and those nearest the position
reflected across the radius perpendicular to the source.
1
R. Penha and J. Oliveira, “Spatium, tools for sound spatialization,” in Proceedings of the Sound and
Music Computing Conference 2013, Stockholm, Sweden, 2013, pp. 660–667.
4
In this case, select Cancel and then open the System Preferences. Navigate to the “General”
tab of the “Security & Privacy” pane, and press the Open Anyway button near the lower-right
corner of the window:
Upon the next attempt to launch Space Control, the system will display a similar message,
but with the option to run the application. Select Open and Space Control will start up:
5
On some systems, a slightly different message may be displayed, and the Open Anyway
button may not appear in the System Preferences:
In this case, the “quarantine” attribute must be removed from the application executable.
This is done by issuing the following command in the Terminal:
6
1.2.2 Windows
The Windows version of Space Control is built and tested on Windows 10 (64-bit).
To install, simply extract the contents of the .zip file to a directory of your choice. To
run Space Control, double click Space Control.exe.
1.0.0
7
2 Quick Start
2.1 Video
Click here to watch the Space Control Quick Start Video on YouTube.
2.2 Guide
Follow these instructions to start using Space Control immediately:
1. Load an audio file (.wav or .aiff) by clicking the open button on channel strip 1
(outlined in red), or via drag-and-drop onto the Timeline module (outlined in blue):
2. Click and drag in the lane above the waveform timeline (outlined in red) to create
time points for spatialization and synchronize them with the loaded audio file:
Use the zoom slider (outlined in blue) and the waveform navigator (outlined in
green) to focus on a section of the waveform and work at smaller time scales. See
section 3.1 for more about the Timeline module.
8
3. Click and drag the points that appear in the Space module (outlined in red) to set
corresponding spatial coordinates for the time points created in the previous step:
4. Press Space to play the entire mix from the beginning, + Space
to play just the section shown in the waveform timeline, and + L to enable or
disable looping.
9
3 Interfaces
This section describes the interface modules that make up Space Control’s main window,
as well as the Event List, Breakout, and Preference windows. The main window is divided
into 3 modules that together provide the primary spatialization functionality:
1. the Timeline module, for defining time points relative to an audio source;
2. the Space module, for assigning spatial locations to the time points;
3. and the Mixer module, for adjusting the balance between multiple sources.
The Space Control main application window, consisting of the Timeline (1), Space (2), and Mixer
(3) interface modules, as it appears when the program is first opened.
The Event List, Breakout, and Preference windows provide additional means of visualizing
and refining the spatial parameters, and specifying application settings, respectively.
3.1 Timeline
The Timeline module displays the waveform of the sound file loaded on the selected track.
It consists of:
10
2. a waveform navigator that indicates the portion of the source visible in the waveform
timeline, and allows it to be changed;
3. and the zoom slider, for adjusting the length of the section displayed in the waveform
timeline.
The Timeline module, consisting of the waveform timeline, waveform navigator, and zoom slider.
The time points for spatialization are defined using the waveform timeline (#1 in the
figure above):
• click in the lane above the waveform timeline to create new time points;
There can never be fewer than 2 points, corresponding to the start and end of the sound
file. Selected points are drawn with white accents.
Additionally, an automation tool for modifying the amplitude envelope of the source
is superimposed on the waveform timeline. By default, this is a horizontal line at the
maximum level, indicating no amplitude shaping. Its range is -70dB to ±0dB and nonlinear,
with a midpoint of -12dB. Envelope points are controlled similarly to time points:
The waveform navigator (#2 in the figure above) displays an overview of the waveform
in its entirety. The selected region is highlighted with a translucent rectangle. Clicking or
dragging in the waveform navigator changes the start position of the selected region: the
section shown in the waveform timeline. During playback, position indicators are drawn
in both the waveform timeline and waveform navigator.
The narrow vertical slider (#3 in the figure above) controls the waveform zoom level.
When the slider is at the bottom of its range, the entirety of the waveform is visible in
11
the display. As it is moved upwards, the waveform timeline zooms in, focusing on an
increasingly small section of the waveform. At the top of the slider range, the selection
becomes quite short, typically on the order of a few milliseconds. Hold to adjust the
slider in finer increments.
Audio files can be loaded via drag-and-drop onto the Timeline module. A mono file
will automatically be opened on the selected track. If an attempt is made to import a
file with 2 or more channels, Space Control prompts the user to decide if the additional
channels should also be loaded:
If Yes is selected, all channels in the file are loaded, beginning on the selected track and
incrementing the track for each channel. If No is selected, only the first channel of the
file is loaded. Cancel stops the file load operation.
Multiple files can be loaded at a time via drag-and-drop. In this case, the files are
loaded on the selected and following tracks, as described above, until the track limit is
reached.
3.2 Space
The Space module is a circular representation of the spatial field. It displays both the
selected source’s spatial trajectory, and the speaker layout used for playback and export.
The spatial trajectory is a chain of numbered boxes representing a sequence of positions
in space. The points are ordered according to the chronological sequence defined in the
Timeline module, and are temporally synchronized with their corresponding time points.
The methods of manipulating the spatial points are the same as those of the time
points, and in fact, the point selection is shared between the Space and Timeline modules:
12
One difference is that points cannot be added in the Space module; clicking on an
empty location instead clears the selection. Additionally, ctrl + dragging one or more
points “snaps” them to precise locations in the spatial field. Space points can snap to:
The Space module, comprising the spatial field, the spatial path of the
selected source, and the speaker layout. The points were positioned in
precise locations using ctrl .
The boxes around the perimeter of the spatial field represent possible speaker positions.
Active speakers are highlighted with the color of the selected track, and enumerated using
their corresponding output channel numbers.
13
• Click on a vacant speaker position to add a speaker there;
3.3 Mixer
The Mixer module provides a virtual mixer for balancing the individual sources loaded
into Space Control. The number of mixer channels is equal to the number of tracks (16 by
default). The settings of the delay, mute, solo, and gain parameters affect both playback
and the exported mix.
The Mixer module. Up to 10 channels are visible at a time, with the rest
accessible via horizontal scrolling.
All channel strips offer identical functionality. Their controls are as follows:
14
Open Open a file select dialog for loading an audio source.
Initialize the channel. + click to reset the ampli-
Clear
tude envelope and spatiotemporal path only.
Retain the path in the background of the Space module
with partial transparency, as shown here. + click
Keep
to toggle for all tracks. Enabling keep for many tracks
may cause the application to slow down.
Open a dedicated Space module editor window for the
Breakout
channel (see section 3.5).
Define a temporal offset in milliseconds relative to
the beginning of the mix after which the source will
Delay
start playing. + drag to adjust in finer increments.
Once clicked, values can be entered with the keyboard.
Mute Mute the source. + click to toggle for all tracks.
Solo Solo the source. + click to toggle for all tracks.
Specify the level of the source in decibels between -70
Gain and +12dB. + drag to adjust in finer increments.
Once clicked, values can be entered with the keyboard.
Below the Mixer module are two meter banks that consolidate the meters for all input
sources and output channels, respectively. The input meter bank adapts to the maximum
number of tracks, as set in the Preferences window, and the output meter adapts to the
number of active speakers. All metering is post-fader, and uses a logarithmic scale.
Additionally, the or keys decrement or increment the selected track.
15
The Space module, with 3 spatial paths drawn in the background by
activating Keep in their corresponding mixer channels.
16
3.4 Event List
The Event List window presents the spatiotemporal path data of the selected track in an
editable tabular format. The columns in the table are as follows:
• “Time” is a normalized value from [0, 1], corresponding to the position of the point
in the Timeline module, where 0 is the start of the audio source and 1 is its end.
The time range of each point is bound by the time values of its neighbors. The
endpoints have fixed values of 0 and 1.
• “Azimuth” refers to the direction of the source, and is specified as an angle in degrees
on the range [-180, 180] where 0 is the front of the spatial field.
• “Radius” is a distance on the range [0, 1]. A value of 0 places a point at the center
of the spatial field, and a value of 1 places it on the perimeter.
The time, azimuth, and radius values can be changed by clicking + dragging vertically
with the mouse. Additionally, once one of these fields has been clicked, a value can be
entered with the keyboard. Changes made in the Event List window are immediately
visible in the Timeline or Space modules, and vice versa.
The Event List window can be accessed from Window Open/Close Event List , or with
+ 2 .
17
3.5 Breakout
Each channel in Space Control has a dedicated, miniature Space module called a Breakout
window. The Breakout window for a particular source is opened by activating the Breakout
button on its corresponding channel strip. Interacting with a Breakout window is largely
the same as interacting with the Space module, with the following exceptions:
• selected points are only highlighted in the primary channel’s Breakout window,
though group selection and adjustment are still possible in all Breakouts;
• only changes made in the Breakout window of the primary channel are registered in
the undo history;
• position indicators are not displayed in the Breakout windows during playback;
• the speakers are not displayed, and no changes can be made to the speaker layout,
though the radial reference lines corresponding to active speaker positions are visible.
A Breakout window.
The Breakout windows can be set to 1 of 3 sizes in the Preferences window. Additionally,
the Breakout windows for all tracks can be opened in a grid formation from Window
Open/Close Breakouts , or with + 3 .
3.6 Preferences
The Preferences window is accessed from Space Control Preferences . It presents global
options related to the operation of Space Control organized across 4 pages: General,
Audio, Bass Management, and Output Assignments.
18
The options on the General page are as follows:
Application Zoom 1x, 1.25x, 1.5x, A factor by which the entire Space Control
2x interface will be magnified.
Breakout Size small, medium, The relative size of the Breakout windows.
large
Number of Tracks [1, 128] The maximum number of sources in the pro-
gram session. Using a greater number of
tracks increases the CPU load.
Export Mode multi-mono, The format of the export mix: either multi-
interleaved mono (n mono .wav files, one per output
channel) or interleaved (a single multichannel
.wav file with n channels).
Export Bit Depth 16, 24 The bit depth of the exported audio file(s).
Output Gain [-70dB, +12dB] A master gain control for the entire mix.
19
The options on the Audio page are as follows:
Name Description
20
The options on the Bass Management page are as follows:
21
If the Bass Management option is active, the peak level of the subwoofer channel appears
in the output meter bank. It is distinguished by its orange color.
The Output Assignments page provides a matrix for assigning the 24 logical outputs of
Space Control (corresponding to the active speaker numbers in the Space module) to the
outputs of the audio interface selected on the Audio page. Assignments can be repeated,
so it is possible to map a greater number of logical channels to a lesser number of outputs.
22
4 Menus and Actions
4.1 Menus
This section lists the items in each of the application-specific Space Control menus, gives
their keyboard shortcuts (if applicable), and describes their functions.
4.1.2 File
The File menu primarily offers functionality related to saving, loading, and initializing
the program session.
23
4.1.3 Edit
The Edit menu allows some standard processes to be applied to the selected spatiotemporal
point(s).
4.1.4 Audio
The Audio menu provides access to certain functions for controlling the mixer and playback.
Play Mix Space Start playback of the entire mix from the begin-
ning, or stop playback.
Play Selection + Start playback of the selected section of the mix,
Space or stop playback. All tracks are synchronized to
the selection, accounting for any temporal offsets
defined using channel Delay parameters.
24
Play from Selection + + Start playback from the selected section of the
Space 2
mix, or stop playback. Playback continues beyond
the end of the selection until the end of the mix.
Loop + L Enable or disable looping the mix or selection
during playback.
Export Mix + E Open a file select dialog for exporting the current
session as either one or several audio files (depend-
ing on the Export Mode setting), then initiate an
offline render and save the mix to disk. The time
required to complete the operation is a product
of the number of tracks used, the durations of the
sources, and number of speakers/output channels.
4.1.5 Transform
The Transform menu enables algorithmic transformations of the selected spatial point(s).
Transformations requiring variable parameters summon a dialog box prompting the user
for input. Parameters of an invalid form are set to 0. Successful transformations register
in the undo history.
Repeat Last Transform + R Repeat the last transform using the same param-
eters (if applicable). This item is disabled until
the first time a Transform menu item is invoked.
Translate – Translate the selection using 2 values representing
Cartesian offsets in the X and Y dimensions.
Rotate – Rotate the selection by an angle in degrees.
Scale – Scale a selection relative to its center by a scaling
factor. Values between 0 and 1 contract the se-
lection, and values greater than 1 expand it. The
operation has no effect on a single-point selection.
Invert X – Reflect the selection across the X axis.
Invert Y – Reflect the selection across the Y axis.
Retrograde – Reverse the order of the selected spatial points.
The operation has no effect on a single-point se-
lection.
Randomize – Randomize the position of the selection using 2
values representing bipolar Cartesian offset max-
ima in the X and Y dimensions.
2
For technical reasons, the Play from Selection shortcut is ctrl + Space on Windows.
25
The parameter entry prompt for the Rotate trans-
formation.
4.1.6 Layout
The Layout menu offers several common speaker layouts as presets, and some simple
means of transforming the active speaker positions.
26
4.1.7 Window
The Window menu provides access to certain of Space Control’s auxiliary windows.
4.1.8 Help
The Help menu provides a search bar for locating and invoking items in any of the other
menus.
4.2 Actions
This section summarizes the actions available for interacting with certain components in
the main window. This information, largely repeated elsewhere in the manual, is compiled
here for ease of reference.
4.2.1 Timeline
The lane above the waveform timeline:
Action Description
27
The waveform timeline:
Action Description
Action Description
4.2.2 Space
The spatialization area:
Action Description
Action Description
3
This shortcut is + ctrl + Z on Windows, to avoid conflict with the Edit Undo shortcut.
28
4.2.3 Mixer
The Select button:
Action Description
Action Description
Action Description
Action Description
29
5 Tips
This section compiles some details, insights, and suggestions about using Space Control
that may not be immediately obvious.
• If a path contains more than 2 points, a timeline endpoint can be deleted; the
nearest point becomes the new endpoint.
• To specify a stationary source, use a path consisting of 2 points located in the same
position in the spatial field.
• If consecutive points are located at the center of the spatial field (i.e., radius = 0),
but have different azimuths, the source will rotate between them. Custom azimuth
values are most directly specified in the Event List window.
• To create a mix with fewer than 4 channels, use a quadraphonic layout and either
discard the extra channels, or mix them into fewer channels.
• The path of one channel of a stereo audio source can be duplicated and inverted
across the Y axis to yield a symmetrical path for the other channel.
• The operations in the Transform menu need not be applied to an entire path.
Interesting results can be obtained by, for example, performing a Retrograde on
only a few points.
• The Transform menu operations as a whole provide means of creating subtle varia-
tions of a spatial path. Applying slightly different paths to slightly delayed copies
of the same source can enhance the perceived density of the spatial image, a phe-
nomenon known as decorrelation.
• The same spatialization algorithm is used for both playback and export, but with
one key difference: while the export operation calculates the source position for
each sample, this is only calculated once per sample buffer during playback. This
optimization results in a degree of amplitude smoothing that is dependent on the
buffer size. If discontinuities (clicks, pops, etc.) occur during playback, try increasing
the buffer size.
• The session files saved and loaded by Space Control are stored in a human-readable
JSON format. As long as the syntax of the file and the ranges of certain parameters
are respected, the data can be modified in a text editor, or even generated by a
script. But be warned: invalid formatting or data will result in undefined errors!
30
6 Acknowledgments
We are grateful to the following groups and individuals who contributed to Space Control:
• the Center for Research in Electronic Art Technology (CREATE), for releasing the
software;
• the UCSB Academic Senate, for funding the project through a Faculty Research
Grant;
• and Karl Yerkes, who advised on technical matters related to the software develop-
ment.
31
7 Disclaimer
The Space Control software and its documentation are provided “as is” and without any
warranty of any kind, either express or implied, including liability or warranties relating
to fitness for a particular purpose, or infringement of any patent, copyright, or other
intellectual property right.
In no event shall the authors be held liable for any direct, indirect, special, incidental, or
consequential damages, or any damages of any kind, resulting from the use of the software
or its documentation. The authors make no warranty or representation, expressed, implied,
or statutory, with respect to the software or the contents or use of this documentation,
and specifically disclaim its quality, performance, or fitness for any particular purpose.
Use of the software and its documentation is at the sole discretion of the user, who
assumes all risk, and agrees to be solely responsible for any damages resulting from such
activities, including but not limited to data loss, loss of profit, or damage to their computer
system. No information or advice received from the authors shall create any warranty
for the software. The authors disclaim responsibility for any errors or omissions in the
software or its documentation, and for any damages resulting from their use.
32