3. Asset Manager Overview
This section is divided into five subsections.
- Main User Interface
- Loading and Unloading Projects
- Signal Flow Overview
- Abstraction of Panner
- Open Sound Control Messages
- Coordinate System
3.1. Main User Interface
- File menu. Currently, only option is
Reload Config File
, which reloadsam_config.txt
file. - View menu. Includes menu for opening the Max's DSP Status window and Record and Playback window.
- Project List. List of all projects listed in
am_config.txt
file. - Active Projects List. Projects that are loaded in Asset Manager.
- Load selected project in the Project List.
- Unload selected project in the Active Projects List.
- Open the window of selected project in the Active Projects List.
- DSP On/Off indicator. Light blue indicates "On" and grey indicates "Off".
- Master volume fader. Startup volume is set in
am_config.txt
. - Print all incoming network messages in the Max Window. (Default off)
- Log internal Asset Manager activity in the Max Window. (Default on)
- Asset Manager Version.
3.2. Loading and Unloading Projects
Projects can be loaded via the Main Asset Manager Window (#5, #6 in the above screen shot), or by sending a Open Sound Control[1] message.
Details of how projects resources are loaded and unloaded are coming soon.
[1] http://opensoundcontrol.org/
3.3. Signal Flow Overview
All audio signals from projects go through Asset Manager's system outputs layer, which serves as a final gain control stage before reaching the audio interface. Asset Manager provides a collection of Max patch abstractions that allow projects to utilize the software’s signal paths. Furthermore, project volumes can be mixed independently from one another.
Within a project, there are three paths a signal can take before reaching the system output. These paths bring logic separation and system abstraction that can be uniquely configured for different systems.
The main project outputs are accessed via the project.out~
object. Signals passed to project outputs are routed directly to the main output without additional signal processing. In the project configuration file, channel IDs are mapped to hardware output channels. By using an indirect channel ID mapping (from project layer to hardware), the signal chain becomes independent from a specific audio system, and projects can be shared amongst different systems without having to modify the Max patch. This philosophy of abstraction is used throughout Asset Manager's signal flow design. Main project outputs can be used to route static audio sources, such as voice-overs, which are commonly routed to a single loudspeaker (e.g. to the center channel in a 5.1 surround sound setup).
Panner outputs are used to spatialize the sound – or "pan" the sound – using the project.panner~
or panner.3d
object. The panning method implemented in a project can be anything from stereo, 5.1 surround sound, Ambisonics, HRTF binaural, to custom implementations; the object is abstract and has no implementation on its own. The implementation is defined in the project configuration file where other project settings are also configured. Additionally, an optional transform function can be added after the panner signal path. A transform function is a black box that includes any operation that processes the signal from inputs to outputs. For example, it can be a simple matrix that routes five input channels and six output channels, where the sixth channel has the sum of all inputs that is routed to the subwoofer.
Auxiliary outputs, accessed with the project.aux.out~
object, are used when the main project outputs and panner outputs do not fulfill a particular need. project.aux.out~
is used similar to project.out~
but also includes an optional transformation found in project.panner~
. For example, auxiliary outputs are useful when a project contains pre-panned sources, e.g. 5.1 surround sound tracks, which require a transform function to match source outputs to system outputs. If the target system is headphones, a transform may be a 5.1 surround sound to HRTF binaural encoder.
These three signal paths are simple, yet powerful enough to support a variety of output requirements. Using these abstract objects, projects can be ported to work in Asset Manager’s framework and take advantage of its workflow.
TODO: inputs
3.4. Abstraction of Panner
Much of the strength of Asset Manager comes from the ability to isolate the implementation of the panning method and rapidly adapt new panning methods in real-time. This abstract layer has saved many hours reconfiguring new panners, keeping multiple copies of different versions, and trying out various methods that may or may not work in a given system. By specifying the panner in a plaintext file, version control and project sharing becomes much easier. Moreover, once a well-behaved panner is chosen for a system, new projects can easily take advantage of it without altering the original Max patch. Reusing well-tested panners can also reduce the likelihood of using them improperly, thus diminishing time spent debugging.
3.5. Open Sound Control Messages
Asset Manager uses Open Sound Control extensively for network communications and can be used with various 3rd party hardware and software. Via OSC (over TCP/IP or UDP sockets), remote applications can control and automate core functionalities, such as load and unload projects, change master and project volumes, mute and unmute projects, enable and disable signal processing, and more. Asset Manager also includes rich tools for working with OSC messages.
Supported OSC formats are listed in section 9. Open Sound Control.
3.6 Coordinate Systems
In Asset Manager (especially relevant when using the panners), coordinate system convention is a modified spherical coordinate system where angles are in degrees and distance is meter.
Values are listed in the order of azimuth, elevation, and distance. Azimuth 0 degree starts at "front" and increases counter-clockwise. Elevation 0 degree starts at pointing horizontal, and increasing value points up while decreasing value points down.