Archivi categoria: Ableton Live

Scopri tutti gli articoli relativi ad Ableton Live, uno dei software di produzione musicale più diffusi sul mercato.

Live Performance con jitter

In occasione dell’incontro di giugno dell’Ableton User Group Verona ho realizzato dei visual generativi con jitter per accompagnare la musica create da due miei studenti: Davide De Faveri e Lorenzo Ghelli.

Inizialmente l’idea era quella di usare Processing ma ho incontrato una serie di problemi che avrebbero richiesto un po’ più di tempo rispetto a quello che avevo a disposizione per essere risolti:

  • possibilità di andare in sync con la musica oppure no utilizzando Ableton Link invece che il MIDI Clock
  • possibilità di controllare i visual con un controller MIDI (Ableton Push 2)
  • gestione fluida di quattro visual differenti per altrettanti brani
  • performance elevate costanti (più di 30fps)

Abbandonata l’idea di usare Processing mi sono lanciato su Jitter: un pacchetto di oggetti per gestire video e grafiche all’interno di Max/MSP.

Partendo dagli esempi contenuti nei tutorial, ho assemblato tutto all’interno di un MIDI Effect Rack in Max4Live e ho mappato i controlli attraverso delle Macro sui knob del Push.

Il video della performance

La patch di jitter

----------begin_max5_patcher----------
3223.3oc6cs0jaaaE94c+UvQienMQYKA.u1mVm19TcR531NSR83QCkHjVZSQ
pPBsdcyj+6EWHo.0xKPjfRZmti8pK.f3x24fCN3CGR8a2dyrkoOgymY7mM9f
wM27a2dyM7jXIbSw2uY11fmVEGjyK1rUoa2hSHylKxifehvS+6e2a+K+8xT2
kgyoEJfDklrHCuhHZAaGvclyMfV2YO2.3A4eAcmowGKtt0oIjjfsXdM91kwX
RZhw+LHI236SiCMdOdy93frpVIfr5gnjMmRKjrea5dBsh4iFyhTiB4sX5xO8
cNVyj5L4Q+WdmAXcmYCiMdVGp4njxJFvR62u8V1KyGIx9u92u+GM9g+lwO8i
8.uPe9v0jM1gPwX2QmnaeMP+fKrQv0Y5AWR5lMwXk.PKGtxiISjKdqZ.1Jlz
w0TGTJGPhjHecGVTMyhnR9pqY0C3UeFGtJMNMSjOWs17NWSeOSjODX634.cY
IA7cLc8rP.jKz1xeNqnUUjD1aCOHYynZADb1BbR.UMPVXcYE.ESes7YnosM6
yrW6B+66RtZfevEE9CHjr8Q8o+63x0eQlBymfdLPmEED2k4hdqtlENrFYcvp
Z.yyDXyZBjs7az9Bpx9BCF3kdS7Bg387B7mD9UtXFP.iNVSO9AUE+3f2hsog
X40qV7knPxCrB3c3ZpCgEIFmt5ySptrsMjq0IrOOZc49qNcKKPVpJKB1SREZ
y4ytJri3Z4vQIMg88Wc5F6gdph8gYAeo1zfIC4iidDeWnDR8XPVEDVk4GPer
Ggiku2AOVrMYe1QFKC1sCSWgJQfan1EK8UQ0EJvxpeEg1WYc0wu75yElyMls
NNMfzr0MytVBFbRBvhDyCnikELsgnk6I3CeJuPRVHJYRq383z0kIWltbeYKs
AX4+c.yREsZ4GmlroRh+elMuoZHfqB0REj+PZFo6ZnDLa5x2mDQxIesviEQ9
bk3x2lFMZXuZzHeMoQ2SEc0oQi7tt0nqow9Ky5Uk7WdYnR1i9HxyTO5i8UQW
e5iNufzG+490G+4qZ8w2mVfg8nNBAZRcrmJ55ScD8BRc7HoYiqqaovx5cUOW
gqtC5a0cfkmDAOiP8suJ55S8E9RR88guRdXaWJubqG8p81Z0TBafyft69s3j
8poWVxtkoYA23cxVY+WTcsvR04HBdawwzLCjDxzalydAjb3ijpOBkJALQ5iG
JhkTQrRj93gh3IUDuDoOdnH.G49hSh7mOTJjb+AI0gPx8HG4tjiTeB.osd6y
ghD0A+uF20G5hR7ZmlAeKc5Wvp9WBG5.0yR38UQWc1.g9ufrAJDm8sHtRaNu
6p5bZKLA+Epf3YmJIswxRMtWnZX.55X.r4q3hD7W64ziIuVOhlkAIaZTGwqZ
cxZxan9Fr6LRRy1FDyHBbPLX5H1HmfHSWAQ9vSGBZ1.WyDEC6l.dduDmcrJ+
5nX7i3r75Sj3VXjRt9rgsAeRXTvqRcj1fhjNnomgeLp75spRMHihUDJPsOS.
kOUc.7rpIMDmkrOpx3KWVVzk3RMlHHeWAIubgaY1GPeSgkJlsNKgbvSR8ipR
rgcZD3P496rzc3jnjiMrTkcHdcv9Xxhlg754eDGz0yrQcnalsIKJLMg0IpIF
XIW1bTSv7i6DXKOX3kHIXWCWLUYghIsjYNcPtOeYPFSJUXdEVlIIMMtdVUWW
LdMoH6cQIIGghjzcsmYVzlG53ZWlRybaW0MOmbpEOQtKnJDjELy60KWPbbw7
55U+SAIQaCHXRjPD.MqxTrDyC4qxRiiqMdE47XC4DRUvWgqNALSYkAZwi1Up
DMqRJGFsAmSpmFIXSd8TprlKkz9kESfWP8LbWLcTTu.0hqG4YqxV.qk9QVBo
SqxC1fqlKJaN7M.C9+kyrcc41bElebJzIM72rKNaGIU4VsK1iswVOHsNrQ1x
pGRqcVtJxPvxZqpTGJeD+ztLi2rF7mdyZ3nvSg2b.KtMghHexbJfSzULbxQy
7eMi7GnP52P+6aovJ8cH8cD8czeTK5rh8sA78mNTFNDTFoQTlWq8fGt78QHV
TEZW9p1ACqZfQsQrLTTF.cxFB40TRH9IIWHzB7H58JMmDd.Z5EfLaAAPsh.f
wh.G7cHNJosEM3CNV9MCM4o6yVUJGKEYF0GnzUAIQIUtR8gClSNpfoYgBGSU
SdMccMX6cMyIoqwVpRcTCX7wooWfTrWXUTvooWnrXxp0dQQhk6YnXq+B+f6X
e+mj+ZzMOrLHtvarpUSZvctguE70wozo7CZmmdt7UrP978bVZOpWFeZjklV2
.tkRw13Z1Vn4cKmSY+pmY7hGLxSLdg7ulwKYBJoIuDWEjjzlIZKsfx6tYPDg
zN7R6WkMA.5JODGOp6pBUhCD0mbtEqII5f3v1KW0g+MYbBtKCuCmDZPkg4ih
mLWN4xEA5mt3ICYOahmG0FrD7Y57E1+A2MJXQbKW3B0Kr.NEXAoSRUyiYL.Y
jjFkiGXDRy2AlsiXSungBLeJhrfNqOK5olODB2WYXsSFVEasQHLdki0W4X8U
NVGKQVDiXik5fOPAUUH9cuPOLUA6jblics5YFIGDMqfyCufTC72kty3d5eei
w8TeuXpN1iiKPSQnbXIXtFYo.WfchvRKBMuCxvfWy7uxvY9x4FHC9g5ifFVl
FUQd+3fZg+O.j24BpguLTo+VcXnvkqG65dtvVvkVMVEBtEXitH3tA2LeFrX+
xlpaw43MFptgNuvn5lIxThnRn0DRWJuxApzKfScuPIr.Lk8BzozKlJZzgpRf
MbJoQuDn6uW37JM5sRzfiMmVXKf2TRK70Eqv0i.jCNdjUbCFbH.PFFVJhGPA
oAZiMKvIQxmVCQPp19fvCKWwCsBeIWMzFb3cJvg4qLW8JyUuxb0qLWMpnCb8
93X5HBiSFcHBJ1SZQbVINNnIIDActz6Es1SGo9fC2pf6abAel7y7nmcj906K
s5OxzR+gR67r.VfHzX254DFjUS.AP43XipSlZbSvr3thYgFK2ObWa6j0mqXt
K+L9qZALM8KBn49Yb2puomya5s1.2Awnl44hlDGUCmqIbyvpxNgyTtgbUCtt
IrOnLm.++Ek.OOxmjt8zGevOUDlBVfKPvOAbd4G7SGDF8F+SsTTMFBTswNRP
0Mt4P4GoHnVJ3Gw0SuDBXdg3GgcbUanaI3d1KTIBIZUL9tkwAq97CowiK7eD
GHXoefCfVtVNypZdtXN65MpUQhS42F3OgzSB7eYvOYHYny7JgQwsoKxUuy7b
ufy7DJ2F6RGVbYh74681QPojm4DNOCXcghRylMPseWHi8jQ.Z1B3p7w25DgZ
nKjxUbZPnXWeCg4awTLj3tUzYvg6a6lrfSsxD08FhziuiFFilhS6vxqYRaF+
XToa9hobVidLtXK.pI03h8Ez1RWgE0INsoPkR7bjnLbnlFDy6RZMN9N5Z7OX
b+tznDxBVqa.GDhAE2PANhHDGXAmRGEOo3o2WuP1WhRBS+hw8jHZG23eTrJV
9XNWROgVlvmngfYOiTvFCwtISA6ne3AZXb5IsHzvMPW6WPflhWyKl8Y57nLb
RHNy3dbVPNV7rB2vT7u6rFl1g3gom.0.9dSi1wkxYPhwRCNVMFrwR5IawXfF
QGoQ74Rsf1uJd7OgPiAeDQ0qii1c6qJDBmLuga62pm+J+TdMdDyL7FDaDGsM
hLq2e+c9AbXz9sG+KvyCQgg0NG9lvxhf2U7FB0i0qF9M4o4exL.8qBwah5mP
f.5NlM5B.7YrP6UiJ7VnfFHEnfOSHobKoPCUKJNmsMJj60QwPyhtyW1S5Bee
wC7BypuMxdlsJXfb.BN7VBnPKIeuzO7VRkgjYmvs.fsQ.9atdUe6vyQvZOIF
lz9JnV3jdzimhA2xreqZ5Glzg1ukkJRdaczRH4fPtkVhOsGL1VBd1POkl2vJ
DbrsjoBsjkNFSHeUGSiUNgTwzaY2YbsjqpioQ2RNpzRt5nkNESoiqkrNWymp
+zko+f.X3MjJlHrzRKohIBKcrzpJXGPGVxgpXg.3niVx6bo4AcUcw9wZ0C5L
VGNsc4dXh7j82j8Mc6.jRc052hS5xCHnRV2zwzFdKANKsjJyPgZYdiJdK.0w
pP.krEnkVRIaAPczRtmti+GMEEYJ9kjvEHMGk+sw12TYJIPGq5CNa9W.NE+K
5bSgN1HdjU5c3aisuozpp5v5.3rw3APEWR7zQCYNLUHA6QGcqCwZjitkgN51
E542pPseaBc7sHDOXEE2uDGwXUEqbjfcB5vJuKbpO5kYviNzdW.I03cr6SkY
kis4EfWFNgb7clwrszJLpbI6RHnkaUoa+8a+e12xekC
-----------end_max5_patcher-----------

