close

Dati puri

Vai alla navigazione Vai alla ricerca
Image
Screenshot di dati puri.

Pure Data (o Pd) è un linguaggio di programmazione visivo sviluppato da Miller Puckette negli anni '90 per la creazione di musica per computer interattiva e opere multimediali . Sebbene Puckette sia l'autore principale del software, Pd è un progetto open source e ha un'ampia base di sviluppatori che lavora su nuove estensioni del programma. È rilasciato con una licenza simile alla licenza BSD .

Pd è molto simile per portata e design al programma originale di Puckette Max (sviluppato quando era all'IRCAM ), ed è in una certa misura interoperabile con Max/MSP , il successore commerciale del linguaggio Max. Sia Pd che Max sono esempi discutibili di linguaggi di programmazione "flusso di dati". In questo tipo di linguaggio, funzioni o "oggetti" sono collegati o "rattoppati" tra loro in un ambiente grafico che modella il flusso del controllo e dell'audio. A differenza della versione originale di Max, tuttavia, Pd è sempre stato progettato per eseguire l'elaborazione del segnale e controllare le velocità sulla CPU nativa, piuttosto che scaricare la sintesi e l'elaborazione del segnale su una scheda PDS (come l'Ariel ISPW utilizzata per Max/FTS) . Il codice Pd è la base per le estensioni MSP di David Zicarelli al linguaggio Max per l'elaborazione audio nel software.

Come Max, Pd ha una base di codice modulare con esterni o oggetti che vengono utilizzati come elementi costitutivi per i programmi scritti nel software. Ciò rende il programma estensibile arbitrariamente tramite un'API pubblica e incoraggia gli sviluppatori ad aggiungere le proprie routine audio e di controllo, sia nel linguaggio di programmazione C sia, con l'aiuto di estranei, in Python , Javascript , Ruby e potenzialmente altri linguaggi anche. Tuttavia, Pd è di per sé un linguaggio di programmazione. Unità di codice modulari e riutilizzabili, scritte nativamente in Pd, denominate "patch" o "astrazioni", sono utilizzate come programmi stand-alone e condivise liberamente tra la comunità di utenti Pd, e non sono richieste altre capacità di programmazione per usare Pd ma aiuta . .

Con l'aggiunta del "Graphical Environment for Multimedia" ( GEM ) esterno e altri esterni progettati per funzionare con esso (come Pure Data Packet, PiDiP per Linux , framestein per Windows , GridFlow per l'elaborazione a matrice n che integra Pure Data con il linguaggio di programmazione Ruby , ecc.), è possibile creare e manipolare video, grafica OpenGL , immagini, ecc, in tempo reale con possibilità apparentemente infinite di interattività con audio, sensori esterni, ecc.

Inoltre, Pd è nativamente progettato per consentire la collaborazione dal vivo su reti o Internet , consentendo ai musicisti collegati via LAN , o anche in diverse parti del mondo, di fare musica insieme in tempo reale.

Le unità dove viene programmato il codice sono dette "patch" o astrazioni, sono utilizzate come programmi indipendenti e liberamente condivise tra la comunità degli utenti Pd. Le patch sono costituite da diversi oggetti interconnessi tra loro. Nella sua parte superiore troveremo gli input, dove verranno inviati i valori numerici o altri tipi di dati, e nella parte inferiore l'output di questi.

Image
Sottopatch.

C'è anche la possibilità di creare patch secondarie note come sottopatch. Sono all'interno della patch principale. Si creano scrivendo in un oggetto le lettere “pd” seguite da uno spazio e dal nome che si vuole dare a quella sottopatch, come mostrato in figura. Cliccandoci sopra si apre la finestra dove troviamo il codice della nostra sottopatch.

Il programma ha due stati in cui l'utente può trovarsi. In modalità di modifica o in modalità di esecuzione. Per passare da uno stato all'altro digiteremo Ctrl+E. Quando siamo in modalità di modifica, possiamo modificare il contenuto delle scatole o il collegamento tra di esse. Nella modalità di esecuzione abbiamo la possibilità di avviare l'intera patch, e di modificare i valori durante la sua riproduzione o quando viene interrotta. Possiamo inviare bangs, modificare il valore delle variabili all'interno degli oggetti "numero", oppure attivare e disattivare settori del codice con l'oggetto [toggle], attivato quando ha una croce e disattivato quando non lo ha.

Tipi di oggetti

Image
oggetti Pd.

Oggetto : Il suo comportamento dipenderà dal testo che ha inserito in esso. Il programma ha degli oggetti predefiniti, programmati da terze parti in diversi linguaggi come C. Pd riconosce il tipo di oggetto e quella casella si comporta già come tale.

Numeri : il loro utilizzo può essere vario, dal controllo del valore del segnale in diversi punti della patch, all'inizializzazione dei valori che vengono passati agli oggetti che controllano, ad esempio, il livello di opacità di un'immagine.

Messaggi : vengono forniti con informazioni che vengono passate agli oggetti.

Simbolo : questo oggetto memorizza un simbolo finché non riceve un [bang] o un altro simbolo. Questo è quando questo simbolo esce dall'oggetto, attraverso il fondo della scatola. Questi oggetti sono offerti in Pd solo se si dispone della libreria appropriata scaricata e correttamente installata . Non devono necessariamente esistere nelle librerie semplici, sebbene di solito siano inclusi nei file di installazione.

Commento : lo useremo per includere chiarimenti all'interno dei diversi passaggi che segue il nostro codice.

Oggetti più importanti

Image
Oscillatore.

L' oggetto [osc~] genera un segnale sinusoidale. La frequenza di oscillazione dipenderà dal valore che viene inserito nell'input che l'oggetto ha in alto a sinistra. Ogni volta che posizioniamo un oscillatore, dobbiamo anche posizionare un moltiplicatore e un convertitore analogico digitale (dac~). Ciò avviene perché il valore predefinito "osc~" ha l'ampiezza massima a 1, quindi lo moltiplichiamo per 0,1 per ridurne l'ampiezza e quindi lo inviamo al "dac~". L'oggetto "dac~" ha due ingressi che fanno riferimento ai due canali di uscita della scheda audio della tua macchina.

Image
Scoppio.


Un [bang] ha la funzione di attivare l'azione che si collega subito dopo.


Image
metro_pd.

Metro : invia periodicamente serie di [bang]. Lo creeremo scrivendo la parola “metro” all'interno di un oggetto. Questo oggetto ha due input, quello a sinistra accetta [bang]. Fa iniziare a correre la metropolitana; accetta anche messaggi con il testo “ferma”, interrompendo il funzionamento della metropolitana. Possiamo anche inviarti qualsiasi numero diverso da zero per attivarlo. Se gli viene inviato uno zero, lo strumento smette di inviare [bang]. Nella voce a destra introduciamo il numero che regola la periodicità di invio dei colpi, l'unità di questo valore è i millisecondi. Nella stessa casella [metro], dopo la parola metro e seguita da uno spazio, viene inserito un numero che l'oggetto comprende già come punto.

Image
Inizio


Start : Esegue gli oggetti della patch che ha collegato a se stessa. Creeremo l'oggetto [start] scrivendo la parola "start" all'interno di un messaggio.



Stop : Arresta l'esecuzione della patch attualmente in esecuzione. Lo creeremo digitando la parola "stop" all'interno di un messaggio.

Image
Selettore.

Seleziona : Agiamo come un selettore in base a una condizione numerica inizialmente data. Lo creiamo inserendo la parola "condizione di selezione (spazio)". In questo modo, quando il valore in ingresso è uguale alla condizione, verrà inviato un botto attraverso l'uscita sinistra. Se non corrispondono, il botto verrà inviato all'output corretto. È possibile inserire più condizioni simultanee separate da spazi. Verranno create tante partenze quante sono le condizioni più una finale. Quando il valore corrisponde a una delle condizioni, il botto verrà inviato dall'uscita che corrisponde a quel valore. Se non corrisponde, il [bang] sarà sempre inviato dall'ultimo output più a destra.

Mosè : Scriveremo la parola “moses” all'interno di un oggetto per poterlo rendere operativo. Contiene due ingressi e due uscite. Nell'input a sinistra colleghiamo il valore che è in lavorazione e a destra il valore che vogliamo fare da bordo. Se il valore del processo è inferiore al bordo, prende il valore di input dall'output a sinistra. Se invece il valore è uguale o maggiore del valore che funge da bordo, emetterà il numero dall'output a destra. Potremmo paragonare il [moses] a un filtro passa-basso e passa-alto simultanei.

Installazione GNU possibili problemi e soluzioni

Per installare Pd in ​​GNU dobbiamo decomprimere il pacchetto scaricato con il programma ed eseguire il file con estensione “.deb”. Il primo possibile problema che possiamo riscontrare è che la distribuzione di Ubuntu Studio ha già un Pure Data installato come standard. Poiché si consiglia di utilizzare la versione Pd_extended (anche se questo è qualcosa che varia molto spesso) dovremo disinstallare i Pure Data di GNU/linux Ubuntu, in modo che, installando quella nuova, non abbiamo problemi con il fatto di condivisione di cartelle. Un altro fattore molto comune e importante durante l'installazione di programmi GNU sono le dipendenze della libreria secondaria che possono esistere. È necessario installarli per il corretto funzionamento del programma. Nel caso di Pure Data e di alcune librerie esterne, alcune dipendenze devono essere installate utilizzando il gestore di pacchetti chiamato Synaptic. Lì possiamo trovare quelli di cui abbiamo bisogno.

Una volta verificato il corretto funzionamento del Pd, al fine di ottimizzare le risorse del programma, carichiamo, all'avvio, le librerie più comuni che verranno utilizzate, per evitare di doverle importare ogni volta che si desidera utilizzarle. In questo modo, quando avvii Pd sulla tua macchina, vengono caricati automaticamente.


Image
Prova audio/MIDI.

Linux

Introduzione rapida

Una volta che abbiamo il Pd stabile sulla nostra macchina, procediamo a fare un primo test del programma per verificare che la connessione con la nostra scheda audio sia corretta. Lo troveremo in Media> test audio e MIDI. Lì possiamo generare un segnale di prova (un tono, un rumore rosa,...) ascoltandolo attraverso i nostri altoparlanti, controllando così che tutto funzioni correttamente.

Per conoscere l'ambiente Pd, possiamo iniziare aprendo degli esempi che troveremo nei file di documentazione all'interno della cartella Pd. Ci sono patch audio e video per aiutarti a familiarizzare con il programma. Quando vogliamo creare la nostra patch, nella finestra Pd andiamo su File>Nuovo e si apre la finestra in cui introdurremo i nostri oggetti che collegheremo tra loro, creando così la nostra applicazione.

librerie pdp, pidip e opencv

Image
Oggetto PDP che crea una griglia che divide l'immagine.

La libreria PDP è una raccolta di oggetti utilizzati per elaborare numerosi dati. Funziona su Linux e la maggior parte degli oggetti funziona anche su Mac OSX. Una volta scaricato, l'installazione in Linux avviene tramite terminale, compilando ed eseguendo il file di installazione che viene allegato, come segue:

./configura

sudo fare

sudo fai installare

Quando i dati sono già rappresentati come un pacchetto all'interno di Pd, è possibile iniziare a manipolarli. Le librerie PiDiP sono oggetti video che completano la raccolta di oggetti PDP. L'installazione è identica a quella di PDP, da terminale eseguiamo gli stessi comandi, essendo così pronti all'uso.

Image
pdp_opencv distrae.

C'è anche un'altra libreria che fa riferimento alla videochiamata OpenCV. È una libreria aperta sviluppata da Intel. Questa libreria fornisce un alto livello di funzioni di elaborazione delle immagini. Consente al programmatore di creare applicazioni nel dominio della visione digitale. OpenCV è Open Source che gli consente di funzionare su molte piattaforme. Questa libreria ci consente di eseguire operazioni di base, elaborazione delle immagini, analisi del riconoscimento del modello, analisi strutturale, ricostruzione 3D, calibrazione della telecamera, analisi del movimento, interfaccia grafica e acquisizione, ecc. Implementa un'ampia varietà di strumenti per l'interpretazione delle immagini, come il rilevamento delle caratteristiche o l'analisi della forma (geometria, contorno elaborato in quel momento), tra gli altri.

Modelli di patch

Image
Esempio di oscillatore.

Un buon primo contatto con Pd può essere la generazione di un tono sinusoidale. Per questo useremo l'oggetto [osc~]. Nell'ingresso sinistro collegheremo un messaggio con all'interno un numero che fungerà da frequenza di oscillazione. Invieremo la sua uscita a un moltiplicatore che converte questa frequenza in udibile e infine la invieremo a un convertitore analogico digitale [dac~] per poterla riprodurre attraverso gli altoparlanti della nostra macchina. Una volta creata questa patch, possiamo modificare la frequenza facendo clic e tenendo premuto il mouse sul messaggio numerico e spostando il cursore su e giù, aumentando e diminuendo così il valore della frequenza.


Image
Apri dispositivo esterno. Webcam.

Per aprire un dispositivo esterno, come una webcam , dobbiamo scrivere la parola "apri" seguita da uno spazio e il percorso in cui si trova questo dispositivo in un messaggio. Questo, lo collegheremo all'oggetto che ci permette di visualizzare l'immagine in base al nostro sistema operativo, in Linux sarebbe pdp_v4l (video per Linux). Colleghiamo anche un altro messaggio a questo oggetto dove indichiamo il canale attraverso il quale vogliamo inviare le informazioni. Infine collegheremo un [metro] a [pdp_v4l] dandogli l'informazione della frequenza con cui vogliamo che ci mostri le immagini che la fotocamera sta catturando. Per avere continuità di movimento gli daremo un valore standard di 100 ms. A piacimento dell'utente, possiamo anche ruotare l'immagine orizzontalmente in modo che l'effetto generato durante la visualizzazione dell'immagine sia come uno specchio. Per ottenere ciò collegheremo l'output di [pdp_v4l] all'oggetto [pdp_flip_lr]. Con questo abbiamo già, in una finestra separata, l'immagine che la fotocamera sta catturando.

Vedi anche

Materiale in spagnolo

Collegamenti esterni