Sei sulla pagina 1di 33

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

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

max/MSP
introduzione

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

1.
l’ambiente di
programmazione
max/MSP

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

1.1 max/MSP: cosa è.

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

1.1 max/MSP: cosa è.


- max/MSP è un ambiente di visual programming per l’audio digitale e la
multimedialità particolarmente adatto all’elaborazione e alla sintesi in tempo reale del
suono.

- max/MSP è un software proprietario dell’azienda Cycling’74, con base a San Francisco


in California.

- max/MSP nasce negli anni ’80 all’IRCAM dalle ricerca e dallo sviluppo di Miller
Puckette. Inizialmente max/MSP è un software che permette di gestire solo segnali di
controllo (Max), non permettendo il trattamento in tempo reale dei campioni digitali di
un segnale audio (MSP).

- negli anni ’90 l’IRCAM cede la licenza; la prima versione commerciale, sviluppata da
David Zicarelli, appare nel 1990. Nel 1997 Zicarelli fonda la Cycling’74.

- la sezione max del software si amplia con la sezione MSP che permette il DSP dei
segnali audio e successivamente con la libreria Jitter (trattamento delle immagini-
video, della computer graphics e del 3D), e poi con altre estensioni come MC e NODE.

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

1.2 max/MSP: a cosa serve


sviluppare algoritmi e procedure per programmare il computer;

utilizzare segnali di controllo per il trattamento dei segnali MIDI;

effettuare operazioni di sintesi digitale del suono (additiva,


sottrattiva, wavetable, granulare, FM, RM, sintesi a sistemi misti,
sintesi nel dominio spettrale, ecc.);

registrare in digitale dei segnali audio;

effettuare operazioni di elaborazione del segnale digitale (DSP) nel


dominio del tempo e della frequenza;

creare interfacce grafiche per il controllo del programma;

gestire operazioni di spazializzazione del suono;

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

1.2 max/MSP: a cosa serve


creare ambienti esecutivi per il live electronics;

creare procedure per la composizione algoritmica e la


composizione assistita;

gestire l’interfacciamento con hardware esterni dedicati al


trattamento e alla sintesi del suono;

sfruttare le strutture dati offerte dal linguaggio;

accedere alle web API per mezzo del framework node.js;

creare ambienti interattivi (audio-video-immagini-sensori-


microprocessori);

ecc..

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

1.3 la programmazione informatica


Con il termine programmazione si intende in informatica l’insieme delle tecniche e
delle procedure utilizzate da un programmatore (o sviluppatore) per creare un
programma (software) da far eseguire a una macchina (computer) definendo una
serie di operazioni (da eseguire solitamente su dei dati) scritte su di un codice
sorgente con un determinato linguaggio di programmazione (che viene compilato
o interpretato per poter essere reso comprensibile alla macchina).

Un linguaggio di programmazione è un linguaggio formale (costituito di stringhe


appartenenti ad un certo alfabeto) che specifica, avvalendosi di una precisa sintassi
e di una semantica, un insieme di istruzioni che possono essere usate per far
produrre ad una macchina dati in output, eventualmente elaborando dati in input.

- Sintassi: è l’insieme di regole formali che una porzione di codice deve seguire per
essere considerata conforme ad un linguaggio di programmazione;

- Semantica: insieme di regole che specificano il significato di una porzione di un


programma sintatticamente valido.

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

1.4 il visual programming


Con il termine visual programming si intende una metodologia di programmazione
informatica che sfrutta un'interfaccia grafica uomo-macchina semplice e intuitiva
per la definizione delle procedure e degli algoritmi di programmazione.

Un linguaggio di visual programming consente di programmare un software


tramite la manipolazione grafica degli elementi del linguaggio e non tramite
l’utilizzo di una sintassi scritta con linee di testo, come avviene in un tradizionale
linguaggio di programmazione (come C, C++, Java, javascript, python, ecc.).

somma in un tradizionale
linguaggio di programmazione
somma in un
ambiente di visual
programming

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

1.4 il visual programming


