This is a mixer ui was created for the sound engine SuperDirt https://github.com/musikinformatik/SuperDirt for the TidalCycles http://tidalcycles.org/ programming language. The main motivation of this mixer was to get rid of using a DAW like Ableton in a live coding setup, because the author just used it for mixing a live setup. This mixer helps to realize tonal depth, clean frequency separation, signal compression and a stereo panorama and makes this easily accessible in SuperDirt.. In general this mixer overwrites the default values of the orbits defaultParentEvents. This means i.e. that it allows to change the value for gain from 1.0 to a different value from 0 to 1.5. These defaultParentEvent values will be used until they get overwritten on the TidalCycles side.
For the EQ of an orbit, this plugin is using EQui (https://github.com/muellmusik/EQui). For this it's needed to add some additional values to the defaultParentEvent to store and change the EQui parameters which will be done during the initialisation of this mixer. The eq functionality was added as a global effect to every orbit. This allows you to change the eq parameters for every orbit and still use all the other filter like hpf or lpf.
You need to initialize the SuperDirtMixer in your startup file and then you are able to access the ui at any time in a separate SuperCollider file.
Return a new instance of the SuperDirtMixer.
dirt |
The current dirt instance to be used. Usually this is ~dirt. |
Renders the mixer ui with all the settings you made before.
This will reset the master audio bus and remove the level indicators from the ui.
This will render the level indicator for a master audio bus and enables the stage master section. This represents the sum of what you will here on a stereo hardware output.
masterBus |
The recommendation would be to use the output bus that will be used for the stereo hardware output. In most cases this should be simply 0 or can be accessed by Bus.new. |
The default configuration uses the native reverb algorithm with a fix room sz value of 0.95. But there is an alternative variant to use i.e. one instance of a VST reverb plugin across all orbits (see the example section). For tonal depth it is recommended to keep every audio signal in the same simulated room and just add the amount of a wet signal.
This method sets the size for every orbit to ensure that the same size value for the native reverb is used.
size |
This value determines the size of the native reverb room. The default value is 0.95 |
With this method you can switch between the native reverb algorithm and a custom reverb algorithm. If you use the native one, then the value of size that was maybe adjusted by SuperDirtMixer: -setReverbNativeSize will be used. If you use a different mechanism, then room and size will be nullified.
variableName |
To use the native reverb effect this value needs to be \room. If you want to use a custom reverb algorithm, then this value need differ. In the custom VST example below, the value \reverb will be used instead. |
This mixer ui is able to send OSC messages to TidalCycles. This will mainly be used to solo or mute orbits. After the mixer was initialized, it automatically trys to establish a connection on location on the port 6010 (TidalCycles default value).
This is the path to the preset folder. The path is always relative to the source code of the SuperDirtMixer. This will be used to load and save presets and displays all the files as available presets in the ui. The default value is "../presets".
These are a set of examples to change the mixer ui with osc messages from the outside. To use this properly, you need to have the ui open with SuperDirtMixer: -gui.
If you want to solo or mute an orbit, then use the TidalCycles reference about playback controllers: https://tidalcycles.org/docs/configuration/MIDIOSC/osc/#playback-controllers
But the idea in general would be something like this:
This is an example of creating a global fx bus for a VST plugin like the free reverb plugin Supermassive Valhalla (https://valhalladsp.com/shop/reverb/valhalla-supermassive/). You need to install the VSTPlugin exension to use the code below (https://github.com/Spacechild1/vstplugin)