Ok, time to start exploring some effects! In this video I introduce some of the many effects available with superdirt.. and begin to explain how Tidal goes about combining two or more such patterns into one. We'll return to this later..
If you find that some of the effects don't work for you, then check that you have 'sc3-plugins' properly installed in supercollider.
-- Tidal has lots of effects we can use to change the way things sound.
-- vowel is a filter which adds a vowel sound
-- try a, e, i, o and u
d1 $ n "0 1 0 [2 4] 2 4 1*2 3" # s "cpu"
d1 $ n "0 1 0 [2 4] 2 ~ 1*2 3" # s "cpu" # vowel "a"
d1 $ n "0 1 0 [2 4] 2 ~ 1*2 3" # s "cpu" # vowel "o"
-- We can use the mini notation to create sequences of effects too:
d1 $ n "0 1 0 [2 4] 2 ~ 1*2 3" # s "cpu" # vowel "a o e"
-- Tidal does its best to map patterns across to one another.
-- You can add a non-vowel letter to pause the vowel effect
d1 $ n "0 1 0 [2 4] 2 ~ 1*2 3" # s "cpu" # vowel "a p"
-- 'squiz' is a nice distortion effect
d1 $ n "0 1 0 [2 4] 2 ~ 1*2 3" # s "cpu" # squiz "4 1 0 3"
-- With '#' structure comes from the left - try swapping the parameters around
d1 $ squiz "4 1 0 3" # n "0 1 0 [2 4] 2 ~ 1*2 3" # s "cpu"
-- Now there are only four sounds per cycle, because there's four in the leftmost
-- 'squiz' pattern
-- We'll learn more about how things in patterns get matched up later!
-- 'gain' changes the volume of different sounds
d1 $ sound "kick kick snare snare" # gain "1 0.7 0.6 0.5"
d1 $ sound "[hh*16, kick:8 snare:4 [~ kick:8] snare]" # gain "[1 1.2]*8"
-- speed can be used to pitch samples
-- (we can also use 'note' to do this, but we'll look at that later)
-- speed changes the speed of playback,
-- e.g. 2 = play the sample twice as fast - which moves the note up an octave
d1 $ sound "numbers:1 numbers:2 numbers:3 numbers:4" # speed "1 1.5 2 0.5"
-- Or we can take the pattern from the speed parameter
d1 $ speed "1*2 2*2 4*6" # sound "jungbass:6"
-- pan allows us to create stereo effects - 0 = left, 0.5 = middle, 1 = right
d1 $ sound "numbers:1 numbers:2 numbers:3 numbers:4" # pan "0 0.5 1"
-- shape adds distortion (but be careful - it also makes the sound much louder)
d1 $ sound "kurt:4 kurt:4"
d1 $ sound "kurt:4(3,8)" # shape "0 0.98" # gain "0.7"
Basic question that I couldn't find the answer to quickly: for effects with multiple parameters, like Reverb for instance, what separator should we use the access the additional parameters (like size and dry)? I assumed a comma but I'm getting errors.
I accidentally typed rev as a controller, and seem to have stumbled upon a mystery undocumented effect? Sounds like some sort of reverb? But throws and error in SuperCollider if I try to pattern it. Any ideas what is going on here?
d1 $ s "claus" # rev 0.1
d1 $ s "claus" # rev 0.5
d1 $ s "claus" # rev 0.9
d1 $ s "claus" # rev "0.1 0.01 0.5 0.9"
> no synth or sample named '0.9' could be found. module 'sound': instrument not found: nil
If you put a number without a control then it'll default to making it an n pattern. 0.5 and 0.9 are probably rounding up to 1, thereby picking a different pattern. rev here is trying to reverse an n pattern, which shouldn't really do anything..
I keep meaning to disable this defaulting of numbers to n (and s for strings) behaviour. I put it in to make simple patterns in a workshop with 8 year olds.. But it makes it easy to stumble on confusing behaviour like this.
in /Users/fabian/Library/Application Support/SuperCollider/Extensions/SC3plugins i have a lot of folders like ATK, AYUGens etc. ist that correct or should that be somewhere else? Is there a way in Supercollider to test if i have installed the sc3plugin?
When SuperDirt boots, it should complain if the plugins are missing.
They should be either in the location returned by Platform.userExtensionDir or Platform.systemExtensionDir
A common error I've seen is downloading the source code, rather than the binary plugins. The big green 'download' button here is tempting but doesn't get you what you need! https://github.com/supercollider/sc3-plugins
You have to select the version that matches your supercollider version. I think you'll probably need the -signed version on the mac, but I'm unclear on that.. Maybe that's only for recent versions of macos?
Is supermandolin also a part of sc3-plugins? (Because that works, gain and vowel also)
I now tried out supercollider 3.11 plus the 3.11 RC2 version of the plugins and 3.10 plus the 3.10 Version of the plugins.
Hm, could it be that your version of superdirt is from a while ago, like a year or so old? Can you share the output of Quarks.installed and also what superdirt outputs when you start it up?
Hm, that version of superdirt is a few years old, before squiz. In SuperCollider if you go to menus > language > quarks you should be able to select 'LATEST' version for superdirt. Then 'recompile class library' (or restart supercollider).
The version of supercollider itself shouldn't matter, and seems your sc3plugins is loading fine.
Alex, just one small typo: the title of the video on YT says week 1.
With respect to the $ operator, I tend to think about it as an useful way to avoid parentheses.
For instance, d1 $ s "cpu" is equivalent to d1 (s "cpu") as d1 is a function that takes one input argument and s is a function that takes one input argument. Therefore, s "cpu" has to be evaluated first before the result is passed as input argument for d1.
This comes extremely handy when you create a stack of function, e.g. d1 $ every 3 rev $ brak $ n "0 1 2 3" # s "cpu"
that otherwise would be something like d1 (every 3 rev (brak ( n "0 1 2 3" # s "cpu")))
Yes the comparison with parenthesis is helpful, but then gets confusing when it comes to trying to use $ for something other than the final parameter..