Sonic Pi – Introduzione

 

Benvenuto 🙂

Benvenuto in Sonic Pi. Probabilmente non vedi l’ora di cominciare a fare strani suoni almeno quanto io sono impaziente di mostrarti come si fa. Sarà un viaggio veramente divertente nel quale imparerai tutto su musica, sintesi, programmazione, composizione, performance e altro.

Un momento, non mi sono nemmeno presentato! Sono Sam Aaron – il tipo che ha realizzato Sonic Pi. Mi puoi trovare su Twitter [@samaaron](http://twitter.com/samaaron) e mi farà molto piacere conoscerti. Magari ti interessa sapere qualcosa di più anche delle mie Live Coding Performances dove scrivo codice dal vivo con Sonic PI davanti al pubblico.

Se hai qualche suggerimento o idea per migliorare Sonic PI, mi raccomando, fammela sapere: il tuo feedback è un aiuto importante. Non si può mai sapere, la tua idea potrebbe essere la prossima “big feature”!

Questo tutorial è suddiviso in sezioni raggruppate in categorie. Anche se l’ho pensato per un apprendimento facile e progressivo dall’inizio alla fine, sentiti libero di passare da un argomento all’altro senza seguire necessariamente l’ordine del tutorial. Se pensi che manchi qualcosa, fammelo sapere e io prenderò in considerazione il tuo suggerimento per una prossima versione.

Infine, guardare gli altri che fanno live code è un ottimo sistema per imparare. Mi trovi spesso su livecoding.tv/samaaron quindi lasciami un messaggio e fammi tante domande 🙂

Ok, possiamo cominciare…

 

1.1 Live Coding

Uno degli aspetti più divertenti di Sonic Pi è che ti permette di scrivere e modificare codice live per fare musica, proprio come se suonassi una chitarra dal vivo. Questo significa che dopo un po’ di pratica puoi salire sul palco ed esibirti con Sonic Pi.

Libera la tua mente

Prima di entrare nel vivo del funzionamento di Sonic Pi, vorrei farti capire meglio cosa vuol dire live code. Per il momento non ti preoccupare se non capisci molto (o anche nulla) di quello che vedremo. Mettiti solo comodo e divertiti…

Un live loop

Allora cominciamo, copia il codice qui di seguito in uno dei workspace che trovi qui sopra:

live_loop :flibble do
sample :bd_haus, rate: 1
sleep 0.5
end

Ora premi il tasto Run e sentirai un bel suono di cassa che batte il tempo. Per fermare il suono basta premere sul tasto Stop. Però, per il momento, non premerlo ancora… Segui invece questi passaggi:

  1. Assicurati che il suono della cassa sia ancora attivo.
  2. Cambia il valore di sleep da 0.5 a qualcosa di più grande di 1.
  3. Premi di nuovo il tasto Run.
  4. Nota come è cambiata la velocità della batteria.
  5. Infine, ricorda questo momento: questa è la prima volta che hai fatto live coding con Sonic Pi ed è probabile che non sarà l’ultima…

Ok, fin qui era abbastanza semplice. Adesso aggiungi qualcos’altro al mix. Sopra sample :bd_haus aggiungi l’istruzione sample :ambi_choir, rate: 0.3. Il tuo codice dovrebbe apparire così:

live_loop :flibble do
sample :ambi_choir, rate: 0.3
sample :bd_haus, rate: 1
sleep 1
end

E adesso, sbizzarrisciti. Cambia il parametro rate: – cosa succede se usi valori grandi, o piccoli, o negativi? Guarda cosa succede se cambi il valore di rate: del campione :ambi_choir anche di pochissimo (diciamo 0.29). E che succede se scegli un valore molto piccolo per sleep? Guarda se riesci a farlo così veloce da provocare un errore perché il computer non riesce a stargli dietro. (Se succede, basta scegliere un valore di sleeppiù grande e premere di nuovo Run)

Prova a inserire all’inizio di una delle istruzioni sample un #:

live_loop :flibble do
sample :ambi_choir, rate: 0.3
#  sample :bd_haus, rate: 1
sleep 1
end

Fai caso a come il # dice al computer di ignorare quello che c’è scritto dopo, e di conseguenza non sentiamo più il campione. In Sonic Pi possiamo usare i commenti per togliere o reinserire elementi al mix.

Infine, ecco qualcosa di divertente con cui giocare. Prendi il codice qui sotto e copialo in un workspace vuoto. Poi, non cercare di capire altro, se non che ci sono due loop – due cose che suonano nello stesso tempo. Quindi, fai quello che sai fare meglio: provare e sperimentare. Ecco alcuni suggerimenti:

  • Prova a cambiare i valori scritti in blu di rate: e ascolta il suono del campione che cambia.
  • Prova a cambiare i tempi di sleep e senti come tutti e due i loop possono girare a differenti velocità.
  • Prova a “s-commentare” l’istruzione sample (togli il #) e goditi il suono della chitarra al contrario.
  • Prova a cambiare uno qualsiasi dei valori scritti in blu di mix con numeri che vanno da 0 (tutto fuori dal mix) a 1 (tutto nell mix).

Ricordati di premere Run e sentirai il cambiamento non appena il loop viene suonato di nuovo. Se fai qualche errore, non preoccuparti: premi stop, cancelli il codice nel workspace, copi di nuovo il codice originale e sei pronto per ricominciare. Sbagliare è il modo più veloce per imparare.

live_loop :guit do
with_fx :echo, mix: 0.3, phase: 0.25 do
sample :guit_em9, rate: 0.5
end
#  sample :guit_em9, rate: -0.5
sleep 8
end

live_loop :boom do
with_fx :reverb, room: 1 do
sample :bd_boom, amp: 10, rate: 1
end
sleep 8
end

Suona e fai esperimenti finché non avrai soddisfatto la tua curiosità su come funziona tutto questo e avrai cominciato a chiederti che altro ci puoi fare. A quel punto sei pronto per continuare a leggere il tutorial.

Allora, che aspetti?

 

1.2 L’interfaccia di Sonic Pi

Sonic Pi ha un’interfaccia molto semplice per programmare la musica. Diamogli un’occhiata.

GUI

Sonic Pi Interface

  • A – Controlli di riproduzione
  • B – Controlli di modifica
  • C – Info e Help
  • D – Editor del codice
  • E – Pannello preferenze
  • F – Visualizzatore Messaggi
  • G – Help System

A. Controlli di riproduzione

Questi tasti rosa sono i controlli principali per far partire o fermare i suoni. Il tasto Run esegue il codice che hai scritto nell’editor, Stop per fermare tutto il codice in esecuzione, Save per salvare il codice in un file esterno e Record per registrare (in un file WAV) i suoni prodotti.

B. Controlli di modifica

Questi tasti arancione ti permettono di modificare l’aspetto del codice nell’editor. I tasti Size + e Size – rendono il testo più grande o più piccolo. Il tasto Align mette in ordine il codice per renderlo più professionale.

C. Info e Help

Questi tasti blu ti danno accesso alle informazioni, all’help e alle opzioni. Il tasto Info apre la finestra delle informazioni che contiene le notizie su Sonic Pi, il team di sviluppo, la storia, i collaboratori e la community. Il tasto Help apre e chiude l’help (F) e il tasto Prefs apre e chiude la finestra delle opzioni che ti permette di modificare alcune impostazioni di base del programma.

D. Editor del codice

Questa è l’area dove scriverai il tuo codice e comporrai/eseguirai la tua musica. E’ un semplice editor di testo dove puoi scrivere le tue istruzioni, cancellarle, copiarle e incollarle etc. Pensalo come una versione molto elementare di Word o Google Docs. L’editor cambia il colore delle parole sulla base del loro significato nel linguaggio. Questo all’inizio può sembrare strano, ma presto ti accorgerai che è molto utile. Per esempio, qualunque testo colorato di blu è sicuramente un numero.

E. Pannello delle preferenze

Attraverso il tasto prefs nel gruppo di tasti Info e Help, puoi accedere alle opzioni di configurazione di Sonic Pi. Il tasto di permette di aprire e chiudere la finestra delle preferenze che possono essere modificate. Per esempio, forzare la modalità mono, invertire i canali stereo, modificare il livello di dettaglio dei messaggi di log e anche un cursore per il livello del suono in uscita e un selettore audio se stai usando un Raspberry Pi.

F. Visualizzatore messaggi

Quando i tuoi programmi girano, le informazioni su cosa stiano facendo vengono visualizzate nella finestra di Log. Per default, noterai che c’è un messaggio per ogni suono che generi e che riporta il tempo esatto in cui il suono viene prodotto. Vedrai che questo ti sarà molto utile quando dovrai fare il debug (individuare gli errori) del tuo codice o capire cosa sta facendo il tuo programma.

G. Help System

Infine, una delle parti più importanti dell’interfaccia di Sonic Pi è l’Help che appare in basso nella finestra del programma. Puoi attivarlo o disattivarlo usando il tasto Help. Il sistema di Help contiene la documentazione e le informazioni su tutti gli aspetti di Sonic Pi compreso questo tutorial, una lista dei sintetizzatori e dei campioni disponibili, esempi, effetti (FX) ed una lista completa di tutte le funzioni e le istruzioni disponibili nel linguaggio di Sonic Pi.

 

1.3 Imparare suonando

Sonic PI ti incoraggia ad imparare sia l’informatica che la musica suonando e sperimentando. La cosa più importante è che, mentre ti diverti, senza accorgertene impari a programmare, a comporre e a esibirti..

Non esistono errori.

Già che ne stiamo parlando, permettimi di darti una dritta che ho imparato in anni di live coding in musica: non esistono errori, ma solo opportunità. È una cosa che ho spesso sentito dire a proposito del jazz, ma funziona altrettanto bene con il live coding. Non importa quanto tu sia esperto – un principiante o un Algoraver navigato: ti capiterà sempre di eseguire del codice dal risultato completamente inaspettato. Potrebbe suonare maledettamente bene, e allora vai tranquillo. Ma potrebbe suonare anche totalmente cacofonico e sballato. Non è importante quello che è venuto fuori, ma quello che ci farai subito dopo. Prendi il suono, manipolalo e modellalo fino a farlo diventare qualcosa di spettacolare. Il pubblico impazzirà.

Comincia dalle cose semplici

Mentre si sta imparando, si è tentati di fare subito cose straordinarie. Metti da parte questo obiettivo e consideralo come qualcosa da raggiungere più in là. Per adesso, pensa piuttosto che la cosa più semplice che potresti scrivere con divertimento e soddisfazione è un piccolo passo verso ciò che hai in mente. Una volta che hai un’idea su quel piccolo passo, prova a realizzarlo, suonalo e vedi quali nuove idee ti suggerisce. Sarai ben presto troppo occupato a divertirti e a fare progressi concreti.

Accertati sempre di condividere il tuo lavoro con gli altri!

immagini dai lab

La capacità di apprezzare non si acquisisce attraverso la contemplazione passiva: noi apprezziamo la bellezza soltanto sulla base delle nostre aspirazioni creative, per quanto non riuscite possano essere. (H. Read)