I vantaggi di un linguaggio di programmazione visuale sono:

1. facilità di apprendimento grazie alla significativa astrazione che li


caratterizza;

2. hanno una sintassi semplice (vengono eliminati i possibili errori sintattici di


programmazione);

3. permettono di visualizzare le fasi del programma (flow chart);

4. permettono un facile debugging (è possibile accedere facilmente al flusso


di dati elaborati in ogni punto del programma);

5. adatti per la prototipazione;

6. sono di “alto livello” e dunque non richiedono al programmatore di dover


trattare le problematiche della programmazione di “basso livello” (gestione
della memoria, thread, gestione degli errori, ecc..)

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

1.4 il visual programming

Il paradigma essenziale su cui si basa un linguaggio di programmazione visuale è la


modularità.

Nei linguaggi di tipo visuale esistono dei moduli grafici (detti “box”) che vengono
collegati attraverso dei “cavi virtuali” (detti "patch cord").

Similmente a quanto accade nei sintetizzatori modulari un generico “box” (modulo


grafico) può eseguire una certa funzionalità (operazione/generazione/
elaborazione) su un flusso di dati in input per generare un flusso di dati in output.

INPUT OUTPUT

BOX
(oggetto max/MSP)

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

1.4 il visual programming

La modularità è uno dei principi fondamentali dei nuovi media (i media digitali).

Essa rientra infatti nella lista dei principi dei nuovi media redatta da Lev Manovich
nel 2001 (rappresentazione numerica, modularità, automazione, variabilità,
transcodifica).

Secondo Manovich nei media digitali esiste una "forma a frattale": moduli semplici e
indipendenti possono essere combinati in strutture più complesse dove però ogni
elemento mantiene la sua identità separata e indipendente. E questo in modo
iterativo.

Ogni oggetto di Max/MSP è infatti a sua volta costituito da moduli più semplici
inscritti nel codice C che definisce quell’oggetto.

Vedremo come sarà possibile costruire noi stessi dei moduli più complessi a partire
dai nodi semplici che Max/MSP ci offre.

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

2.
patch, oggetti e
segnali in max/
MSP

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

2.1 Patcher Window


I moduli grafici in Max/MSP si chiamano Object Box e le interconnessioni fra di essi
Cavi. La creazione di Object Box e le connessioni con cavi avvengono in uno spazio
vuoto a due dimensioni chiamato Patcher Window.

La Patcher Window è la finestra con cui si apre un nuovo file di max/MSP.


max/MSP > File > New Patcher.

La Patcher Window è lo spazio di lavoro


su cui andremo a comporre il nostro
visual program.
Patcher Window
E’ simile alla tela bianca di un pittore o
alla partitura vuota del compositore
strumentale.

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

2.2 Patch

OBJECT BOX cavo

cavo
OBJECT BOX

cavo
OBJECT BOX
OBJECT BOX

Patch

Un insieme di interconnessioni (per mezzo di cavi virtuali) di Object Box nella


Patcher Window definisce una Patch di max (un file di estensione .maxpat).

Il nome patch viene proprio dal mondo modulare dove le connessioni fisiche tra i
moduli analogici avviene attraverso dei patch-cable.

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

2.2 Patch

patch di un synth modulare Patch di max/MSP


analogica e “reale” (fisica) digitale e “virtuale”

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

2.2 Patch
Una patch può trovarsi in due modalità:

1. EDIT MODE: il lucchetto in basso a sinistra della cornice della Patcher Window è
aperto; in questa modalità è possibile “scrivere” il nostro programma, cioè creare
gli object box che ci servono e collegare gli object box tra di loro;

2. PERFORMANCE MODE: il lucchetto è chiuso; in questa modalità il programma


può essere utilizzato ma non può essere modificato (non è possibile aggiungere
nuovi object box o nuovi cavi);

passaggio da modalità performance a


modalità edit (cmd + E)

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

2.3 object box e cavi


INPUT OUTPUT

cavi cavi

OBJECT BOX

I cavi rappresentano il flusso di I moduli grafici sono chiamati object box.


