Sei sulla pagina 1di 10

TUTORIAL DI BASE DEL PROGRAMMA

PURE DADA – PD -
Traduzione italiana di D’A. Roberta
ed Aiuto tecnico di S.Stefano
IL PROGRAMMA PD (PURE DATA)

Questo programma , così come altri similari appartenenti alla famiglia Max (Max/MSP, JMax) ,
rappresenta un sistema di programmazione ad oggetti per il controllo dei dati e dell’audio in
tempo reale. Il vantaggio del programma PD è che, oltre ad essere gratuito, funziona su più sistemi
operativi (Windows, Linux e Macintosh). Per progettare processi di programmazione , si riporta
una finestra denominata “patch” (letteralmente “pezza”) nella quale possiamo immettere differenti
elementi che soddisfano determinate funzioni e che sono correlati tra loro. Questi elementi si
raggruppano in cinque categorie di base : oggetti (objects) , messaggi (messages , ossia gli argomenti
che sono trattati nell’ object), numeri , simboli e commenti . Inoltre esiste una categoria speciale di
oggetti che hanno una “interfaccia grafica utente”(GUI), che ne permette il controllo con il mouse
e la configurazione del loro comportamento ed il loro aspetto.

Es.1 :

Un patch con un oggetto, un messaggio,


un numero, un simbolo, un commento e
vari oggetti di interfaccia grafica GUI (a
colori) .

I messaggi possono contenere qualsiasi parola , numero o elenco che scriviamo in essi , e possono
essere inviati per la “via d’uscita” (output) facendo click con il mouse. Il contenuto di un messaggio
non cambia in uscita, mentre il contenuto dei numeri e dei simboli può cambiare a seconda se
inviamo messaggi oppure se definiamo in essi nuovi valori.
Gli oggetti sono gli elementi del patch che compiono una specifica funzione secondo la loro
definizione. Ciascun oggetto specifico ha un numero determinato di INPUT (in alto), attraverso
cui si attenderà di ricevere qualche messaggio, ed OUTPUT (in basso), attraverso i quali arriverà il
risultato dell’operazione eseguita con l’argomento.
Così l’oggetto “+” realizza la somma del messaggio numerico ricevuto da ciascuna delle sue due
entrate. Però se a seguito del “+” scriviamo un argomento numerico nell’oggetto, si ottiene la
stessa operazione di addizione del numero superiore + quello vicino l’operatore aritmetico.

-1-
Es.2

L’oggetto “+” con e senza l’argomento

Nell’esempio precedente, così come in tutti gli oggetti, il processo che porta a capo dell’oggetto in
questione è attivato solamente all’arrivo del messaggio corrispondente all’entrata da sinistra
(chiamata entrata “calda” per la sua proprietà di causare un risultato). Anche le altre entrate
definiscono i parametri corrispondenti, però non producono alcun risultato.
In Pd incontriamo due tipi di oggetti : di controllo e di segnale. Quelli di controllo, per regola
generale, hanno una frequenza di campionamento pari a 1000 volte al secondo (1000/1sec), vale a
dire che l’oggetto “+” , presentato precedentemente, potrebbe portare fino a mille risultati per
secondo. Invece gli oggetti di segnale, che si identificano perché terminano sempre con la figura
“~”, hanno una frequenza di campionamento di 44.100 campioni al secondo (2*22Khz), anche se
questo può variare a seconda se lo configuriamo nelle selezioni audio.

Es.3 :

L’oggetto “osc~” calcola un segnale sinusoidale alla frequenza che riceve


dall’entrata sinistra (la destra modifica la fase). In questo caso, mediante il
messaggio “440” otteniamo una sinusoide a 440 cps. Il segnale che esce da “osc~” ,
che per difetto pone l’ampiezza massima in Pd=1, lo moltiplichiamo per 0.01 per
ridurre la sua ampiezza e poi lo inviamo all’oggetto “dac~”, che riceve in imput il
segnale ed invia questo ai rispettivi canali di uscita della scheda audio del nostro
computer.

Si noti che i cavi virtuali che si collegano agli oggetti di segnale (quelli tra “osc~”,“*~ “e “dac~”)
sono più spessi di quelli che escono dal messaggio. Questa differenza ci mostra che alcuni
conducono il segnale (aggiornato a 44.100 volte al secondo) e altri conducono messaggi di controllo
(aggiornato solo a quando produciamo un messaggio, al massimo 1000 volte al secondo).
Evidentemente gli oggetti del segnale e le loro connessioni consumano molta più memoria del
computer rispetto a quelli di controllo. Dobbiamo tener presente che, sebbene a volte possiamo
collegare messaggi di controllo a oggetti audio, l’uscita dell’oggetto audio sarà sempre una
connessione di segnale e pertanto non possiamo collegarla a un oggetto di controllo.

-2-
Affinché Pd realizzi i processi audio che progettiamo nel patch, è necessario che attiviamo
l’opzione “computo audio” nella finestra del programma Pd (oppure selezioniamo sulla tastiera
ctrl-/ per accendere e ctrl-.per disattivare l’audio) .

IMPLICAZIONI o RICHIESTE

Es.4 :

Allo stesso patch precedente modifichiamo il


segnale prima di inviarlo a “dac~”. L’oggetto
“line~” crea rampe tra due valori in un tempo
determinato, con una risoluzione audio (44.100
s/s). Facendo click sul messaggio “0, 1 50” diciamo
che va da 0 a 1 in 50 millisecondi, mentre sull’altro
diciamo che va da 1 a 0 in 200 millisecondi. Al
moltiplicare il nostro segnale sinusoidale per
queste rampe otteniamo rispettivamente un effetto
di “fade in” e di”fade out”.

Si noti che ora usiamo un moltiplicatore di segnale “*~” senza argomento numerico, come lo
utilizziamo per moltiplicare due segnali audio.
A partire da un solo click del mouse, come facciamo ora a produrre un suono di durata definita
con il suo attacco e con il suo corrispondente decadimento? Nell’esempio precedente bisogna
aggiungere una variabile che crei un lasso di tempo tra l’applicazione del messaggio “0, 1 50”, il
nostro attacco, e quello “1, 0 200”, la nostra diminuzione del suono.

Es.5 :

“bang” è un messaggio speciale che fa scattare


l’azione di un messaggio o un aggetto. In
questo caso, cliccando sul messaggio “bang”,
questo attiva il messaggio “0, 1 50” e a sua
volta va all’oggetto “delay”, il quale ritarda
questo “bang” di 1000 millisecondi per poi
inviarlo al messaggio “1, 0 200”. Così, mediante
un solo click produciamo una nota di durata
totale di 1.250 millisecondi, dei quali i primi 50
costituiscono una rampa da 0 a 1 e gli ultimi
200 una rampa da 1 a 0.

-3-
a
Ora utilizziamo lo stesso oggetto “line~” per produrre un glissando di una 5 giusta.

Es.6 :

Ora lo stesso “bang”, che produce l’attacco della


nota, attiva anche una rampa da 440 a 660 Hz in
1250 millisecondi che la nostra nota impiega per
definire la frequenza dell’oscillatore. Ora si noti
che l’oggetto “osc~” sta ricevendo un segnale per
definire la sua frequenza (questo oggetto può
ricevere indistintamente messaggi di controllo o
di segnale nella sua entrata sinistra) .

MODULAZIONI

Nell’audio digitale, la modulazione d’ampiezza si produce moltiplicando due segnali.

Es.7 :

Ampiezza modulata moltiplicando due segnali

Es.8 :

Modulazione di frequenza. L’oscillatore in basso, modulato


da un’altra onda sinusoidale a 156 Hz., calcola un’onda
sinusoidale la cui frequenza centrale è 440 Hz. In questo caso
il grado di deviazione della frequenza centrale è l’ampiezza
dell’oscillatore superiore. Vale a dire che la frequenza
centrale varia tra i 349 e i 441 Hz. 156 volte al secondo.
Come ottenere una variante?

-4-
Es.9:

Al moltiplicare il segnale modulante, cambiamo la sua


ampiezza, per tanto modifichiamo l’ambito di deviazione
a partire dalla frequenza centrale. Qui, al moltiplicare per
100 (Indice di modulazione), produciamo un’onda la cui
frequenza varia 156 volte al secondo tra i 340 e i 540 Hz.

Possiamo aggiungere a uno qualsiasi di questi esempi una richiesta di Bang come abbiamo visto
nell’esempio 5.

INCAPSULAMENTO - “la scatola di un patch”

Per una migliore ottimizzazione dello spazio visivo, in modo da mantenere i patches più ordinati,
possiamo creare in un patch dei subpatches che contengano parte dei processi che progettiamo.
Per creare un subpatch dobbiamo progettare un oggetto chiamato “pd” con un argomento
arbitrario che servirà per identificare questo subpatch.

-5-
Poniamo nel nostro patch un oggetto chiamato pd con l’argomento
“FrequenzaModulata”. Automaticamente si apre la finestra del subpatch
creato con lo stesso nome. In questo subpatch possiamo copiare l’esempio precedente.

