# 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)

Okej, to nie jest jakoś bardzo fajne - zostało odtworzone dość wolno. Funkcja `play_pattern` zagra każdą listę z przekazanej listy, oddzielając każdą nutę uruchomieniem polecenia `sleep 1` pomiędzy każdym uruchomieniem funkcji `play`. Możemy jednak użyć innej funkcji `play_pattern_timed`, aby móc samodzielnie określić timing i przyśpieszyć bieg rzeczy:

    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
    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

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