Week 1 lesson 5 - mini-notation part 3

In which I find out I really can't say the word "mininotation"..

This video is a few things lumped together - a run through the tasks on the last worksheet, how to upgrade tidal, and finally how to use the "Euclidean notation". Use the links below to jump to a particular part.

0:00 - hello
0:27 - run through the tasks from the previous video
8:47 - how to upgrade Tidal
10:34 - how to check the tidal version you're on with tidal_version
10:50 - Euclidean notation - making all the rhythms with just two numbers

In brief:

Upgrade Tidal by opening a terminal window and running

cabal update
cabal install tidal --lib

If you're on an older version of haskell, you might have to remove the --lib and just run cabal install tidal.
If you're on a mac and get 'command not found' or similar, you might have to run . ~/.ghcup/env before the above.

The main difference is the addition of the draw function, which I use in the video to explore what the euclidean syntax is doing. There's also drawLine which I forgot to show in the video - it's actually clearer as it shows multiple cycles.. e.g.:

drawLine $ "[x [a c b]/2 x x, a x [c d]]"

draws:

[6 cycles]
|x--a-c---x--|x-- b-x--x--|x--a-c---x--|x-- b-x--x--|x--a-c---x--|x-- b-x--x--
|a---x---c-d-|a---x---c-d-|a---x---c-d-|a---x---c-d-|a---x---c-d-|a---x---c-d-

I'll paste the list of example Euclidean structures below. So for the Persian rhythm "Khafif-e-ramal"

d1 $ sound "clap(3,5,2)"

It's useful to have a kick or something at the start of each cycle as a reference point:

d1 $ sound "kick:5"
The Euclidean Algorithm Generates Traditional Musical Rhythms by Toussaint
(2,5) : A thirteenth century Persian rhythm called Khafif-e-ramal.
(3,4) : The archetypal pattern of the Cumbia from Colombia, as well as a Calypso rhythm from Trinidad.
(3,5,2) : Another thirteenth century Persian rhythm by the name of Khafif-e-ramal, as well as a Rumanian folk-dance rhythm.
(3,7) : A Ruchenitza rhythm used in a Bulgarian folk-dance.
(3,8) : The Cuban tresillo pattern.
(4,7) : Another Ruchenitza Bulgarian folk-dance rhythm.
(4,9) : The Aksak rhythm of Turkey.
(4,11) : The metric pattern used by Frank Zappa in his piece titled Outside Now.
(5,6) : Yields the York-Samai pattern, a popular Arab rhythm.
(5,7) : The Nawakhat pattern, another popular Arab rhythm.
(5,8) : The Cuban cinquillo pattern.
(5,9) : A popular Arab rhythm called Agsag-Samai.
(5,11) : The metric pattern used by Moussorgsky in Pictures at an Exhibition.
(5,12) : The Venda clapping pattern of a South African children’s song.
(5,16) : The Bossa-Nova rhythm necklace of Brazil.
(7,8) : A typical rhythm played on the Bendir (frame drum).
(7,12) : A common West African bell pattern.
(7,16,14) : A Samba rhythm necklace from Brazil.
(9,16) : A rhythm necklace used in the Central African Republic.
(11,24,14) : A rhythm necklace of the Aka Pygmies of Central Africa.
(13,24,5) : Another rhythm necklace of the Aka Pygmies of the upper Sangha.

Have fun!

Next lesson:

9 Likes

11 posts were split to a new topic: Ambiguous module name ‘Sound.Tidal.Context’: it was found in multiple packages: tidal-1.4.8 tidal-1.4.8

3 posts were merged into an existing topic: Ambiguous module name ‘Sound.Tidal.Context’: it was found in multiple packages: tidal-1.4.8 tidal-1.4.8

2 posts were merged into an existing topic: Ambiguous module name ‘Sound.Tidal.Context’: it was found in multiple packages: tidal-1.4.8 tidal-1.4.8

5 posts were split to a new topic: Problem with stack install

Hey @yaxu,
Very minor couple of bugs I noticed in this video:

  1. On youtube the title of the video includes "mini-notation Part 4" when this thread indicates it's part 3 (I had a mild panic that I'd missed a session!)

  2. The final Workshop solution should be:
    d1 $ s "bd sd!3 bd sd*3"
    not
    d1 $ s "bd sd!4 bd sd*3"

I also found a weird way to use <> notation to solve one of the problems in an alternate fashion -

Problem:
d1 $ sound "[kick snare kick snare kick snare] clap"

Solution 1:
d1 $ s "[kick snare]*3 clap"

Solution 2:
d1 $ s "<kick snare>*6 clap"

