Quinta Parte: Approfondimenti
Benchè a questo punto sia possibile emettere numeri interpretabili come note tramite il matrixctrl , se tentate di implementare il precedente tutorial, vi troverete di fronte ad un “binario morto”, perchè per raggiungere l’obiettivo il più rapidamente possibile, ho completamente tralasciato il reale contenuto di una nota midi, concentrandomi solo sull’intonazione.
Infatti, una nota midi è composta non solo dall’intonazione (pitch) ma contiene dentro di se altri due valori che sono il volume al quale la nota deve essere suonata (velocity) ed il canale midi alla quale deve essere suonata (midi channel).
Un ultimo valore, non presente nella struttura dati rappresentata dalla nota midi è la sua durata, questo valore non è direttamente presente, ma è “deducibile”: una nota midi con un determinato pitch e la velocity impostata a 0 viene denominata “note off” ed indica che quella nota è arrivata alla fine della sua durata.
Ancora una volta, trascurerò la durata di esecuzione della nota per semplificare la patch, che è la seguente (cliccare per ingrandire):
Mi concentrerò invece su questi due aspetti: pitch (che in realtà non è molto diverso dal tutorial precedente) e velocity, con cui andremo a gestire l’ampiezza (volume) del segnale generato dalla nota.
Come potete vedere, ho suddiviso la patch in blocchi e per facilità di comprensione ho utilizzato due oggetti molto comodi per non finire sepolti dai “cavi” che collegano gli oggetti. Si tratta di send e receive. Questi due oggetti devono avere un parametro che indica il nome della loro connessione, per migliorare la leggibilità della patch ho colorato con lo stesso colore send e receive connessi, per esempio “matrixList” (verde) è la connessione che passa la lista della colonna in uscita dal matrixctrl a zl.