Week 2 lesson 1 - starting out with effects

I make an example in today's video.. fast $ 2/3 $ sound "bd" doesn't work, for example

Please keep it in, as it allows 'transposing' of patterns easy. Nice for quick updates to melody patterns for instance. :slight_smile:

d1 $ n "0 1 2 3" # s "midi" # midichan 0 |+ 12 --> changes the octave when playing the MIDI synth etc. :slight_smile:

Hi Alex
I can't seem to hear any difference with squiz. I don't get an error but it doesn't seem to change the sound - and I can't hear a difference between squiz 1 and squiz 4 for example.

Yes squiz is important !!

When you go here: https://github.com/supercollider/sc3-plugins
don't click the tempting green 'clone or download' button. That won't work (it just gives you the source code)

Instead you'll want to download from the release page:
https://github.com/supercollider/sc3-plugins/releases

The version of the release is important, it should match with your supercollider version. Go to help > about supercollider. Mine says 3.11 so I'd download the latest 3.11 version of sc3plugins to match. If yours says 3.10 you'll want the 3.10 version etc.

Also make sure superdirt is up to date as squiz is a fairly new addition. Go to Language > Quarks, click 'check for updates', and make sure the version called "LATEST" is installed. You'll then need to 'recompile class library' (or just restart supercollider). If you've changed anything in your superdirt folder this might cause problems with updating, let me know if so.

Good lesson. I'm getting a sense of how to pattern basic effects.

So, imagine I have something like this
d1 $ n "0 3 0 3" # s "cpu" # freeze "0 1"

But the freeze effect is merely on or off. Is it possible with tidal as-is, or would it require writing a new effect in superdirt to have the ability to smoothly transition between freeze 0 and freeze 1 -- that is, to cross-fade (not xfade) between the audio that is produced with freeze 0 and freeze 1?

1 Like

Hi, that's an interesting thought, a kind of spectral blurring between events? You imply that the existing xfade transition wouldn't fit with your idea, could you explain the difference a bit more?
At the moment portamento isn't easy to do with tidal and superdirt, and this sounds trickier..

d1 $ jux rev $ every 2 (hurry 1) $ loopAt 2 $ chop 4 $ s "break:9"
   # scram (range 0.1 0.5 rand)

this is fun :slight_smile:
the scram effect

2 Likes

4 months later and I just realized that I don't understand something fundamental.

Let's say I want a long held note, and I'd like to apply FX on top of it but much more quickly. I don't want to retrigger the note/notes however.

If I put the sound first it will only trigger the control pattern once. Cool, I get that.
d1 $ s "arp:0" # legato 1 # coarse "0 1 16 32"

In my head I thought that this is what segment was for, but now I'm realizing that the structure will still only come from the left yeah?
d1 $ s "arp:0" # legato 1 # segment 16 (coarse "0 1 16 32")

And placing the FX before the sound get's me the pattern I'd like BUT it retriggers the sound every time:
d1 $ coarse "0 1 16 32" # s "arp:0" # legato 1

So how does one go about triggering FX patterns as quickly as we want but not retriggering the sounds? I messed around with combining functions but I can't figure out how to get the notes to not retrigger.

The fact that I don't know this is kind of blowing my mind right now lol. I'm guessing it's simple!
Thanks.

That's not really possible at the moment! Tidal is all about trigger messages so except global effects (and for midi stuff, cc messages which are kind of like global effects) you can't change an effect of a sound that's already playing.

However we are working on this.. e.g. https://github.com/musikinformatik/SuperDirt/issues/190

1 Like

Oh wow. Well I guess that explains it! ha.

I'm reading over the GitHub thread. Would this proposed solution work for sending stepped values to sounds once they're playing and not just interpolated ones? In the above example I'd like the values to jump for instance.

PS: When you say "trigger messages" do you mean note events? Or just discrete jumps? I could see how interpolated messages would take some thought in a discrete environment but I'm curious how control jumps would play into that too.

Yes there was topic drift in that thread.. Despite the title what we are currently talking about is sending stepped changes.. Although at a high enough resolution there's no practical difference between stepped and continuous changes.

Ultimately I'd like this do play one sound and change its effect as it plays. There are technical barriers to this but I think they're solvable.

d1 $ sound "longsample" # squiz "1 4 2"

This is easier to implement (I think we're nearly there)

d1 $ sound "longsample" # squiz (dial "1 4 2")

and has the advantage of allowing something like this:

d1 $ sound "longsample" # squiz (follow "fx1")
d2 $ sound "anotherlongsample" # squiz (dial "fx1" "4 1 3")

I.e. sending a pattern to a named 'bus' and having more than one pattern make use of that

3 Likes

This would be amazing!
(Though I obviously only learned that it didn't work like this yesterday, lol)

Hi !
This link is invalid, where can I find them besides the official website ? ? thanks!
full list of effects here: https://tidalcycles.org/index.php/All_effects_and_synths

Correcting your link. List for the complete list of effects: here.

3 Likes

I think I'm talking myself in circles there [~1:25]

In cycles dear sir. ISWYDT :sweat_smile: