# Accordi

Sonic Pi supporta anche l’uso dei nomi di accordi. Prova tu stesso/a:

    play chord(:E3, :minor)

Stiamo ottenendo davvero dei bei risultati, e il codice appare molto più ordinato e piacevole di una semplice lista di elementi (oltre che essere più facilmente leggibile dalle altre persone). Quindi, quali altri accordi supporta Sonic Pi? In realtà, ne supporta molti. Prova a digitare quello che segue:

‘chord(:E3, :m7)’ `chord(:E3, :minor)` `chord(:E3, :dim7)` `chord(:E3, :dom7)`

## Arpeggi

Possiamo semplicemente suonare gli accordi in forma di arpeggio usando la funzione ‘play_pattern’:

    play_pattern chord(:E3, :m7)

Sì, è vero, questo non è molto divertente. L’arpeggio è davvero molto lento. La funzione ‘play_pattern’ suona infatti ogni nota della serie separandola con una pausa di un secondo, ovvero quindi mettendo sempre uno ‘sleep 1’ dopo ogni nota. Possiamo però utilizzare un’altra funzione, chiamata ‘play_pattern_timed’ dove si possono specificare le distanze temporali tra le note:

    play_pattern_timed chord(:E3, :m7), 0.25

Possiamo anche inserire una lista di durate che verrà trattata come un circolo, ovvero ripetendola ad anello:

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

Quanto scritto è equivalente a:

    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

Quale preferisci scrivere?