informazioni (dati, numeri, segnali Essi rappresentano degli eleboratori
digitali, ecc.). capaci di effettuare operazioni o funzioni
di elaborazione su determinati dati.

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

2.3 object box e cavi


INPUT OUTPUT

cavi cavi

OBJECT BOX

Gli object box e i cavi sono gli elementi grafici essenziali che ci permettono di
comporre (“scrivere”) il nostro programma.

L’attività di programmazione con max/MSP passa dalla creazione di object box e


dal collegamento tra di essi attraverso cavi.

Quest’attività passa sotto il nome di patching.

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

2.3 object box e cavi

cavi
object box

I cavi rappresentano il flusso di Gli Object Box sono degli "eleboratori"


informazioni (segnali digitali). capaci di effettuare operazioni o funzioni
di elaborazione su determinati dati.

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

2.3 object box e cavi

object box che svolge la


funzione di prendere un
numero intero dall’utente (che
lo scrive direttamente
nell’object box) e lo manda
come output.

object box che riceve due dati


in input, ne calcola la semplice
Segnale che “trasmette” l’informazione somma algebrica che invia al
numerica che gli viene assegnata suo output.
dall’object box al quale è collegato fino
all’object box successivo.

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

2.4 tipi di segnali


Max/MSP può trattare diversi tipi di informazioni (e quindi tipi di segnali). I due
principali sono:

1. segnali di controllo. Sono i segnali gestiti dalla sezione max di Max/MSP.


Questi segnali contengono tutte le informazioni che non hanno a che fare
con l’audio digitale o con le immagini. Questi possono essere dei numeri
(interi, flottanti), delle liste di numeri, delle stringhe di caratteri, delle liste
miste di numeri e caratteri.

Questi segnali vengono “trasportati” dai cavi di


color grigio uniforme.

segnale di controllo

Qui viene trasmesso un numero intero.

I segnali di controllo non richiedono l’attivazione del “motore audio” di


Max/MSP (detto anche il "DSP").

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

2.4 tipi di segnali


Max/MSP può trattare diversi tipi di informazioni (e quindi tipi di segnali). I due
principali sono:

2. segnali audio. Sono i segnali gestiti dalla sezione MSP di Max/MSP. Questi
segnali contengono le informazioni relative ai segnali audio digitali, cioè
sequenze numeriche che rappresentano forme d’onda in digitale.

Questi segnali vengono “trasportati” da cavi tratteggiati


di colore verde-nero.

segnale audio

Il passaggio di informazione all’interno dei cavi di


segnale avviene alla velocità della frequenza di
campionamento e per avvenire necessità
dell’attivazione del “motore audio” di Max/MSP
(attivazione del DSP).

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

2.4 tipi di segnali


L’attivazione del “motore audio” di Max/MSP (il DSP) si effettua selezionando il
pulsante di accensione che si trova in basso a destra nella cornice della patcher
window. O, in alternativa, può essere attivato da per mezzo di un Object Box di tipo
adc~ o dac~.

Quando il “motore audio” è attivo tutti gli oggetti di tipo segnale iniziano ad
elaborare i dati alla velocità della frequenza di campionamento.

attivazione del “motore audio”


(attivazione del DSP)

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

2.4 tipi di segnali


I due diversi tipi di segnale impongono anche una suddivisione dei tipi di oggetti
che possono essere rappresentati dagli object box:

1. oggetti di controllo: sono gli oggetti di max che possono trattare e gestire le
informazioni di tipo segnale di controllo. L’object box visualizza il nome
dell'oggetto di controllo, che solitamente ne specifica la funzionalità.

2. oggetti di segnale: sono gli oggetti di MSP che possono trattare anche
informazioni di tipo segnale audio. L’object box presenta il nome del tipo di
oggetto di controllo seguito sempre da una tilde ~ [MAC: alt+5].

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

2.5 gli object box


