Sonic.pi. Musica e coding nella scuola.

Sonic Pi è uno strumento per la performance e la creazione musicale basato sul coding.

Sonic.pi si utilizza attraverso un linguaggio di programmazione ideato da Sam Aaron.

I suoi punti di forza:

  • è abbastanza semplice poter per essere utilizzato nell’insegnamento del coding e della musica
  • è abbastanza potente per essere utilizzato da musicisti professionisti
  • è completamente gratuito e con un tutorial amichevole
  • è diffuso tra una grande e diversificata comunità di utenti.

Sonic.pi si installa insieme a una ricca gamma di strumenti per iniziare a fare musica: un set di sintetizzatori, alcuni loop e campioni, una vasta libreria di scale e accordi a cui attingere.

Sam Aaron ha creato Sonic.pi con il proposito di promuovere l’insegnamento del coding e della musica digitale nella scuola.
Si tratta però di un programma molto versatile e potente, adatto anche a realizzare performance e installazioni sonore.

Nel febbraio 2020 Aaron è stato invitato dal Servizio Marconi di Bologna per due giorni di workshop e performance: è lì che ho iniziato a usare Sonic.pi.

Ecco Sam Aaron durante una performance di live coding: durante l’esibizione Aaron modifica il codice in tempo reale, modificando il risultato della musica.

Sonic.pi si differenzia da molti dei programmi e dalle piattaforme web-based che di solito utilizzo a scuola per la musica digitale:

  • richiede l’utilizzo di un computer (Windows, Mac o Linux) e non gira sui dispositivi mobili
  • è completamente gratuito, a differenza delle opzioni freemium di tante app commerciali
  • l’immissione dei dati si basa esclusivamente sulle linee di codice
  • l’interfaccia grafica (GUI) si differenzia dalla maggior parte delle app per fare musica digitale:
    • non prevede la notazione musicale
    • non ha la tipica timeline multitraccia in stile DAW
    • non simula dispositivi hardware: sullo schermo non compaiono manopole o fader
  • è un ambiente molto flessibile: mano a mano che si affina la padronanza nel linguaggio è possibile allontanarsi da risultati standard, incontrando come unico limite sembra la propria creatività
  • si può integrare con altri programmi per il coding visuale, per ottenere spettacolari risultati multimediali

Inoltre la programmazione in Sonic.pi (che si basa su un linguaggio di programmazione dedicato derivante da Ruby) ne fa uno strumento educativo formidabile per avvicinare gli studenti al pensiero computazionale

Un club del codice a scuola

Nella scuola media F. Francia di Zola Predosa sto portando avanti un laboratorio pomeridiano basato sull’utilizzo di questo software. Per me, che non ho alcuna esperienza nella programmazione, è stato un salto nel vuoto!

Dopo 10 incontri è il momento di tirare le somme. Il percorso si è svolto con queste tappe:

  • lez. 1: primi comandi per suonare una nota: play e sleep
  • lez. 2: gestire tempo e le durate con sleep
  • lez. 3: i suoni del synth: inviluppo, ADSR e cutoff
  • lez. 4: blocchi di codice, ripetizioni e loop
  • lez. 5: comandi per gestire la casualità
  • lez. 6: melodie, scale, accordi; liste e ring
  • lez. 7: usare i ring con gli accordi
  • lez. 8: samples
  • lez. 9: funzioni e incrementi graduali dei parametri
  • lez. 10: creare un progetto sonoro in collaborazione

L’ora del codice

Dopo la chiusura delle scuole per l’emergenza sanitaria (febbraio / marzo 2021), stiamo proseguendo in didattica a distanza.

Anche se Sonic.pi non nasce come un ambiente di lavoro collaborativo (perché non si basa su una piattaforma online), è molto semplice condividere i progetti.
Un brano musicale in Sonic.pi consiste nelle linee di codice con cui è stato scritto. Per aprire il progetto di un collaboratore è sufficiente ricevere il codice, copiarlo e incollarlo nel programma, ascoltare il brano ed, eventualmente, modificarlo. Quindi proseguire il laboratorio in versione online è stato abbastanza semplice.

Ecco il canovaccio di ogni lezione:

  • Fase 1: Lezione frontale
    • Docente: introduce un nuovo argomento e condivide una presentazione.
    • Studenti: utilizzano il proprio PC con installato Sonic.pi e lavorano ai propri brani in modalità off-line
  • Fase 2: Laboratorio
    • Studenti: attraverso dei commenti nello stream di Classroom, sottopongono il proprio codice in via di definizione, spesso con un problema da risolvere
    • Docente: ri-posta i codici corretti, condivide l’audio del PC da Sonic.pi e commenta.
    • Studenti: copiano e incollano i codici degli altri partecipanti, eventualmente per commentarli o modificarli
  • Fase 3: Code-storm!
    • Poco prima della fine della lezione i partecipanti postano nello stream di Classroom i loro progetti del giorno e, attraverso il PC del docente vengono ascoltati e commentati.
      Abbiamo denominato questa fase “tempesta di codici” perché è effettivamente quello che succede negli ultimi 15 minuti: un continuo susseguirsi di idee musicali!
  • Fase 4: Rielaborazione
  • Periodicamente il docente riordina i codici degli studenti in un unico documento google.

Il plugin Code Blocks permette di visualizzare il codice in maniera più leggibile all’interno di Google documenti: inoltre è possibile inserire commenti e, eventualmente, tracciare linee e schemi esplicativi in Chrome (con l’estensione Web Paint), come in questo esempio.

Come suona Sonic.pi?

Per avere un’idea dei risultati, ecco un brano esemplificativo, realizzato da Massimo E., studente di seconda media.
Massimo ha scritto due blocchi di codice con parti musicali indipendenti che procedono a tempi di metronomo differenti, con un interessante effetto di poliritmia. Questo procedimento, peraltro, sfrutta una delle potenzialità di Sonic.pi precluse a innumerevoli software musicali: far eseguire due parti a metronomi differenti.

Questo è il codice con cui Massimo ha composto il suo pezzo. In questo codice la revisione, con i miei commenti, è posta dopo il simbolo #

E questo è l’ambiente di lavoro di Sonic.pi.

Ecco il lavoro di Valentina, dal risultato sonoro molto diverso:

In questo momento gli studenti sono impegnati a realizzare un progetto finale. Inizialmente avevamo pensato ad un evento di live coding, ma, data la conduzione in didattica a distanza, abbiamo optato per una playlist di brani collaborativi.
To be continued…