Il tutorial per Sonic Pi

I primi suoni con Sonic Pi

Iniziamo a creare i primi semplici suoni con Sonic Pi.

  1. Per lanciare Sonic Pi, fai click sull’icona che trovi sulla scrivania. Si aprirà una schermata come la seguente:La parte centrale è dedicata all’inserimento del testo, e cioè alla scrittura del codice, mentre la finestra alla sua destra c’è il pannello di controllo, in cui vengono mostrate le informazioni relative al comportamento del programma mentre lo si sta usando.Se fai click sul pulsante di aiuto, nella parte inferiore della schermata appare una finestra dalla quale si può accedere alla documentazione di supporto. Qui puoi trovare le informazioni relative ai differenti tipi di codice che si possono utilizzare in Sonic Pi, ai sintetizzatori, ai campioni musicali e a molto altro ancora.

    I sintetizzatori sono gli strumenti che danno voce al codice: fanno cioè in modo che un codice produca uno specifico suono. Due sintetizzatori diversi creano due suoni diversi a partire dallo stesso codice.

    I campioni sono suoni preregistrati o melodie che puoi usare direttamente per scrivere il tuo codice.

  2. Per creare il primo suono, seleziona l’etichetta Buffer 1 e digita questa riga di codice:
    play 60

    Buffer 1 indica una pagina sulla quale puoi scrivere il codice. Ne hai a disposizione 10, numerate da 0 a 9.

  3. Fai click sull’icona play che trovi in cima alla schermata. Cosa succede?Il computer riproduce il suono!Sonic Pi legge la riga di codice play 60 e produce il suono che hai appena sentito.play è un’istruzione, una parola che il programma riconosce ed associa ad un’azione che viene eseguita di conseguenza. Puoi scoprire la lista completa delle istruzioni a disposizione in Sonic Pi nella sezione Lang della finestra di aiuto.

    Il valore numerico che hai digitato dopo la parola play rappresenta invece una nota musicale.

    La riga di codice che hai scritto dice quindi a Sonic Pi di eseguire il comando play alla nota 60 … in pratica dice a Sonic Pi: suona la nota 60 !

    Ma di che tipo di nota musicale si tratta?

    Di una nota numerica. Nel mondo del computer viene chiamata nota MIDI. Le note MIDI corrispondono alle note musicali standard. Sono semplicemente scritte in un modo che il computer è in grado di leggere.

  4. Cosa succede se invece digiti pley 60 and fai click su play?Visualizzerai un messaggio di errore! Questo succede perché la parola pley non è riconosciuta da Sonic Pi. Ogni volta che vedrai apparire questo messaggio, o uno simile, saprai che hai bisogno di correggere qualcosa nella scrittura del tuo codice.E’ possibile che l’errore sia estremamente banale: potresti, come in questo caso, aver semplicemente sbagliato a scrivere la parola play!
  5. Ora prova a scrivere questa riga di codice:
    play 60
    play 67
    play 69
  6. E fai click su play. Cosa succede?
  7. Il computer inizierà a suonare le note in sequenza (una dopo l’altra), ma in un modo talmente rapido che ti sembrerà di udire un solo suono.Come si fa a far suonare una nota dopo l’altra e non tutte insieme?Basta dire a Sonic Pi di fare una pausa fra una nota e l’altra. Come?Bisogna aggiungere dopo ciascun play il codice:
    sleep 1

    sleep è un’altra istruzione: dice a Sonic Pi di fermarsi.

    Il valore numerico inserito dopo la parola sleep rappresenta il tempo in secondi. Il valore 1 rappresenta un secondo. Se quindi vuoi che l’intervallo sia di mezzo secondo, devi usare il valore 0.5.

    Il codice:

    sleep 1

    dice quindi a Sonic Pi: fai una pausa di un secondo!

  8. Utilizzando una sequenza di play e sleep possiamo comporre una melodia!

Facciamo un esempio:

  1. Seleziona Buffer 2.
  2. Digita il codice:
    play 60
    sleep 0.5
    play 62
    sleep 0.5
    play 64
    sleep 0.5
    play 60
    sleep 0.5
  3. E fai click su play.Il computer inizierà a suonare la prima sezione della melodia di Fra martino!Possiamo ripeterla due volte di fila senza riscrivere lo stesso codice? Certo.Basta inserire un codice che dica al programma di farlo. Quale?
  4. In cima al codice che hai scritto, sopra il primo play 60, digita:
    2.times do
  5. E alla fine del codice che hai scritto, sotto l’ultimo sleep 0.5, digita:
    end

    Il codice finale sarà:

    2.times do
      play 60
      sleep 0.5
      play 62
      sleep 0.5
      play 64
      sleep 0.5
      play 60
      sleep 0.5
    end
  6. Fai click su play. Cosa succede?La melodia viene ripetuta due volte!Il codice che hai scritto dice infatti a Sonic Pi di ripetere due volte tutto quanto è compreso fra do e end.Nota che alcune linee di codice sono state fatte rientrare. Non cambia nulla nella sostanza. E’ solo un trucco che serve a rendere più leggibile il codice, e quindi a permetterti di localizzare più facilmente gli eventuali errori… nel caso nel caso tu ne abbia fatti.

    Per far rientrare una linea di codice, premi due volte la barra spaziatrice.

    Possiamo fare in modo che la melodia si ripeta indefinitamente? Sì

    Ti basta scrivere loop do e end al posto di 2.times do e end , in questo modo:

    loop do
      play 60
      sleep 0.5
    end

    Questo codice dice a Sonic Pi di mettere in loop tutto quanto è compreso fra do e end.

    Mettere in loop vuol dire ripetere di continuo: la nota 60 viene ripetuta di continuo con un intervallo di mezzo secondo fra due note successive.


