SuperDirt
SuperDirt copied to clipboard
SuperCollider implementation of the Dirt sampler for the Tidal programming language
SuperDirt 0.1
SuperCollider implementation of the Dirt sampler for the Tidal programming language
Alex McLean and Julian Rohrhuber
This is still experimental.
Requirements
- SuperCollider >= v3.6.6 (3.7 much recommended): https://github.com/supercollider/supercollider
- The Vowel Quark: https://github.com/supercollider-quarks/Vowel
- optional, but recommended: sc3-plugins: https://github.com/supercollider/sc3-plugins/
- For proper usage you need https://github.com/tidalcycles/Tidal
Installation from SuperCollider
Quarks.install("https://github.com/musikinformatik/SuperDirt.git");
Quarks.install("Vowel");
Setup
(
// configure the sound server: here you could add hardware specific options
// see http://doc.sccode.org/Classes/ServerOptions.html
s.options.numBuffers = 1024 * 16;
s.options.memSize = 8192 * 16;
// boot the server and start SuperDirt
s.waitForBoot {
~dirt = SuperDirt(2, s); // two output channels
~dirt.loadSoundFiles; // load samples (path can be passed) mono is assumed.
s.sync; // wait for samples
~dirt.start([57120, 57121]); // start listening on port 57120 and 57121
}
)
// now you should be able to send from tidal via port 57120 and 57212
Setup from Tidal
d1 <- stream "127.0.0.1" 57120 dirt {timestamp = BundleStamp}
d2 <- stream "127.0.0.1" 57121 dirt {timestamp = BundleStamp}
Now you can run a pattern, e.g.
d1 $ sound "[bd bd bd, sn cp sn cp]"
d2 $ sound "[sn*2 imp bd*3]" |+| speed "1"
##Options on startup
- numChannels can be set to anything your soundcard supports
- further server options, see ServerOptions helpfile
##Options on-the-fly
- new channels can be created on the fly
- you can pass the udp port on which superdirt is listening and the output channel offset (
.start(ports, channels)
) - add or edit SynthDef files to add your own synthesis methods to be called from tidal
- you can live rewrite the core synths (but take care not to break them ...)