Ableton Live 10 in public beta: le principali novità.

Aggiornamento 17 gennaio 2017: Ableton 10 arriverà il 6 febbraio.

Si è cominciato a parlare di Ableton 10 da fine agosto quando, in un video di DJ Jazzy Jeff, qualcuno aveva notato alcune differenze rispetto alla versione 9.

Le speculazioni sono andate avanti per diverse settimane finché, il 2 novembre, Ableton ha annunciato ufficialmente che la nuova release del software era in lavorazione e che sarebbe stata disponibile a inizio 2018.

Arriviamo a oggi o, meglio, ad un paio di giorni fa: Ableton 10 è entrato nella fase di public beta per chi possiede una licenza standard suite di Live 9.

È un segnale chiaro che ci stiamo avvicinando alla release finale del programma e Ableton ha bisogno che gli utenti lo testino e scovino bug prima del rilascio ufficiale.

Dall’annuncio della beta pubblica ho letto parecchi commenti critici nei confronti dell’aggiornamento: molti ritengono che il prezzo sia sproporzionato rispetto alle novità introdotte. Io ho avuto la fortuna di essere selezionato tra i beta tester a inizio novembre e, superato lo scetticismo iniziale, posso dirvi che questo aggiornamento vale ogni centesimo.

In questo post troverete una panoramica sulle novità che, personalmente, ho trovato più interessanti.

