# Notation, midi notes, scales and modes

**URL:** <https://uzu.lurk.org/t/notation-midi-notes-scales-and-modes/715>\
**Category:** TidalCycles\
**Tags:** questions\
**Created:** [10 May 2020 10:54 UTC](https://uzu.lurk.org/t/notation-midi-notes-scales-and-modes/715 "2020-05-10T10:54:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![tomh](https://uzu.lurk.org/user_avatar/uzu.lurk.org/tomh/32/339_2.png) [@tomh](https://uzu.lurk.org/u/tomh)\
**Post date:** [10 May 2020 10:54 UTC](https://uzu.lurk.org/t/notation-midi-notes-scales-and-modes/715/1 "2020-05-10T10:54:18Z")

</div>

Hi,

I wasn't sure whether to put this here, i saw people giving feedback on @yaxu's recent post about "Thoughts on the course" yesterday but i thought maybe i could just post here to separate it out a bit.

One thing I don't think has been covered much yet (beyond me digging in the documentation) are the different ways of inputting musical notation to be played by SuperDirt's synths (in fact i don't know if Superdirt's synths have been mentioned yet?).

As far as I can see there are "notes" generated by the different samples e.g "arpy, arpy:2, arpy:3" etc but this is just a sample which has been recorded (as a major scale i think?) and then sequenced in order.

I know Superdirt takes midi notation i.e c5, ef5, g5 (Cm triad), but i've also seen it used just with numbers, which I presume works like 0 = tonic 4 = dominant, 7 = octave?  
Does 0 = C?

I haven't been able to find in the documentation anything which allows you generate say a minor scale on Superpiano? Is there a global parameter setting for a root note and a particular scale? Can this be set per line of code i.e "d1 £" playing a minor scale "d2 $" playing a pentatonic?

Apologies if this has been covered or is going to be covered and i'm jumping the gun, it just feels like this is a bit of a block for me at the moment in terms of actually being able to create more melodic music in Tidal.

Thanks  
Tom

---

<div class="post-metadata">

**Author:** ![yaxu](https://uzu.lurk.org/user_avatar/uzu.lurk.org/yaxu/32/2_2.png) [@yaxu](https://uzu.lurk.org/u/yaxu)\
**Post date:** [10 May 2020 11:40 UTC](https://uzu.lurk.org/t/notation-midi-notes-scales-and-modes/715/2 "2020-05-10T11:40:55Z")

</div>

Yes we've been focussed on rhythm for the first four weeks. The first week of the next batch of lessons (after a break next week) will focus on melody, chords, scales, etc.

> As far as I can see there are "notes" generated by the different samples e.g "arpy, arpy:2, arpy:3" etc but this is just a sample which has been recorded (as a major scale i think?) and then sequenced in order.

That's right. I think it's actually recorded as a pentatonic "ritusen" scale (samples contributed a while ago by @kindohm). Pentatonic scales are great because all the notes sound good together.

> I know Superdirt takes midi notation i.e c5, ef5, g5 (Cm triad), but i've also seen it used just with numbers, which I presume works like 0 = tonic 4 = dominant, 7 = octave?  
> Does 0 = C?

Yes, this is actually Tidal reading note symbols as numbers. So 0 = c, then it's semitones, so a = 9, c6 = 12, etc:

```haskell
"c c7 a fs ef6" :: Pattern Int

```

gives

```haskell
(0>⅕)|0
(⅕>⅖)|24
(⅖>⅗)|9
(⅗>⅘)|6
(⅘>1)|15

```

> I haven't been able to find in the documentation anything which allows you generate say a minor scale on Superpiano? Is there a global parameter setting for a root note and a particular scale? Can this be set per line of code i.e "d1 $" playing a minor scale "d2 $" playing a pentatonic?

You can use `scale` to convert numbers to a scale.

```haskell
Prelude Sound.Tidal.Context> scale "ritusen" "0 1 2 3 5"
(0>⅕)|0.0
(⅕>⅖)|2.0
(⅖>⅗)|5.0
(⅗>⅘)|7.0
(⅘>1)|12.0
Prelude Sound.Tidal.Context> scale "major" "0 1 2 3 5"
(0>⅕)|0.0
(⅕>⅖)|2.0
(⅖>⅗)|4.0
(⅗>⅘)|5.0
(⅘>1)|9.0

```

In use:

```haskell
d1 $ note (scale "major" "0 1 2 3 5") # s "superpiano"
  |+ note "e"

```
