A.20 Programmazione creativa in classe con Sonic Pi

# Programmazione creativa in classe con Sonic Pi

(Questo articolo è stato pubblicato in [issue 9 di Hello World Magazine](https://helloworld.raspberrypi.org/issues/9))

Il codice programmazione è uno dei media più creativi che gli esseri umani abbiano creato. I simboli inizialmente oscuri di parentesi e lambda non sono solo profondamente radicati nella scienza e nella matematica, sono i più vicini che siamo riusciti a ottenere per lanciare lo stesso tipo di incantesimi come Gandalf e Harry Potter. Credo che questo fornisca un potente mezzo di coinvolgimento nei nostri spazi di apprendimento. Attraverso la magia del codice siamo in grado di evocare storie ed esperienze individuali di apprendimento significative.

Siamo circondati da esperienze magiche. Dal gioco di prestigio di un mago del palcoscenico che fa sparire la palla nel nulla, alla meraviglia di vedere la tua band preferita esibirsi su un grande palco. Sono questi momenti "wow" che ci ispirano a prendere in mano un libro magico e imparare il French Drop o ad iniziare a suonare power chords su una vecchia chitarra. Come potremmo creare sensi di meraviglia altrettanto profondi e duraturi che motiveranno le persone a esercitarsi e ad apprendere i fondamenti della programmazione?

## Motori Musicali e Notazione

Storie di musica e di computer sono state intrecciate fin dall'inizio delle macchine computazionali, o "motori", come veniva chiamato il potente motore analitico di Charles Babbage. Già nel 1842 la matematica Ada Lovelace, che lavorò a stretto contatto con Babbage, vide il potenziale creativo di questi motori. Mentre questi primi motori erano stati originariamente progettati per risolvere accuratamente problemi di matematica complessi, Ada sognava di fare musica con loro:

"...il motore potrebbe comporre brani musicali elaborati e scientifici di qualsiasi grado di complessità o estensione." Ada Lovelace, 1842.

Naturalmente, oggi nel 2019 gran parte della nostra musica, indipendentemente dal genere, è stata composta, prodotta o masterizzata con un computer digitale. Il sogno di Ada si è avverato. È anche possibile risalire ulteriormente alla storia. Se vedi la programmazione come l'arte di scrivere sequenze di simboli speciali che forniscono istruzioni a un computer per fare cose specifiche, allora la composizione musicale è una pratica molto simile. Nella musica occidentale, i simboli sono punti neri posizionati su un pentagramma di linee che indicano al musicista quali note suonare e quando. Curiosamente, se facciamo risalire le radici della notazione musicale occidentale al monaco benedettino italiano Guido d'Arezzo, scopriamo che il sistema di punti e linee utilizzato dalle orchestre moderne è solo uno dei numerosi sistemi di notazione su cui ha lavorato. Alcuni degli altri erano molto più vicini a quello che ora potremmo vedere come codice di programmazione.

Get


## Sonic Pi - Prestazioni

Programmare dal vivo

Sonic Pi è stato utilizzato per esibirsi in una vasta gamma di luoghi come aule scolastiche, discoteche, palchi all'aperto in festival musicali, cappelle universitarie e prestigiosi locali musicali. Ad esempio lo straordinario progetto Convo che ha riunito 1000 bambini nella Royal Albert Hall per eseguire una nuova ambiziosa composizione della compositrice Charlotte Harding. Il pezzo è stato scritto per strumenti tradizionali, cori, percussioni e codice Sonic Pi. L'artista pop Jylda si è anche esibita con Sonic Pi al Sage Gateshead per la Conferenza Thinking Digital, dove ha creato un remix unico e improvvisato dal vivo della sua canzone Reeled.

![Sonic Pi in the Royal Albert Hall](../../../etc/doc/images/tutorial/articles/A.20-creative-coding-in-the-classroom/convo-small.png) Sonic Pi usato come uno degli strumenti come parte del Convo presso la Royal Albert Hall. Foto: Pete Jones.


## Live coding in classe

Sonic Pi è uno strumento di creazione e performance musicale basato su codice che si basa su tutte queste idee. A differenza della maggior parte dei software didattici, è sia abbastanza semplice da usare per l'istruzione che anche abbastanza potente per i professionisti. È stato utilizzato per esibirsi in festival musicali internazionali, per comporre in una vasta gamma di stili dalla classica, all'EDM e all'heavy metal ed è stato persino recensito sulla rivista Rolling Stone. Ha una comunità diversificata di oltre 1,5 milioni di programmatori live con una varietà di background che apprendono e condividono idee e pensieri attraverso il codice di programmazione. È scaricabile gratuitamente per Mac, PC e Raspberry Pi e include un tutorial amichevole che presuppone che tu non sappia nulla né di programmazione né di musica.

Sonic Pi è stato inizialmente concepito come una risposta al curriculum di informatica pubblicato nel Regno Unito nel 2014. L'obiettivo era trovare un modo motivante e divertente per insegnare i fondamenti della programmazione. Si scopre che c'è molto in comune ed è molto divertente spiegare il sequenziamento come melodia, l'iterazione come ritmo, i condizionali come varietà musicale. Ho sviluppato i progetti iniziali e le prime iterazioni della piattaforma con Carrie Anne Philbin, che ha portato il punto di vista di un insegnante al progetto. Da allora, Sonic Pi ha subito miglioramenti iterativi grazie al feedback ottenuto osservando gli studenti e collaborando direttamente con gli educatori in classe. Una filosofia di base nella progettazione era quella di non aggiungere mai una caratteristica che non potesse essere insegnata facilmente a un bambino di 10 anni. Ciò significava che la maggior parte delle idee doveva essere pesantemente rifinita e rielaborata fino a renderla abbastanza semplice. Rendere le cose semplici pur mantenendole potenti continua a essere la parte più difficile del progetto.

Al fine di fornire la motivazione magica, il design di Sonic Pi non si è mai limitato a un puro scopo di istruzione. Idealmente ci sarebbero musicisti e artisti famosi che usano Sonic Pi come strumento standard insieme a chitarre, batteria, voce, sintetizzatori, violini, ecc. Questi artisti agirebbero quindi come modelli motivazionali dimostrando il potenziale creativo del codice di programmazione. Affinché ciò fosse possibile, è stato quindi necessario dedicare sufficiente attenzione e sforzo per renderlo uno strumento potente pur mantenendolo abbastanza semplice da poter essere assimilato dai bambini di 10 anni. Oltre agli educatori, ho anche lavorato direttamente con una varietà di artisti diversi in classi, gallerie d'arte, studi e luoghi nelle prime fasi dello sviluppo di Sonic Pi. Ciò ha fornito un feedback essenziale che ha consentito a Sonic Pi di crescere e, infine, prosperare come strumento per l'espressione creativa.

Ci sono stati una serie di effetti collaterali eccitanti e inaspettati di questa doppia attenzione all'istruzione e ai musicisti professionisti. Molte delle caratteristiche sono vantaggiose per entrambi i gruppi. Ad esempio, è stato fatto un grande sforzo per rendere i messaggi di errore più amichevoli e utili (piuttosto che essere un enorme complicato pasticcio di gergo). Questo risulta essere molto utile quando scrivi un bug mentre ti esibisci di fronte a migliaia di persone. Inoltre, funzionalità come la riproduzione di campioni audio di qualità da studio, l'aggiunta di effetti audio, l'accesso all'audio dal vivo dal microfono, rendono l'esperienza di apprendimento più divertente, gratificante e, in definitiva, significativa.

La community di Sonic Pi continua a crescere e a condividere incredibili composizioni di codici, piani formativi, algoritmi musicali e molto altro. Gran parte di questo accade nel nostro amichevole forum in_thread (in-thread.sonic-pi.net) che ospita un gruppo molto diversificato di persone che include educatori, musicisti, programmatori, artisti e creatori. È una vera gioia vedere le persone imparare a usare il codice per esprimersi in modi nuovi e questo a sua volta ispira gli altri a fare lo stesso.

# Alcune caratteristiche divertenti

Dal punto di vista dell'informatica, Sonic Pi ti fornisce i fondamenti di conoscenza per insegnarti le nozioni di base che si trovano nel curriculum del Regno Unito come sequenziamento, iterazione, condizionali, funzioni, strutture dati, algoritmi, ecc. Tuttavia, si basa anche su un numero di concetti importanti e rilevanti che sono stati adottati nell'industria tradizionale come concorrenza, eventi, comparazione di pattern, calcolo distribuito e determinismo, il tutto mantenendo le cose abbastanza semplici da poter essere spiegate a un bambino di 10 anni.

Get

```
play 70
```

Una melodia può essere costruita con un ulteriore comando, sleep:

```
play 72
sleep 0.5
play 75
sleep 0.5
play 79
```

In questo esempio, suoniamo la nota 70 (all'incirca la settantesima nota su un pianoforte), attendiamo 1 secondo, suoniamo la nota 72, attendiamo mezzo secondo e quindi suoniamo la nota 75. La cosa interessante qui è che con solo due comandi abbiamo l'accesso a praticamente tutta la notazione occidentale (quali note suonare e quando) e gli studenti possono programmare qualsiasi melodia che abbiano mai sentito. Ciò porta a un'enorme varietà di risultati espressivi mentre ci si concentra sullo stesso concetto di calcolo: il sequenziamento in questo caso.

Prendendo spunti dal mondo della musica professionale, possiamo anche riprodurre qualsiasi suono registrato. Sonic Pi può riprodurre qualsiasi file audio sul tuo computer, ma ha anche una serie di suoni integrati per rendere le cose facili subito dall'inizio:

```
sample :loop_amen
```

Questo codice riprodurrà un ritmo di batteria che è stato una pietra miliare del primo hip-hop, Drum and Bass e Jungle. Ad esempio, un certo numero di primi artisti hip-hop hanno suonato questo ritmo di batteria a velocità dimezzata per dargli un andamento più rilassato:

```
sample :loop_amen, rate: 0.5
```

Negli anni '90 una serie di scene musicali sono esplose grazie alla nuova tecnologia che ha consentito agli artisti di smontare le parti di batteria come questa e di riassemblarle in un ordine diverso. Per esempio:

```
sample :loop_amen
```

rand