Una nuova interfaccia

Interfaccia Live 10

Partiamo dalla cosa più ovvia: la grafica. Una nuova icona, un nuovo font – Ableton Sans – che rende più leggibile l’intera interfaccia del programma, e dei nuovi temi: Light, Mid Light, Mid Dark, DarkLive 9.

Su schermi ad alta risoluzione (HiDPI) risulta tutto molto leggibile e definito; ricordo ancora quanto ho benedetto l’aggiornamento di Live 9 che ha introdotto il supporto al mio retina display.

Capture: non perdere mai un’idea

Una delle novità più attese e che, dal mio punto di vista, giustifica l’investimento per l’aggiornamento è  la funzione Capture. Ableton sarà perennemente in “ascolto” di tutti gli input che arrivano sulle tracce MIDI. Alla pressione del tasto capture, inserito accanto al pulsante di registrazione della sessione, viene creata automaticamente una clip.

La cosa che più mi ha colpito di questa funzione quando l’ho provata la prima volta è che Ableton cerca di mantenere sia il tempo che il groove della nostra performance adattando, di conseguenza, le impostazioni del progetto.

Nuovi device

Wavetable - Ableton 10

Come ogni aggiornamento che si rispetti, sono stati introdotti dei nuovi dispositivi (di cui parleremo in modo più esteso prossimamente):

  • Wavetable: un nuovo sintetizzare a due oscillatori che, com’è facilmente intuibile dal nome, sfrutta i principi della la sintesi wavetable.
  • Echo: un nuovo effetto delay con molte possibilità di modulazione.
  • Drum Buss: un processore di dinamica progettate per le batterie dal carattere analogico.
  • Pedal: un distorsore/overdrive/fuzz che si ispira a tre classici pedali da chitarra.

Sono stati migliorati anche due device già presenti nelle versioni precedenti: Utility ed EQ Eight.

Arrangiamento, automazioni e navigazione

I programmatori di Ableton hanno concentrato i loro sforzi sul miglioramento della modalità arrangiamento: ora è più facile fare editing, arrangiare e creare automazioni.

Queste le novità principali e il relativo shortcut, se presente:

  • È possibile fare lo stretch delle clip audio prendendo Shift e trascinando il bordo.
  • È possibile muovere il contenuto interno di una clip premendo Ctrl+Shift (PC) / Alt+Shift (Mac) senza spostare la clip. Tenendo premuto Alt (PC) / Cmd (Mac) si disattiva temporaneamente la griglia.
  • Le note MIDI vengono riprodotte anche se il playhead è partito dopo l’effettivo inizio della nota (MIDI Note Chasing).
  • Il doppio click su una traccia MIDI crea una clip.
  • È possibile zoomare le tracce premendo Alt e verticalmente premendo Ctrl (PC) / Cmd (Mac).
  • Zoom in/out di una porzione di tempo selezionata (Z / Shift+Z).
  • Aggiunta funzione mostra tutte le tracce (S).
  • È possibile mostrare/nascondere tutte le automazioni (A).
  • Segmenti di automazione possono essere spostati orizzontalmente

Miglioramenti del workflow

In generale questo aggiornamento di Ableton 10 si caratterizza per una serie di piccoli e quasi invisibili miglioramenti che, però, cambieranno e velocizzeranno il vostro modo di lavorare:

  • Multi-Clip Editing: è possibile editare fino a otto clip midi nella Vista dettagliata. Se le clip sono di lunghezza differente, Ableton creerà automaticamente un loop per allineare tutte le clip.
  • Gruppi annidati: i gruppi possono essere inseriti in altri gruppi. Non c’è limite al numero di gruppi annidati gli uni negli altri.
  • Reset con doppio click: facendo doppio click su qualsiasi parametro, il suo valore viene resettato (finalmente!).
  • Raccolte nel browser: è stata aggiunta nel browser la sezione Raccolte che permette di categorizzare il contenuto della libreria per tag colori.
  • Metronomo: non solo sono stati aggiunti dei nuovi suoni tra cui scegliere ma è anche possibile impostare il metronomo per contare le suddivisioni ritmiche.
  • Backup Folder: ogni volta che salviamo il progetto, viene creata una copia di backup della versione precedente. In questo modo è possibile risalire fino a 10 salvataggi precedenti.
  • Pan Split-stereo: facendo Ctrl+Click sul knob del Pan è possibile impostarlo come Stereo Split.

