Coding e musica
La musica è una disciplina molto amata dagli studenti, sia nella scuola primaria, che nella secondaria. In questo post vogliamo parlare di come progettare un’attività didattica nella quale venga impiegato il coding a blocchetti (usando il programma Scratch) per eseguire brani musicali.
CAMPIONI AUDIO E MIDI
All’interno di Scratch esistono diverse applicazioni raffiguranti un pianoforte (ad esempio troviamo il banana piano con Makey Makey); in questa lezione ci concentreremo, però, sulla parte di coding, tralasciando la parte grafica che, nel nostro caso, verrà stata importata dall’esterno.
Vediamo, innanzitutto la differenza tra Campioni audio e MIDI.
Campioni Audio: sono frammenti di audio utilizzabili all’interno delle proprie applicazioni.
MIDI: è un protocollo di comunicazione tra strumenti musicali digitali, ad ogni nota corrisponde un numero (ad esempio: Do3=48, Do4=60).
In Scratch possiamo decidere di impiegare l’uno o l’altro, poiché esistono i corrispondenti menù:
il menù Suono per la gestione dei campioni audio;

il menù Musica per la gestione del MIDI, che deve essere importato attraverso un’estensione (cliccando su Aggiungi estensione in basso a sinistra e poi sull’estensione “Musica”).

Nella precedente versione di Scratch i blocchetti del menù “musica” (come pausa, cambio di strumento, ecc…) erano contenuti nel menù “Suono”.
MIDI
Osserviamo ora i blocchetti per la gestione del MIDI.
Per ogni tasto del pianoforte, troviamo lo stesso codice, cambia solo il numero della nota (Do=60, Re=62, Mi=64, ecc…, questo si può trovare nella pagina Wiki di Scratch). Le note vengono indicate con un numero perché usano la codifica MIDI.
Quindi, i numeri corrispondono a determinate note e le pause vengono espresse in decimali.
Se vogliamo variare la nota, Scratch mette a disposizione una tastiera virtuale.
Vediamo il codice:

Dove: passa al costume c2 si riferisce al tasto che diventa grigio perché viene premuto; attendi 0.1 secondi serve per dare il tempo all’utente di vedere il cambio di colore e 0.5 battute corrispondono ad 1/8.
Riassumendo, il MIDi è un codice che permette di esprimere quale nota vogliamo suonare, per quale durata e con quale strumento (perché esso trasmette il numero associato a determinate famiglie o strumenti).
Qui non stiamo usando file audio importati da una libreria, come di solito avviene quando si cerca nel menù “Suoni”, perché non viene suonato un file, ma è il MIDI che invia un messaggio di nota (in questo caso la 60) da suonare per 0.5 battute al generatore interno al programma (o motore di sintesi interno o sintetizzatore interno).
I generatori di suoni interni ai programmi possono essere di diversa qualità (quello di Scratch, ad esempio, non è di buona qualità), quindi, lo stesso file MIDI suonato su dispositivi diversi ha una resa sonora diversa.
Il MIDI, inoltre, risente del metronomo interno al programma, cioè del tempo. Esso viene indicato nella finestra a destra, in alto, sopra la grafica del pianoforte.

Il tempo determina la velocità di scorrimento dello spartito e quindi la percezione della durata con cui una nota viene suonata.
Per modificarne il valore, basta inserire il blocchetto imposta tempo a e scegliere un valore: qui, ad esempio, il valore di base è 60, portando il valore a 180 lo spartito scorrerà 3 volte più veloce di prima.
CAMPIONI AUDIO
Per utilizzare i campioni audio è necessario aprire il menù Suono.
Di solito si usano i blocchetti riproduci suono e attendi la fine oppure avvia riproduzione suono.
Ecco il codice.

In Scratch esiste una libreria di suoni, che possono essere associati ai singoli oggetti grafici (o sprite), che in questo esempio sono i tasti del pianoforte (in alternativa, è possibile registrare una nota attraverso il microfono). Per inserire un suono, è sufficiente cliccare su Scegli un suono (in basso a sinistra, in corrispondenza dell'immagine dell'altoparlante) e scegliere il suono desiderato.

Iniziamo dal primo sprite, quello del tasto corrispondente al Do; per inserire il suono, alla libreria dei suoni come detto precedentemente e selezioniamo in alto Note, scegliendo lo strumento musicale e la nota che ci serve.
A questo punto, dal menù a tendina avvia riproduzione suono appare C Piano e possiamo selezionarlo.
Il codice per il tasto del Do apparirà così:

Qui non è possibile variare l’intonazione della nota agendo sul numero come facevamo con il MIDI.
Con il tasto Re, eseguiamo lo stesso procedimento, importando la nota D Piano dalla libreria dei suoni e così via per gli altri tasti.
CAMPIONI AUDIO O MIDI?
Dopo aver visto come usare il MIDI e i campioni audio per il coding applicato alla musica, vediamo quali sono sono i vantaggi dell’uno e dell’altro.
I campioni audio possono essere importati dall’esterno ed hanno una qualità audio maggiore del generatore interno di Scratch, tuttavia sono più rigidi e più complessi da programmare, perché bisogna effettuare una corrispondenza manuale tasto per tasto.
Essi diventano necessari se vogliamo inserire nel programma di Scratch degli effetti sonori singoli (usando, per esempio, la libreria di suoni).
Il MIDI è più vicino alle basi concettuali del coding, perché può essere manipolato dal punto di vista numerico: ogni nota, ogni durata della nota e ogni pausa ha un numero corrispondente associato. Questo permette di usare i vari strumenti messi a disposizione da Scratch, come operatori matematici e variabili.