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.

Il MIDI risulta, allora, più utile qualora si voglia realizzare un’applicazione musicale.


ESEGUIRE LE NOTE IN SEQUENZA E CONTEMPORANEAMENTE

Prendiamo il seguente esempio di codice Scratch realizzato con il MIDI.


Vediamo che, premendo il tasto Do, viene suonata una sequenza che è l’arpeggio dell’accordo di Do settima Maggiore (Do Mi Sol Si).

Si capisce, allora, come il MIDI sia molto più comodo per creare sequenze di note (usando i campioni audio, non avrei potuto agire sulla durata del campione audio e la procedura per ottenere un simile risultato sarebbe stata più complessa).

Suggeriamo di rendere più elegante il codice mostrato, rappresentato da un elenco di istruzioni ricorsive, usando i blocchetti ripeti o per sempre dal menù Controllo.

Con questo codice le note indicate vengono suonate una dopo l’altra.

Com’è possibile far suonare due o più note contemporaneamente?

Per farlo è necessario usare il blocchetto invia messaggio a tutti, dal menù Situazioni (messaggio 1), che invia l'istruzione di suonare anche le altre note contemporaneamente.

Se vogliamo creare una situazione polifonica, dobbiamo creare sequenze indipendenti che vanno avanti in parallelo (non inserite sotto lo stesso blocco).


Con il MIDI questa funzionalità può essere ottenuta facilmente, con i campioni audio la si potrebbe realizzare avendo a disposizione un file audio dell’accordo al pianoforte.


SEQUENZA MIDI CON LE LISTE

Come accennato precedentemente, il MIDI permette di utilizzare tutti gli strumenti che Scratch mette a disposizione per la manipolazione dei numeri.

E', allora, possibile rappresentare la sequenza dell’esempio precedente, ovvero l’accordo di Do Settima maggiore (note 60, 64, 67, 71) in modo più elegante.

Invece di scrivere tante righe di codice una sotto l’altra, possiamo creare una lista (cliccando su variabili>crea una lista e e scegliendone il nome, ad esempio note) nella quale inserire una serie di valori (nel nostro caso i valori delle note).

Quando avviamo il programma viene eseguito un ciclo infinito dove la nota viene suonata per 1/8 ed il numero della nota viene prelevato dalla lista delle note (prima la 60, poi la 64, poi la 67, ecc…). Per scorrere all’interno della lista abbiamo creato una variabile contatore che, ad ogni giro, aumenta di 1 (prima è 1 e suona la nota 60, poi 2 e suona la nota 64, poi 3 e suona la 67, ecc…).

Il codice è il seguente:


Doppia sequenza MIDI

Anche questo è facilmente ottenibile con il MIDI.


Abbiamo la stessa sequenza dell’esempio precedente, ma nella colonna di sinistra essa viene percorsa dal basso verso l’alto (Do Mi Sol Si), in quella di destra, grazie agli operatori matematici (il meno) alle variabili e alle liste, la sequenza viene percorsa anche nell’altro senso (Si Sol Mi Do), dando come risultato una sequenza di bicordi, che suonano uguali a due a due.


DIFFERENZA GRAFICA TRA CAMPIONI AUDIO E MIDI

Infine, osserviamo le differenze di rappresentazione grafica tra campioni audio e MIDI.

L’audio in Scratch è rappresentato dal profilo dell’ampiezza del file audio.

Il MIDI è rappresentato dai messaggi di nota e di durata che trasmettiamo al motore interno di sintesi tramite i blocchetti verdi nei quali vengono espressi un numero corrispondente alla nota ed un numero corrispondente alla sua durata.


Possiamo concludere che il MIDI è lo strumento più manipolabile e flessibile qualora si vogliano realizzare composizioni musicali usando il coding a blocchetti.

Sottolineiamo, inoltre, che il MIDI è il linguaggio standard di riferimento con cui comunicano tra di loro gli strumenti musicali elettronici e il computer e viene usato anche con programmi professionali.

Scratch, pur non essendo un programma musicale ed avendo una funzionalità MIDI limitata, può essere sufficiente per capire la differenza tra audio e MIDI di cui abbiamo parlato in questo articolo.


Per approfondire questo argomento, guarda la video lezione Coding per la musica: metronomo, partitura e pianoforte (Corso Coding per la scuola primaria)

Vuoi certificare la tua formazione? Abbonati a PaLEoS!




© 2020 PaLEoS Srl
Via Sant'Angelo 25 - 50142 Firenze (FI)
Tel. 329-5983082 - info@paleos.it paleos.srl@pec.it
P.iva 06843880482 - Capitale Sociale € 39.000
Nr. iscrizione Registro Imprese Firenze: 660459

 | Privacy | Dove siamo