Max 8 e Max for Live

Max for Live è ora integrato direttamente nel programma: non è necessario installare alcun pacchetto esterno. Nella versione beta di Ableton 10 è presente una versione beta di Max 8. Beta-inception.

Tra le novità: nuovi strumenti e il supporto multi input/output.

Conclusione

Quelle descritte in questo post sono solo una parte delle novità presenti nella versione beta attuale di Ableton Live 10. Per farvi un’idea, nel manuale ufficiale il capitolo What’s New in Live 10 occupa ben 10 pagine!

Ormai dovrebbero mancare poche settimane al rilascio della nuova versione; come già detto, io non vedo l’ora.

Processing e Ableton: sincronizzare musica e visual via MIDI

Oggi sfrutteremo Processing per creare dei semplici visual sincronizzati con la musica attraverso il protocollo MIDI. Il software musicale che userò per fare gli esempi è Ableton Live 9 ma è possibile usare qualsiasi Digital Audio Workstation in grado di inviare messaggi MIDI.

Lo schema delle connessioni, dunque, sarà: Ableton Live gestirà la musica e invierà, attraverso dei messaggi MIDI, delle informazioni che Processing acquisirà in input per generare i visual.

MIDI e the MidiBus

Perché ho deciso di sfruttare il protocollo MIDI? Le ragioni sono molto semplici:

  1. è uno standard per le applicazioni musicali
  2. è un protocollo flessibile
  3. è semplice creare, inviare e monitorare i messaggi MIDI.
  4. rende molto semplice la sincronizzazione

Per questioni di spazio, non mi dilungherò in questo post sulla spiegazione di come funziona questo protocollo; trattandosi di uno standard sviluppato negli anni ’80, ci sono numerose risorse on-line che vi permettono di approfondire.

Libreria: the MidiBus

Anche se Java supporta nativamente il MIDI attraverso il pacchetto java.sound.midi, per lavorare con questi tipi di messaggi in Processing consiglio di installare una libreria.

Processing Contribution Manager MIDI Bus

Aprite Processing, andate nel menu Tool > Add new tool. Nel pannello Libraries digitate MIDI, selezionate The Midi Bus e cliccate sul pulsante Install in basso a destra.

macOS: IAC Driver

Di norma per inviare e ricevere messaggi MIDI è necessario dotarsi di una scheda e dei relativi cablaggi. Nel nostro caso, però, dovendo inviare e ricevere messaggi tra due applicazioni possiamo sfruttare lo IAC Driver: una scheda virtuale che ci permette di gestire tutte le connessioni internamente al computer.

Nota: Per Windows esistono delle applicazioni da installare che hanno la stessa funzione del driver IAC. Con una veloce ricerca su Google ho trovato LoopBe1 e MIDI Yoke che non ho provato personalmente ma sono consigliate su diversi forum.

Per configurare lo IAC Driver su macOS aprite Applicazioni > Utility > Configurazione MIDI Audio. Cliccate su Finestra > Mostra Studio MIDI ⌘2

Studio MIDI macOS IAC Driver

Fate doppio click su IAC Driver e mettete la spunta su Il dispositivo è acceso.

mac OS accendere IAC Driver

Ora che abbiamo attivato il canale di comunicazione interno per inviare e ricevere messaggi MIDI, possiamo procedere con Processing.

Ricezione messaggi MIDI in Processing

Apriamo un nuovo sketch e verifichiamo subito che Processing veda lo IAC Driver.

/*
 * Processing e Ableton: sincronizzare musica e visual via MIDI
 * Federico Pepe, 05.03.2017
 * http://blog.federicopepe.com/processing
*/

import themidibus.*;

void setup() {
  size(100, 100);
  background(0);

  MidiBus.list(); 
}

void draw() {
  
}

Con queste poche righe di codice abbiamo importato la libreria all’interno del nostro programma e attraverso il comando Midibus.list() possiamo verificare nella console tutte le periferiche MIDI attive.

Questo è il risultato che ottengo lanciando il programma sul mio Mac. Ovviamente potrebbe cambiare sul vostro; l’importante è che sia presente IAC Bus.