Esistono diversi tipi di object box. Ogni object box ha un nome, che specifica il tipo
di oggetto Max/MSP che l’object box rappresenta, specificandone la funzionalità. Se
il nome presenta una tilde (~) significa che l’oggetto è un oggetto che tratta anche
informazioni di tipo segnale audio, altrimenti significa che può trattare solo segnali
di controllo. Per creare un object box vuoto si può usare il tasto N della tastiera
(patch in edit mode).

Un object box a cui non è stato assegnato nessun tipo si presenta come un
rettangolo grigio scuro con due fasce grigio chiaro e due cerchietti ancora più
chiari. Questo object box non può ricevere nessun input e restituire nessun output.

inlet

object box vuoto


outlet

I cerchiolini grigio chiaro si chiamano inlet (lato in alto) e outlet (lato in basso). Gli
inlet sono i punti di connessione con i cavi che inviano dati all’oggetto, mentre gli
outlet sono i punti a cui vanno collegati i cavi che ricevono i dati di output
dell’oggetto.
4 _ Max/MSP introduzione 26
Conservatorio della Svizzera Italiana
Anno Accademico 2021-2022
elettronica Alberto Barberis

2.5 gli object box


Quando si digita un testo dentro l’object box vuoto, l’autocompletamento
suggerisce all’utente tutti i tipi di oggetto possibili che presentano i caratteri iniziali
digitati.

autocompletamento

Quando si seleziona o si scrive il nome di un oggetto l'object box assume le


sembianze richieste dal tipo desiderato, cioè vengono aggiunti gli inlet e gli outlet
che sono stati progettati per quell'oggetto.

Ogni oggetto ha infatti il suo numero di inlet e outlet. Inoltre ci sono oggetti che si
presentano anche graficamente in modo diverso.

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

2.5 gli object box


esempio adc~

Per esempio l’adc~ è l’oggetto che si occupa di connettere Max/MSP alla scheda
audio che effettua la conversione analogico-digitale e di recuperare il segnale
digitalizzato dagli input della scheda.

assistance bubble

Posizionando il mouse sopra un inlet o un


outlet appare un assistance bubble che indica
a cosa serve quel determinato cerchiolino.

L’adc~ presenta due outlet; di default questo oggetto recupera il segnale dal canale
1 (outlet di sinistra) e dal canale 2 (outlet di destra) dalla scheda audio.

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

2.5 gli object box

esempio
toggle

Alcuni object box presentano un layout grafico specifico in base al tipo selezionato.
Provare a creare un oggetto di tipo toggle.

Un toggle è uno switch logico, cioè un elemento che può assumere due valori 0
oppure 1 (0 quando la x è “spenta” 1 quando la x è “accesa”).

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

2.5 gli object box


esempio dac~

Il dac~ è l’oggetto che si occupa di connettere Max/MSP alla scheda audio in uscita,
mandando cioè a specifiche uscite della scheda audio un segnale digitale che essa
convertirà in analogico.

Al dac~ può essere connesso un toggle. Quando il dac~ riceve un 1 il “motore


audio” (il DSP) di Max/MSP viene attivato. Uno zero logico spegne invece il DSP.

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

2.5 gli object box


Quando un object box assume un layout grafico differente rispetto al rettangolo
con le fasce in alto e in basso può assumere nomi diversi. Ecco i principali:

1. message;

2. comment;

3. toggle;

4. button;

5. number;

6. slider, kslider, multislider;

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

2.6 inlet “caldi” e “freddi”


Tutti gli oggetti in Max/MSP presentano almeno un inlet.

L’inlet è la porta di accesso all’oggetto. Ad esso arrivano i dati che vengono


mandati all’oggetto, che se ne servirà per produrre gli output o per cambiare il
proprio stato.

Gli inlet possono essere:

- “caldi”: quando producono immediatamente un output dall’oggetto, appena


ricevono i dati che l’oggetto si aspetta;

- “freddi”: quando non producono un output ma servono a cambiare lo stato


interno dell’oggetto.

4 _ Max/MSP introduzione 32
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/

4 _ Max/MSP introduzione 33

Potrebbero piacerti anche