Ok so in some parts of the world, it's already 11th April, so the course has officially started! We'd better get on with the next lesson - how to add extra sounds. It's important to do that now, as I've made a pack of extra sound samples for us to use during the course.
Make a folder somewhere for the course. Maybe call it "tidalclub" on your desktop, or documents folder, or wherever you like to keep your things.
Download the above samples-extra.zip file, and extract the contents into that folder. (How you do this depends on the operating system you're using)
Once you've got the samples saved, here's a video that steps through the process of loading them in supercollider:
Or here's the steps in brief:
Open SuperCollider, and open the example startup file via: menu -> file -> open user support directory -> downloaded-quarks -> SuperDirt -> superdirt_startup.scd
Copy the contents to your clipboard
Open your supercollider startup file via: menu -> file -> edit startup file
Paste the contents into there. (Don't have SuperDirt.startup in there as well)
You'll see a line with ~dirt.loadSoundFiles;, which loads the default samples.
Keep that line, creating a new line underneath that looks like this:
You'll need to change the above so that it contains the path to the samples-extra folder on your system.
Don't forget to have /* at the end of the path, and a semicolon ; at the end of the line.
Save the file (File -> Save)
With all that done, you should be able to restart supercollider (you can do that via: menu -> Language -> Recompile class library, or just by closing and reopening supercollider), and have superdirt automatically start up inside SuperDirt, with all the new samples.
I hope that's clear, but please do let me know if you get stuck!
Worked for me. Maybe you could add, in the steps description, that you have to save the edited startup file before restarting supercollider / hitting recompile. Probably pretty obvious, but still
I was wondering, why this procedure, instead of simply dropping the folders in the Dirt-Samples folder ? Just so that it is easier to remove the samples afterwards, for example, and keeping things tidy ? Or is there some other advantage to it ? (at least it's anyway an occasion to get familiar with the extended startup procedure...)
Dropping the contents of samples-extra in Dirt-Samples would indeed work too, but I thought it would be good to show how to add a separate folder. Once you add things to Dirt-Samples, supercollider won’t be able to update it any more if new samples get added. I think it’s also generally neater to keep your samples separate, once you get your head around it.
This means that there's a phantom copy of supercollider running wild.. You can force quit it via Servers -> Kill all servers. Then Language -> Recompile class library to restart things.
OK, did as you suggested and it seems to have worked…but…getting a few different WARNING: SynthDef spectral-delay16 too big for sending. Retrying via synthdef file messages
and then
loading 20 sample banks:
break (33) bsbass (9) bsguitar (19) bshihat (3) bskick (9) bsnoise (22) bsperc (7) bssnare (8) bsvocals (13) clap (8) claus (16) cpu (23) cpu2 (29) dsynth (3) foley (287) hi (8) kick (21) lo (8) rash (73) snare (90)
... file reading complete. Required 225 MB of memory.
SuperDirt: listening to Tidal on port 57120
late 1.113486468
Buffer UGen: no buffer data
When I run
d1 $ sound "cpu:2"
in atom, I’m not getting sound - no error message either though.
If ‘bd’ isn’t loaded, that indicated that you removed/replaced the ~dirt.loadSoundFiles; line, that loads the ‘default’ samples. If you put that back in your startup file (above the new one for samples-extra) and restart supercollider, that should return.
Doh - think I replaced the default samples with the new ones instead of adding:
s.waitForBoot {
~dirt = SuperDirt(16, s); // two output channels, increase if you want to pan across more channels
~dirt.loadSoundFiles("/Users/Me/Desktop/Tidal/samples-extra/*"); // load samples (path containing a wildcard can be passed in)
// for example: ~dirt.loadSoundFiles("/Users/myUserName/Dirt/samples/*");
// s.sync; // optionally: wait for samples to be read
~dirt.start(57120, [0, 0]); // start listening on port 57120, create two busses each sending audio to channel 0
Edit just saw this * You’ll see a line with ~dirt.loadSoundFiles; , which loads the default samples.
Keep that line, creating a new line underneath that looks like this:
Ended up repasting superdirt_startup.scd into startup.scd.
It can be useful if you want to keep your personal sound library separated from the default tidal installation e.g. on a USB stick, separate partition etc. (that's something I do a lot since I frequently format my drive, reinstall the OS and whatnot)
Or maybe you want to make a GitHub repo for your tidal work: basically just create a folder (e.g. my-tidal-folder) where you'll keep all your samples, code snippets, notes, songs etc. and put it on a GitHub repo. This way you don't risk loosing anything and your material is always available and up to date, even on multiple machines; all you have to do is download the folder and set up the path as shown in the video. Here's mine as an example. I've also added the BootTidal.hs and startup.csd so I don't lose them
CPU Electro samples! I’ve been loving their releases, looking forward to exploring these samples further. One note from my install process: in Windows it was necessary for me to include the drive letter in that path.
Hey! It worked for me on the Mac (Catalina) as well. The only hiccup was that somehow the file was read-only through superCollider but I could edit it through the terminal.
I have a doubt regarding the bigger loops in the break folder. When I play them in tidal they get all mushy and cramped. How can I play them at their normal speed?
Hi @indiantinker, working with long samples is a fairly large topic that we will get to later in the course.
The problem you’re hearing is that in tidal, you’re triggering the sound every cycle, but the break sounds last longer than a cycle. There are a few ways around this, here’s one:
d1 $ loopAt 2 $ chop 32 $ sound "break"
Adjust the loopAt number to spread the break over that number of cycles. You can also adjust the tempo with e.g. setcps 0.6, trying different numbers to hear the effect.
As I say there are a lot of different approaches to this, there is fun to come!
Ah, I have the latest development version which I see Julian Rohrhuber (the creator of SuperDirt) has changed a bit recently. I don’t think you’ll see any difference with your version, I don’t understand it fully but think this change is just a small tweak. However if you want the latest version you can copy and paste it from here: https://github.com/musikinformatik/SuperDirt/blob/develop/superdirt_startup.scd
I have changed it but it doesn't make much of a difference.
I have also noticed that when I recompile the class language it does not instantly import the samples from the folder, I have to run the script to load in the samples. This appears to be different to how yours load in the video, am I missing something here as well?