Per ciascuna delle variabili creiamo un oggetto


“inlet” la cui funzione è quella di creare entrate
nell’oggetto “pd FrequenzaModulata” che sono
in comunicazione con l’output del rispettivo
oggetto “inlet”.

In questo modo, nel patch principale possiamo


tenere in vista solo lo stretto necessario per
controllare le caratteristiche del suono che
vogliamo; il resto sarà nel subpatch.
Guardando il patch principale, questo
includerà tutti i subpatches che contiene.

Un’altra opzione è permettere al subpatch di mostrare gli oggetti grafici nel patch principale;
perciò dobbiamo fare click con il tasto destro in un qualunque spazio bianco del subpatch e
selezionare “graph on parent”.

Facendo ciò, si creerà nel subpatch un quadrato


rosso nel quale possiamo mettere gli oggetti
grafici che si vedranno nel patch principale.
Nella finestra di dialogo delle proprietà
possiamo anche definire il formato e la
posizione (in pixels, contando dall’angolo
superiore-sinistro della finestra) di questo
quadrato rosso.

-6-
Gli elementi che possiamo vedere dal
patch principale, situandoli nel quadrato
rosso del subpatch, sono : numero,
simbolo, commento e tutti gli oggetti
grafici GUI. Qualsiasi altro elemento,
anche quando sta nell’area rossa, non si
vedrà. Pertanto, per controllare il
messaggio “bang” dovremo usare la sua
versione grafica, l’oggetto grafico Bang
(ctrl-shift-B oppure un oggetto chiamato
“bng”) .

In questo modo l’aspetto dell’oggetto “pd FrequenzaModulata” situato nel patch principale è il
seguente, permettendo la modifica di ciascuno dei suoi elementi :

Possiamo fare quante copie vogliamo di questo oggetto nel medesimo patch, assegnandole
parametri diversi per ottenere una tavolozza più ampia dei suoni.

E’ anche possibile indirizzare messaggi e dati in uscita da un subpatch


utilizzando il relativo opcode outlet con le sue “porte” per l’output.

-7-
GUIDA RAPIDA ALL’ISTALLAZIONE E LA CONFIGURAZIONE DI PD

Dopo aver scaricato Pd compatibile con la versione del proprio sistema operativo (The Windows
version, Linux, Mac), si trova un file .zip da decomprimere. La cartella decompressa va posizionata
sull’drive principale “c”.

In Windows, Pd can be run the old-fashioned way, from a command-line interface. Until recently,
in fact, this was the only way to run it. But the latest version (0.38) can be run by double-clicking
on the program icon, just as with any other Windows program. The first time you run Pd, you may
want to open the Startup window (see Figure 2) and set some startup flags. The syntax for these is
the same as the syntax for command-line arguments (which are documented in the manual). The
most important flags are the ones that tell Pd what MIDI and audio hardware to use. My
soundcard uses an ASIO driver, so I've set my startup flags like this:

-asio -midiindev 1 -midioutdev 3 -audiodev 3


This tells Pd to use the ASIO driver, the first MIDI input device listed in the Windows control
panel, the third MIDI output device, and the third audio device. You can make these same settings
from a Windows-style dialog box accessed through the Media menu, but then your settings won't
be saved for next time.

The other reason you used to have to keep the MS-DOS window open while Pd was running was
to display the program's message outputs. For diagnostic purposes, Pd includes a handy print
object whose output appears as text. This used to be in the MS-DOS window, but is now in the
main Pd window--hooray!

Figure 2.
Pd's Startup window allows you to enter command-line-style flags (in the bottom area).
Even with the text output, Pd's main window barely qualifies as a window at all. It does have
audio clipping indicators and a couple of checkboxes (see Figure 3). When you open an existing
file or load a new one, you'll be working in a separate patch window that looks more like Figure 1.

-8-
New objects can be added to a patch from a menu, or you can type Control-key commands, which
is faster.

Figure
3: The main window in Pd doesn't do much, other than display messages from the program. You
can send your own messages to this window from a patch (which is often useful during
debugging) using the print object. By adding a text argument to a print object, you can see at a
glance where the printout is coming from. Here, I'm looking at the data reaching a print object
called modenvseg ("modulation envelope segment").
When MIDI I/O is activated in Windows, the Pd window reports that "midi input is dangerous in
Microsoft Windows\; see Pd manual." Sounds ominous, but I haven't yet encountered any
difficulties.

-9-

Potrebbero piacerti anche