1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
8.2 Chords
# Chords
Sonic Pi has built-in support for chord names which will return
lists. Try it for yourself:
```
play chord(:E3, :minor)
```
Now, we're really getting somewhere. That looks a lot more pretty than
the raw lists (and is easier to read for other people). So what other
chords does Sonic Pi support? Well, a *lot*. Try some of these:
* `chord(:E3, :m7)`
* `chord(:E3, :minor)`
* `chord(:E3, :dim7)`
* `chord(:E3, :dom7)`
## Arpeggios
We can easily turn chords into arpeggios with the function
`play_pattern`:
```
play_pattern chord(:E3, :m7)
```
Ok, that's not so fun - it played it really slowly. `play_pattern` will
play each note in the list separated with a call to `sleep 1` between
each call to `play`. We can use another function `play_pattern_timed` to
specify our own timings and speed things up:
```
play_pattern_timed chord(:E3, :m7), 0.25
```
We can even pass a list of times which it will treat as a circle of
times:
```
play_pattern_timed chord(:E3, :m13), [0.25, 0.5]
```
This is the equivalent to:
```
play 52
sleep 0.25
play 55
sleep 0.5
play 59
sleep 0.25
play 62
sleep 0.5
play 66
sleep 0.25
play 69
sleep 0.5
play 73
```
Which would you prefer to write?
|