Week 1 lesson 3 - sequencing with the mini-notation

I was gonna go on a big ramble about rhythm trees. But I just wanted to say that this concept of rhythm is one of the things I truly love about Tidal Cycles. It’s actually a really helpful way to understand “musical” rhythm, too, at least from a 20thC perspective.

I came up with this fun example to test whether slow takes decimal values (I think it does?)

d1 $ every (irand 4) (slow (((rand + 1.0)/2.0)*3.0)) $ n “1 0 2 3” # s “bd bd bd bd” # cut 1

This has the kind of expanding and contracting rhythmic quality of late 20thC music where complex rhythm is employed, but what makes it powerful is it’s not gridlocked like traditional notation (mostly) is, and like most DAWs are.

PS. Can someone tell me how to do the code highlighting thing?
PPS. Alex, does Tidal differentiate between integers and floats like I’ve done in that example?

4 Likes

Your description sounds intriguing so I wanted to try it out. I’m getting the error below though. Does it work for you?
lexical error at character '1'

And the way I did that code block was by highlighting the text and pressing the button that looks like “</>”. It’s labeled “Preformatted Text”.

2 Likes

Hey ben, yeah it worked for me. But I am unsure how good the code is as far as being structurally sound. It’s not helpful that there are multiple 1s to be throwing the error - take cut out and see if that does anything?

Thanks for the preformat tip!

Also, I didn’t check whether rand is unipolar or bipolar - I wrote that little passage on the assumption that it’s a bipolar oscillator, but if it’s unipolar it doesn’t need anything other than *3.0.

1 Like

Interesting thanks.
I tried taking out the various 1’s (and their related code) but to no avail. Maybe @yaxu has some insight? No rush though!

2 Likes

I suspect it’s the directional quotes. The forum software replaces straight quotes with fancy curvy quotes in non-preformatted text which aren’t valid in tidal. If you delete and retype the quotes in your editor it will probably start working. At least it worked for me once I fixed the quotes.

2 Likes

Ah ha. You’re right thanks!

2 Likes

Time in tidal isn’t integral or floating point, it’s rational… Decimal notation works fine though. I would explain more but better get some sleep…

1 Like

More superdirt synthdef issues, can’t call the supermandolin. Is it supposed to be explicitly defined in the default-synthdefs.scd file?

no synth or sample named 'supermandolin' could be found.
module 'sound': instrument not found: nil

That sounds spicy. I look forward to learning more!

Thanks! That is the power of the preformat, I guess.

Yeah, but the quote thing kind of a mis-feature for a forum like this. It would be nice to be able to casually paste snippets into messages and have them run without worrying about the preformat stuff. Especially since tidal snippets tend to be so short, if they were always huge blocks of code you’d want the preformat anyway. I wonder if it’s possible to turn it off…

Do you have sc3-plugins installed? I think that’s where that synth comes from.

You need to change the internet quote symbols to regular quotes.

1 Like

d1 $ rarely (jux $ striate 16) $ sometimes rev $ every (irand 5) (slow (rand * 4.0)) $ n "1 [0 3 4] 2 3" # s "bd [jazz jazz jazz] popkick bd"

Like so, right?

great one ! i also felt compelled to dig into this example which was super cool to understand irand - i played with cut a bit but i still didn't get it fully
here's my hack of your cool snippet, i added funny samples and a phaser.... :japanese_ogre:

d1 $ every (irand 16) (slow (irand 64 + (rand * 3.0))) $ n "3 0/2 1/3 0 1 1/5 3 2 0 2 0 4 [ 1 [1 1 ] 1 1]" # s "808bd:1 808sd:1 808:1 bass:0 bass:1 " # cut "[1 2 3]*2" #phaserdepth 10 #phaserrate 3

1 Like

I thought so, but i ran into a problem. i went in quarks, ticked 3Dj and recompiled and got quite an error message (detailed in this post).
which plugins did you mean?

Follow the link in my last post. There’s a package that includes extra synths which you need to install. It’s also discussed in the tidal install instructions: https://tidalcycles.org/index.php/MacOS_installation#Optional_Prerequisites

Neat way to control the range of oscillators like rand is:

d1 $ every (irand 4) (slow $ range 1.5 3 rand) $ n "1 0 2 3" # s "bd" # cut 1

Also, in this example you only need bd once for the sound, the structure comes from the four values of the n to the left.

1 Like

Ooh hot tip, I thought that was the case. What happens if you have $ n "1 0 2 3" # s "bd sn"? Does that then mean that 1 and 0 will apply to bd and 2 3 to sd?

Er, I think so. Slightly complex topic:

https://tidalcycles.org/index.php/Combining_pattern_structure

1 Like