La musica generativa è codice che compone al posto tuo. In Sonic Pi il mattone è il ring: una lista circolare che scorri con .tick.

notes = (ring :c4, :e4, :g4, :b4, :a4)

live_loop :arp do
  play notes.tick, release: 0.2   # avanza a ogni giro, poi ricomincia
  sleep 0.25
end

# due ring di lunghezza diversa creano pattern che si spostano
durate = (ring 0.25, 0.25, 0.5)
live_loop :ritmo do
  sample :bd_haus
  sleep durate.tick
end

.tick avanza di uno a ogni chiamata e torna all'inizio quando finisce; .look guarda il valore corrente senza avanzare. La magia nasce quando combini ring di lunghezze diverse: le note e le durate si sfasano, generando pattern che si evolvono per decine di battute prima di ripetersi.

Poca scrittura, tanta musica: è il fascino del generativo.