Note midi e note musicali

Se conosci le note standard di una melodia suonata al pianoforte, potresti tradurle in note numeriche usando questa tabella

C D E F G A B
60 62 64 65 67 69 71
DO RE MI FA SOL LA SI

Sarebbe però un processo lungo… quindi abbiamo deciso di farlo per te! In Sonic Pi puoi infatti usare direttamente anche la notazione musicale standard! Stai attento però! La notazione standard che abbiamo usato è quella inglese!

  1. Digita in un nuovo buffer:
    play :c4
    sleep 0.5
    play :d4
    sleep 0.5
    play :e4
    sleep 0.5
    play :c4
    sleep 0.5
  2. Fai click su play per ascoltare la melodia.Come vedi, è sempre l’inizio di Fra Martino

Modificare i suoni

E’ ora di rendere la tua melodia più interessante!

Puoi farlo cambiando il sintetizzatore che Sonic Pi usa per leggere il codice.

Il sintetizzatore che Sonic Pi usa di default si chiama beep.

Per usarne uno differente, devi specificarne il nome, aggiungendo il codice use_synth :name of synth prima della sequenza in cui vuoi che venga utilizzato.

In questo esempio, usiamo il sintetizzatore fm:

use_synth :fm
2. times do
	play 60
	sleep 0.5
	play 67
	sleep 0.5
end

Il codice che hai scritto dice a Sonic Pi di usare il sintetizzatore fm per ripetere due volte tutto quanto è compreso fra do e end.

Sonic Pi include molti sintetizzatori. Per trovarne i nomi, fai click sull’icona aiuto, e quindi sull’etichetta sintetizzatori. Fai quindi click sul nome di uno specifico sintetizzatore per avere maggiori informazioni su come usarlo.


Usare i campioni

Sonic Pi ti permette di creare musica anche utilizzando campioni musicali.

Per usare un campione, devi aggiungere il codice sample :name of sample nel punto del tuo programma musicale in cui vuoi che venga suonato.

In questo esempio, il nome del campione è loop_amen:

2.times do
	sample :loop_amen
	sleep 1.753
end

Sonic Pi include molti campioni. Per trovarne i nomi, fai click sull’icona aiuto, e quindi sull’etichetta campioni. Fai quindi click sul nome di uno specifico campione per avere maggiori informazioni su come usarlo.


Suonare due melodie contemporaneamente

Le canzoni sono spesso composte da una base musicale che si ripete, sulla quale viene suonata una certa melodia.
Per il momento hai imparato a scrivere il codice per suonare una sola melodia. Proviamo ora a suonarne due allo stesso tempo!

  1. Fai click sull’etichetta di un nuovo buffer.
  2. Il codice che usiamo per suonare due melodie allo stesso tempo deve essere inserito fra in_thread do e end.
  3. Dopo in_thread do, digita il codice della melodia che vuoi usare come base musicale. In questo esempio ho usato il campione loop_amen:
    in_thread do
      loop do
    	sample :loop_amen
        sleep 1.753
      end
    end

    Scrivi ora in modo analogo il codice per la tua melodia.

  4. Digita:
    in_thread do
      16.times do
    	play 75
        sleep 1.753
        play 74
        sleep 0.25
      end
    end
    

    E premi play.

    Dovresti sentire la melodia e la base musicale allo stesso tempo.


Codice dal vivo!

Sonic Pi è stato sviluppato per essere usato dal vivo.

Infatti Il codice può essere cambiato e adattato in tempo reale, ossia mentre il computer sta suonando quello che hai già scritto. Come si fa?

  1. Digita in un nuovo buffer:
    define :play_my_synth do
      use_synth :prophet
      play 50, attack: 0.2, release: 1.3
      sleep 0.5
    end
    loop do
      play_my_synth
    end
  2. Premi play.
  3. Mentre la melodia sta suonando, aggiungi il simbolo # all’inizio delle ultime tre righe di codice:
    # loop do
    # play_my_synth
    # end
  4. Ora prova a cambiare una parte del codice mentre la melodia continua a suonare, e premi play un’altra volta.Cosa è successo? La melodia è stata cambiata senza mai interrompersi!

E dopo?

Sonic Pi offre molte più funzionalità di quelle che abbiamo visto. Se le vuoi scoprire, vai al prossimo tutorial.


This learning resource is provided for free by the Raspberry Pi Foundation under a Creative Commons licence.
Find more at raspberrypi.org/resources and github.com/raspberrypilearning.