Thanks again, I'm enjoying the course immensely :smiley:

4 Likes

Oops thanks, I've fixed the video title at least!

1 Like

Thanks for the drawLine function ! very fun and useful to visualize patterns.

1 Like

12 posts were split to a new topic: Silent fail when trying to upgrade to tidal 1.4.9

@yaxu can you share the worksheet you use in this lesson.. please.. for exploring the different examples of the Euclidean rhythms you have described.. thanks

Hi @born_89, ah sorry!

I'll paste the list of example Euclidean structures below. So for the Persian rhythm "Khafif-e-ramal"

d1 $ sound "clap(3,5,2)"

It's useful to have a kick or something at the start of each cycle as a reference point:

d1 $ sound "kick:5"
The Euclidean Algorithm Generates Traditional Musical Rhythms by Toussaint
(2,5) : A thirteenth century Persian rhythm called Khafif-e-ramal.
(3,4) : The archetypal pattern of the Cumbia from Colombia, as well as a Calypso rhythm from Trinidad.
(3,5,2) : Another thirteenth century Persian rhythm by the name of Khafif-e-ramal, as well as a Rumanian folk-dance rhythm.
(3,7) : A Ruchenitza rhythm used in a Bulgarian folk-dance.
(3,8) : The Cuban tresillo pattern.
(4,7) : Another Ruchenitza Bulgarian folk-dance rhythm.
(4,9) : The Aksak rhythm of Turkey.
(4,11) : The metric pattern used by Frank Zappa in his piece titled Outside Now.
(5,6) : Yields the York-Samai pattern, a popular Arab rhythm.
(5,7) : The Nawakhat pattern, another popular Arab rhythm.
(5,8) : The Cuban cinquillo pattern.
(5,9) : A popular Arab rhythm called Agsag-Samai.
(5,11) : The metric pattern used by Moussorgsky in Pictures at an Exhibition.
(5,12) : The Venda clapping pattern of a South African children’s song.
(5,16) : The Bossa-Nova rhythm necklace of Brazil.
(7,8) : A typical rhythm played on the Bendir (frame drum).
(7,12) : A common West African bell pattern.
(7,16,14) : A Samba rhythm necklace from Brazil.
(9,16) : A rhythm necklace used in the Central African Republic.
(11,24,14) : A rhythm necklace of the Aka Pygmies of Central Africa.
(13,24,5) : Another rhythm necklace of the Aka Pygmies of the upper Sangha.
4 Likes

6 posts were merged into an existing topic: Silent fail when trying to upgrade to tidal 1.4.9

Heh, that euclidian stuff was heaps of fun.

I tried to re-create Steve Reich's Clapping Music, to moderate success? I wonder if there is an easier way of doing it? Spreading the impulses over the 12 in a specific way and then rotating that via offset (or rot)? Edit: this runs the Reich process (mostly right I think) way faster than the composer intended.

d1 $ n (off "<0.0 0.083 0.166 0.249 0.332 0.415 0.498 0.581 0.664 0.747 0.83 0.913 1.0>" (+ 2) $ "[15(3,3,0)] [15(2,3,2)] [15(1,3,2)] [15(2,3,0)]") # s "cpu"

To clarify where the "1" is in this structure:

do 
  d1 $ s "cpu"
  d2 $ n (off "<0.0 0.083 0.166 0.249 0.332 0.415 0.498 0.581 0.664 0.747 0.83 0.913 1.0>" (+ 2) $ "[15(3,3,0)] [15(2,3,2)] [15(1,3,2)] [15(2,3,0)]") # s "cpu"
4 Likes

Nice take on clapping music! There's a couple more over on this thread:

2 Likes

the draw function is so useful! Was it added to Tidal recently?

Yes about two weeks ago. draw needs an extra | on the end, so you can 'see' silence at the end of a cycle (will fix this).. I think drawLine is better for this reason!

1 Like

Hi there, I have followed the instructions for updating Tidal as shown here. For some reason when I check the Tidal version it comes up as only version 1.6.1. Any suggestions?

Hi @lucyjp786, that is the latest version and so you're all set.

If you look at this page: http://hackage.haskell.org/package/tidal tou see all the version numbers with 1.6.1 shown as the latest one.

Hi,

I updated tidal cycles in my power shell as admin and it says version up to date. But when I run tidal_version in atom, I keep getting 1.4.3 . What could be the problem?
I have tried starting up super collider and atom from start several times and it made no effect.

Hi @angappan, what command are you using to install?

It should probably be either cabal update then cabal install tidal --lib or cabal v1-update then cabal v1-install tidal.