Available MIDI Devices:
----------Input----------
[0] "IAC Bus 1"
[1] "Real Time Sequencer"
----------Output----------
[0] "Gervill"
[1] "IAC Bus 1"
[2] "Real Time Sequencer"

Progetto Ableton Live: invio del messaggio

Apriamo Ableton Live e creiamo un nuovo progetto. Apriamo le preferenze e verifichiamo che il driver IAC sia selezionato come scheda sia per l’input che per l’output.

Ableton Live 9 MIDI Preferences

Nella prima traccia MIDI nella parte di input/output selezioniamo MIDI ToIAC Driver. In questo modo tutti i messaggi che saranno presenti su questa traccia saranno inviati come output al driver e, di conseguenza, saranno ricevuti da Processing.

Ableton MIDI Out Tracks

Creiamo una Clip MIDI nel primo slot contenente un C3 lungo 1/4. Assicuriamoci che la clip sia il loop quando premiamo il tasto play su di essa.

MIDI Clip

Ricezione del messaggio

Torniamo su Processing e modifichiamo il nostro programma come segue:

/*
 * Processing e Ableton: sincronizzare musica e visual via MIDI
 * Federico Pepe, 05.03.2017
 * http://blog.federicopepe.com/processing
*/

import themidibus.*;

MidiBus myBus;

void setup() {
  size(100, 100);
  background(0);

  MidiBus.list(); 
  
  myBus = new MidiBus(this, 0, 1);
}

void draw() {
  
}

void noteOn(int channel, int pitch, int velocity) {
  println();
  println("Note On:" + " Channel: "+channel + " Pitch: "+pitch + " Velocity: "+velocity);
  println("--------");
}

Rispetto al codice scritto in precedenza, abbiamo aggiunto e inizializzato un oggetto di tipo MidiBus: myBus = new MidiBus(this, 0, 1);. In questa fase è fondamentale inserire i parametri corretti: il primo è il parent a cui la libreria è collegata, il secondo è l’input e l’ultimo l’output. I dati sono facilmente individuabili grazie al comando .list() dato in precedenza.

Abbiamo, infine, aggiunto una funzione che è presente all’interno della libreria: noteOn() e che restituisce i valori MIDI: canale, pitch e velocity di tutte le note ricevute.

Verifichiamo il funzionamento

Facciamo partire la nostra clip su Ableton Live e avviamo il nostro sketch su Processing. Se in console appare un messaggio come quello qui di seguito, siamo riusciti nel nostro intento:

Available MIDI Devices:
----------Input----------
[0] "IAC Bus 1"
[1] "Real Time Sequencer"
----------Output----------
[0] "Gervill"
[1] "IAC Bus 1"
[2] "Real Time Sequencer"

Note On: Channel: 0 Pitch: 60 Velocity: 127
--------

Processing sta ricevendo tramite IAC Driver un messaggio Note On con i seguenti parametri:

  • Canale: 0
  • Pitch: 60 (che corrisponde al C3)
  • Velocity: 127

Adesso, se andiamo a modificare la clip su Ableton inserendo nuovi messaggi, possiamo verificare che anche questi siano ricevuti da Processing.

Creare i visual

A questo punto non ci resta che sviluppare in Processing i nostri visual sfruttando i parametri MIDI inviati da Ableton. Nell’esempio molto semplice che trovate di seguito, viene disegnato un quadrato al centro dello schermo la cui dimensione dipende dal valore di pitch ricevuto via MIDI. In aggiunta a quanto visto in questo post, sfrutto la funzione noteOff() per impostare la grandezza del quadrato a 0. Di certo non è il metodo più elegante ma di sicuro funziona.

/*
 * Processing e Ableton: sincronizzare musica e visual via MIDI
 * Federico Pepe, 05.03.2017
 * http://blog.federicopepe.com/processing
*/

import themidibus.*;

MidiBus myBus;

int size;

void setup() {
  size(400, 400);
  background(0);

  MidiBus.list(); 
  
  myBus = new MidiBus(this, 0, 1);
}

void draw() {
  background(0);
  rectMode(CENTER);
  rect(width/2, height/2, size, size);
}

void noteOn(int channel, int pitch, int velocity) {
  println();
  println("Note On:" + " Channel: "+channel + " Pitch: "+pitch + " Velocity: "+velocity);
  println("--------");
  size = pitch;
}

void noteOff(int channel, int pitch, int velocity) {
  size = 0;
}

Ed ecco il risultato: