MugicSpatCon is a SuperCollider extension that allows the user to control the spatialization of four mono audio streams in real-time using the Mugic Motion and Korg NanoKontrol2 controllers. Spatialization is done via the IEM Plugin Suite (see https://plugins.iem.at/) and can be configured to any number of outputs supported by the plugins, including binaural, quadrophonic, and octophonic. Mugic is used in a simple analog to the ambisonic position: turn Mugic clockwise and the position moves clockwise.
Each stream can be manually repositioned independently or in a group selection. Each stream also has its own gesture recording and playback which can be looped (in standard or pingpong mode) and its speed manipulated (from 1/4 speed to 4x). Gesture playback and manual position are summed, so a looping gesture can be moved around ambisonic space.
See the project README.md for setup information.
MugicSpatCon is designed to be used through its GUI, but can also be used programmatically. Start the GUI like this:
or like this, if you want to retain references:
Construct a new MugicSpatCon.
n_tracks |
The number of input tracks (max 4). Can be changed later. |
n_output_chans |
The number of output channels. Can be changed later. |
ambi_order |
The ambisonic order to use. Can be changed later. |
A list of functions for generating chaotic or algorithmic repositioning.
The index saved in MSCTrack: -chaos_algo refers to one of these functions. Each of these wraps a particular UGen:
The distribution to use for the Brownian movement chaotic movement. See LFBrownNoise2 for more.
Threshold for Coyote's transient detection (default: 0.05).
Open the MugicSpatCon user interface window. This is the intended way of interacting with the extension.
Start MugicSpatCon's main ambisonic processing and controller handling according to the current configuration. This will start the server if it's not already started, and restart it if the IO configuration needs to change.
Stop MugicSpatCon's processing, freeing all Synths, MIDIdefs, and OSCdefs.
Starts or restats MugicSpatCon's main processing as needed.
Opens or closes the VST window of each track's encoder (IEM's StereoEncoder).
The number of input tracks (max 4). The number of input channels allocated is always twice this number to allow for stereo inputs. See MSCTrack: -stereo_input
The number of output channels.
The ambisonic order to use.
The OSC port on which to listen for Mugic's control messages (default: 4000).
Mugic's positioning sensitivity.
This is a multiplier. A value of 1
is the default state; values greater than 1
result in faster movement for a given Mugic gesture; values less than 1
result in slower movement for the same gesture.
MugicSpatCon's startup process:
MugicSpatCon.new is called |
|
MugicSpatCon is ready for configuration |
|
User calls -start |
|
Startup completes and ambisonic processing begins |
|
Is MugicSpatCon's main processing running?
Is MugicSpatCon starting up?
Is MugicSpatCon preloading?
Checks whether MSC's MIDI is configured and running. MIDI is handled by MSCMidi.
Checks whether MSC's OSC is configured and running. OSC is handled by MSCOsc.
Mugic's curent battery level
The timestamp of the last received message from Mugic. Used to determine connectivity status.
Populated by any errors MSC encounters during startup.
These are not meant for direct consumption.
The number of input channels.
A list of active MSCTracks.
A MSCDecoder.
A MSCMidi.
A MSCOsc.
Start MugicSpatCon and its GUI: