SuperCollider implementation of the Dirt sampler for the Tidal programming language
Alex McLean and Julian Rohrhuber
This is still experimental.
- 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
Quarks.install("https://github.com/musikinformatik/SuperDirt.git");
Quarks.install("Vowel");
(
// 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
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 ...)