8.2 Akordy

# Akordy

Sonic Pi posiada wbudowane wsparcie dla nazw akordów, które zwracają listy. Spróbuj sam:

```
play chord(:E3, :minor)
```

Teraz naprawdę zaczynamy dokądś zmierzać. To wygląda dużo ładniej niż czyste listy (i jest znacznie łatwiejsze do czytania dla innych ludzi). Jakie więc inne akordy wspiera Sonic Pi? Całkiem *sporo*. Spróbuj tych:

* `chord(:E3, :m7)`
* `chord(:E3, :minor)`
* `chord(:E3, :dim7)`
* `chord(:E3, :dom7)`

## Arpeggia

Możemy bardzo łatwo zmienić akordy w arpeggia za pomocą funkcji `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 with a call to `sleep 1` after 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
```

Możemy nawet przekazać listę czasów, która zostanie potraktowania jako krąg czasów:

```
play_pattern_timed chord(:E3, :m13), [0.25, 0.5]
```

Jest to odpowiednik takiego kawałka kodu:

```
play 52, sustain: 0.25
sleep 0.25
play 55, sustain: 0.5
sleep 0.5
play 59, sustain: 0.25
sleep 0.25
play 62, sustain: 0.5
sleep 0.5
play 66, sustain: 0.25
sleep 0.25
play 69, sustain: 0.5
sleep 0.5
play 73, sustain: 0.25
sleep 0.25
```

Który kawałek wydaje Ci się wygodniejszy do napisania i którego byś użył?

Note that `play_pattern` and `play_pattern_timed` alter the sustain of the notes to fill the times. You can remove this behavior by setting the `sustain:` opt to `0`:

```
play_pattern_timed chord(:E3, :m13), [0.25, 0.5], sustain: 0
```
