Sei sulla pagina 1di 22

Conservatorio della Svizzera Italiana

Anno Accademico 2021-2022


elettronica Alberto Barberis

corso di

musica elettronica e
programmazione con Max/MSP

anno accademico 2021-2022


Conservatorio della Svizzera Italiana

Alberto Barberis
alberto.barberis@conservatorio.ch
www.albertobarberis.it

7 _ Max/MSP introduzione 1
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

max/MSP
introduzione

7 _ Max/MSP introduzione 2
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

4.
i tipi di dati
in Max/MSP

7 _ Max/MSP introduzione 3
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

4.1 tipi di dati in informatica


In informatica si trattano dati.

Un algoritmo è tipicamente l'insieme delle operazioni che devono essere effettuate


su un set di dati iniziale (input data) per poter ottenere un set di dati finale
(output data).

I dati usati nei linguaggi informatici possono essere di diverso tipo (detto: tipo di
dato).

Alcuni esempi usati in diversi linguaggi di programmazione:

- dati numerici interi (es: 1);


- dati numerici float (numeri a virgola mobile, cioè numeri reali, es: 5.6748 );
- dati di tipo stringa alfanumerica (es: "ciao123");
- dati di tipo lista ( es: ( 1 2 3 4 5 ) );
- dati di tipo array ( es: [ 1 2 3 4 5 ] );
- dati di tipo matrici (es: [1 2 3][3 4 5] );
- dati di tipo vettore;
- dati carattere (es: "a")
- dati booleani (es: "true");
- ecc..

7 _ Max/MSP introduzione 4
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

4.2 tipizzazione
Tra i linguaggi di programmazione esistono diversi gradi di tipizzazione:

- linguaggi a tipizzazione debole: sono linguaggi in cui i dati non richiedono la


dichiarazione del tipo di dato; un esempio di linguaggio a tipizzazione debole è
javascript (il linguaggio per eccellenza della programmazione web).

- linguaggi a tipizzazione forte: sono linguaggi in cui viene richiesta una specifica
dichiarazione del tipo di dato utilizzato; esempi di linguaggi a tipizzazione forte:
C++, java.

Max/MSP è un ambiente di programmazione visuale scritto in C/C++, che è un


linguaggio di programmazione a tipizzazione forte.

Questo significa che Max/MSP ci richiede di saper trattare i diversi tipi di dati che ci
rende disponibile in modo specifico.

Quando trasmettiamo dei dati (di controllo o di segnale) attraverso i patch cable è
bene avere sempre presente il tipo di dato che stiamo trasmettendo per poterlo
poi trattare nel modo corretto a destinazione.

7 _ Max/MSP introduzione 5
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

4.3 tipi di dati in Max/MSP


In Max/MSP esistono diversi tipi di dati:

- i dati segnale sono sempre dei float, cioè numeri a virgola mobile (numeri reali);
quando trattiamo i segnali audio non dobbiamo quindi preoccuparci del tipo di
dato, perché tutti gli oggetti che usano e/o producono segnali audio lavorano con
dati di tipo float. I segnali audio sono gialli e neri

random~ genera un segnale tra 0 e il qui è superfluo, ma in


valore passato come argomento generale può essere
comodo indicare anche
i numeri interi con il
punto, quando si tratta
di float

Il number box ci fa
tutti gli oggetti che
visualizzare il float con una
precisione di 6 cifre dopo la
trattano i segnali
virgola (oggetti con la ~)
trattano segnali di
tipo float

7 _ Max/MSP introduzione 6
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

4.3 tipi di dati in Max/MSP


In Max/MSP esistono diversi tipi di dati:

- i dati di controllo (segnali grigio chiaro) possono essere dei seguenti tipi:

- dati numerici interi: sono numeri interi (numeri positivi o negativi senza
cifre decimali); nel mondo Max/MSP vengono indicati con la lettera i.

- dati numerici float: sono numeri a virgola mobile (numeri appartenenti


all'asse dei numeri reali); nel mondo Max/MSP vengono indicati con la
lettera f.

- dati di tipo simbolo: un simbolo è una stringa alfanumerica qualunque (in


altri linguaggi di programmazione si chiama proprio stringa). in Max/MSP ci
si riferisce a questo tipo di dato usando la parola chiave: sym oppure la
lettera s.

- dati di tipo lista: una lista è una collezione di dati; i dati contenuti in una
lista possono essere di qualunque tipo; nel mondo Max/MSP le liste
vengono indicati con la lettera l.

7 _ Max/MSP introduzione 7
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

4.3 tipi di dati in Max/MSP

object box di tipo


somma tra numeri
interi (l'argomento è molti oggetti che trattano le
object box di tipo
scritto come intero e liste iniziano con zl. in questo
somma tra numeri
non come float) caso vogliamo sapere qual è il
float (l'argomento è
numero di elementi nella lista
scritto come float)
(la sua lunghezza)

7 _ Max/MSP introduzione 8
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

4.3 tipi di dati in Max/MSP


In Max/MSP esistono diversi tipi di dati:

- dati multicanale (segnali mc): sono segnali


che possono trasportare le informazioni di
più segnali audio indipendenti. Un normale
segnale audio è infatti un segnale
monofonico. Con i segnali mc possiamo
invece creare dei segnali multicanale. I
segnali mc sono blu e neri.

- dati di tipo matrice (segnali jitter): sono


segnali che contengono delle matrici, cioè
delle tabella multistrato di righe e colonne,
solitamente usate per la creazione e la
gestione di immagini, video, texture, ecc.. I
segnali jitter sono verdi e neri.

7 _ Max/MSP introduzione 9
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

5.
trigger e ordine
delle operazioni

7 _ Max/MSP introduzione 10
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

5.1 l'oggetto trigger


L'oggetto trigger (indicato anche con la sola "t") è uno degli oggetti più importanti
in Max/MSP: esso permette di passare un input ricevuto dal suo inlet di sinistra a
vari output in accordo con il tipo di dato che viene specificato come argomento
(viene creato un outlet ad ogni tipo di dato specificato come argomento).

7 _ Max/MSP introduzione 11
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

5.1 l'oggetto trigger


L'oggetto trigger è importante anche perché con esso possiamo gestire l'ordine dei
messaggi (message ordering) e dunque delle operazioni che da questi messaggi
eventualmente ne derivano.

Infatti l'oggetto trigger manda in output sempre a partire da destra verso sinistra
(right - left message ordering).

7 _ Max/MSP introduzione 12
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

5.1 l'oggetto trigger

7 _ Max/MSP introduzione 13
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

5.2 il message ordering in Max/MSP


Si potrebbe pensare che i messaggi in Max/MSP vengano passati all'interno di una
patch tutti simultaneamente. Per i messaggi di controllo questo non è vero, cioè
esiste sempre un ordine nel passaggio dei messaggi.

I messaggi vengono passati secondo un ordine ben preciso, che segue le seguenti
logiche spaziali (nello spazio della window):

- right-to-left ordering: vengono passati prima i messaggi che si trovano alla


destra e poi quelli gradualmente verso sinistra;

- top-to-bottom: vengono passati prima i messaggi che si trovano in alto e poi


gradualmente quelli che si trovano sempre più in basso.

- inoltre, quando un messaggio ne genera un'altro (cioè quando si ha una catena di


messaggi), la catena ha la precedenza.

L'ordinamento dei messaggi segue quindi la posizione spaziale degli oggetti


secondo una logica right-to-left e top-to-bottom (il punto in cui sono posizionati
gli oggetti nella window influenza l'ordinamento delle operazioni) e con
precedenza delle "catene di messaggi".

7 _ Max/MSP introduzione 14
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

5.2 il message ordering in Max/MSP

terzo secondo primo


bang bang bang primo
bang

secondo
bang

terzo
bang

7 _ Max/MSP introduzione 15
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

5.2 il message ordering in Max/MSP

secondo
bang

terzo
bang

primo
bang

7 _ Max/MSP introduzione 16
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

5.2 il message ordering in Max/MSP


Per visualizzare l'ordine delle operazioni possiamo usare il Debug tool di Max/MSP
che ci permette di bloccare l'esecuzione in determinati punti.

Cliccando con il tasto destro su un cavo (in


editing mode) è possibile aggiungere un
Watchpoint - Break (che blocca l'esecuzione
del programma in quel punto).

Gli altri Watchpoint permettono di stampare


nella Max console il dato (Watchpoint - Print),
oppure di visualizzarlo a monitor per mezzo di
un pop-up (Watchpoint - Monitor).

un Watchpoint viene
visualizzato come un pallino
rosso con un numero (indice
del watchpoint)

7 _ Max/MSP introduzione 17
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

5.2 il message ordering in Max/MSP


Con la modalità Debugging attiva (Debug > Enable) l'esecuzione viene bloccata
appena trova un Watchpoint di tipo Break.

Un'animazione ci fa vedere i segnale che viene bloccato e il punto in cui viene


bloccato. In questo caso ci viene dimostrato che il programma viene bloccato
subito al primo bang, perché abbiamo messo il Watchpoint nel cavo in cui viene
mandato il messaggio "bang" per primo. Questo ci dimostra che la logica è right-to-
left top-to-bottom.

7 _ Max/MSP introduzione 18
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

5.2 il message ordering in Max/MSP


Vediamo un esempio che dimostra la regola della "precedenza delle catene di
messaggi" su altri eventuali messaggi.

il tool di Debug permette di


far procedere l'esecuzione
step by step, usando il
bottone step.

7 _ Max/MSP introduzione 19
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

5.2 il message ordering in Max/MSP


Quando le patch iniziano ad essere molto complesse graficamente è utile usare il
trigger per controllare l'ordine delle operazioni in modo diretto, senza dover
sottostare alle regole di ordinamento generali appena viste, che sono legate alla
sola dislocazione degli elementi nella window.

È una buona prassi usare i trigger per gestire l'ordinamento dei messaggi, perché
così siete sicuri che l'ordine rimarrà quello da voi definito, anche se in futuro
sposterete gli oggetti.

Se usate solo la logica generale dell'ordinamento


dei messaggi potrebbe capitarvi di modificare il
funzionamento di una patch solo perché avete
spostato gli elementi.
secondo
bang
terzo
Nell'esempio siamo sicuri bang
che qualunque sia la
posizione degli oggetti bang
l'ordine rimarrà invariato. primo
bang

7 _ Max/MSP introduzione 20
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

5.2 il message ordering in Max/MSP


La logica right-to-left vale anche per la maggior parte degli outlet degli oggetti di
Max/MSP.

I dati vengono passati agli outlet sempre da destra verso sinistra (esattamente
come succede nell'oggetto trigger che abbiamo appena visto).

7 _ Max/MSP introduzione 21
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

references

- Musica Elettronica e Sound Design - Alessandro Cipriani e


Maurizio Giri - ConTempoNet;

- https://cycling74.com/

7 _ Max/MSP introduzione 22

Potrebbero piacerti anche