02.12.2015 Views

Laboratorio per l’Elaborazione MultiMediale Lezione 1 - Introduzione al corso

Introduzione al corso - ISPAC - Sapienza

Introduzione al corso - ISPAC - Sapienza

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Introduzione</strong><br />

Gli strumenti<br />

<strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong><br />

<strong>MultiMedi<strong>al</strong>e</strong><br />

<strong>Lezione</strong> 1 -<br />

<strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong><br />

Prof. Michele Scarpiniti<br />

Dipartimento di Ingegneria dell’Informazione, Elettronica e Telecomunicazioni<br />

“Sapienza” Università di Roma<br />

http://ispac.ing.uniroma1.it/scarpiniti/index.htm<br />

michele.scarpiniti@uniroma1.it<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 1 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

1 <strong>Introduzione</strong><br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

2 Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 2 / 44


Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Programma del Corso<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 3 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

Gener<strong>al</strong>ità e Obiettivi del Corso<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

L’obiettivo del <strong>corso</strong> è quello di fornire gli elementi base delle moderne tecniche<br />

utilizzate <strong>per</strong> l’elaborazione multimedi<strong>al</strong>e. In particolare viene insegnato,<br />

attraverso l’uso di software di simulazione ad <strong>al</strong>to livello, la generazione,<br />

l’elaborazione e l’archiviazione del segn<strong>al</strong>e con contenuto informativo. Lo<br />

studente acquisisce l’uso di software come MATLAB, NU-Tech, Pure Data,<br />

EyesWeb, Max/Msp. Verrà acquisito, inoltre, l’utilizzo elementare di librerie<br />

software in C++ <strong>per</strong> lavorare con segn<strong>al</strong>i multimedi<strong>al</strong>i: PortAudio e<br />

OpenCV.<br />

L’attività di laboratorio, inoltre, migliora la comprensione dello studente su<br />

concetti già noti da <strong>al</strong>tri corsi.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 4 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Programma di massima del Corso<br />

In sintesi il programma di massima del <strong>corso</strong> è articolato come segue:<br />

1 Le motivazioni dell’elaborazione multimedi<strong>al</strong>e.<br />

2 I formati dei file multimedi<strong>al</strong>i.<br />

3 Tecniche di pre-processing.<br />

4 Tecniche di filtraggio e il bacno filtri.<br />

5 Simulazione della risposta impulsiva di una stanza.<br />

6 Il MATLAB come piattaforma <strong>per</strong> l’elaborazioni di segn<strong>al</strong>i<br />

audio/video.<br />

7 Il C/C++ come linguaggio <strong>per</strong> l’elaborazione multimedi<strong>al</strong>e.<br />

8 Effetti digit<strong>al</strong>i (riverbero, chorus, flanger).<br />

9 Audio restoration.<br />

10 La separazione di sorgenti.<br />

11 NU-Tech; Pure Data; EyesWeb; Max/Msp.<br />

12 PortAudio e OpenCV.<br />

13 Re<strong>al</strong>-time single-board systems: Arduino e Rasberry Pi.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 5 / 44


Testi del Corso<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Dispense a cura del docente.<br />

MATLAB 7: Getting Started Guide, re<strong>per</strong>ibile on-line:<br />

http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/<br />

getstart.pdf.<br />

Complementi:<br />

T. A. Davis, “MATLAB Primer”, 8-th edition, CRC Press, 2010.<br />

D. M. Smith, “Engineering Computation with MATLAB”, 2-nd edition,<br />

Addison-Wesley,2010.<br />

A. Gilat, “MATLAB: An Introduction with Applications”, Wiley, 2008.<br />

A. Knight, “Basics of MATLAB and Beyond”, CRC Press, 1999.<br />

A. D. Poularikas, “Sign<strong>al</strong>s and Systems Primer with MATLAB”, CRC<br />

Press, 2006.<br />

A. D. Poularikas, Z. M. Ramadan, “Adaptive Filtering Primer with<br />

MATLAB”. CRC Press, 2006.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 6 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Prerequisiti, frequenza e mod<strong>al</strong>ità di esame<br />

Settore Scientifico-Disciplinare (SSD): ING-IND/31<br />

(Elettrotecnica).<br />

Inquadramento e crediti: MCOR; Secondo anno; Secondo semestre.<br />

6 CFU.<br />

Prerequisiti: conoscenze di base di Elaborazione Numerica dei<br />

Segn<strong>al</strong>i.<br />

La frequenza è fortemente consigliata.<br />

Mod<strong>al</strong>ità di esame: Tesina: lo studente deve dimostrare di sa<strong>per</strong><br />

implementare un <strong>al</strong>goritmo di quelli studiati, consegnando un<br />

elaborato.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 7 / 44


<strong>Introduzione</strong><br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

<strong>Introduzione</strong><br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 8 / 44


<strong>Introduzione</strong><br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Negli ultimi anni si è assistito <strong>al</strong>la sempre maggiore necessità di elaborare<br />

il segn<strong>al</strong>e cosidetto “multimedi<strong>al</strong>e”, con sistemi multimedi<strong>al</strong>i. Ma cosa<br />

significa questo termine?<br />

Definizione<br />

Il temine multimedi<strong>al</strong>e indica l’insieme di diversi tipi di “media”, cioè<br />

“mezzi”, qu<strong>al</strong>i testi, suoni, immagini ferme e immagini in movimento.<br />

Definizione<br />

Si definisce sistema multimedi<strong>al</strong>e un sistema in grado di elaborare il<br />

segn<strong>al</strong>e multimedi<strong>al</strong>e, cioè un sistema che si avv<strong>al</strong>e di diversi tipi di media.<br />

Esempi di multimedia sono un libro, un CD-ROM, un film, ecc., mentre<br />

esempi di sistemi multimedi<strong>al</strong>i sono il televisore, un i-Pod, un computer,<br />

un moderno telefonino cellulare, ecc.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 9 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

Storia del termine Multimedi<strong>al</strong>e<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Il termine “multimedia” è stato coniato da Bob Goldstein <strong>per</strong> promuovere l’a<strong>per</strong>tura,<br />

nel luglio 1966, del suo spettacolo “LightWorks at L’Oursin” a Southampton,<br />

Long Island. Il 10 agosto 1966, Richard Albarino della rivista Variety ha preso in<br />

prestito la terminologia, citando:<br />

“L’invenzione dell’autore comico Bob Goldstein, il ’Lightworks’, è l’ultima trovata<br />

multimedi<strong>al</strong>e di musica-con-visu<strong>al</strong>izzazioni che diventerà abitudinaria in<br />

discoteca.” a .<br />

a Tratto da Wikipedia, http://en.wikipedia.org/wiki/Multimedia<br />

Due anni più tardi, nel 1968, il termine “multimedia”<br />

è stato nuovamente ado<strong>per</strong>ato <strong>per</strong> descrivere<br />

il lavoro di un consulente politico, David Sawyer,<br />

marito di Iris Sawyer, uno dei maggiori produttori<br />

di Goldstein a L’Oursin.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 10 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

Storia del termine Multimedi<strong>al</strong>e<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Nei successivi quarant’anni, la parola ha assunto diversi significati.<br />

Nel 1970 il termine fu usato <strong>per</strong> indicare le presentazioni effettuate con proiettori<br />

multipli <strong>per</strong> diapositive e traccia audio. Tuttavia, solo negli anni ’90 il termine<br />

“multimedia” ha acquisito il suo significato attu<strong>al</strong>e. La società <strong>per</strong> l’uso della<br />

lingua tedesca, Deutsche Gesellschaft für Sprachgebrauch, ha deciso di riconoscerle<br />

questo significato, assegnandole il titolo di “Word of the Year” nel 1995. L’istituto<br />

ha riassunto la sua decisione affermando: “ Multimedia” è diventata una parola<br />

centr<strong>al</strong>e nel nuovo meraviglioso mondo dei media”.<br />

Nell’uso comune, il termine multimedi<strong>al</strong>e si riferisce a una combinazione dei mezzi<br />

di comunicazione elettronica, compresi video, immagini, audio, testo, e la<br />

possibilità di accerdervi in modo interattivo. Gran parte dei contenuti sul web oggi<br />

rientra in questa definizione, come è intesa da milioni di <strong>per</strong>sone.<br />

Alcuni computer che sono stati commerci<strong>al</strong>izzati negli anni novanta sono stati<br />

chiamati “multimedi<strong>al</strong>i”, <strong>per</strong>ché equipaggiati con un lettore di CD-ROM, che ha<br />

<strong>per</strong>messo la visu<strong>al</strong>izzazione di diverse centinaia di megabyte di video, foto, audio e<br />

dati.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 11 / 44


Di cosa ci occupiamo?<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Per noi, l’elaborazione multimedi<strong>al</strong>e consistene costruire dei semplici <strong>al</strong>goritmi<br />

di processamento (inclusi quelli di pre- o post-processing) <strong>per</strong> l’elaborazione<br />

(cioè il filtraggio, la classificazione, la separazione) dei segn<strong>al</strong>i audio,<br />

di immagini e video.<br />

Inoltre verranno illustrati <strong>al</strong>cuni esempi applicativi: un equ<strong>al</strong>izzatore<br />

parametrico, un semplice sintetizzatore, un misuratore di livello<br />

sonoro, un segmentatore di immagini, un face detector.<br />

Tutte le soluzioni proposte saranno implementate in MATLAB e/o in<br />

C/C++.<br />

Infine, se ci sarà tempo, verrà fatto un breve cenno <strong>al</strong>la<br />

programmazioni di <strong>al</strong>goritmi <strong>per</strong> i sistemi o<strong>per</strong>ativi Mobile (Symbian,<br />

Android, i-Phone OS, ecc.).<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 12 / 44


Gli strumenti<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Gli strumenti software che ado<strong>per</strong>eremo sono suddivisi in due classi:<br />

1 Software <strong>per</strong> la produzione di filtri (e/o applicativi):<br />

il MATLAB R○;<br />

il C/C++;<br />

il Java;<br />

il Python;<br />

2 Software multimedi<strong>al</strong>e:<br />

NU-Tech;<br />

Pure Data o PD;<br />

EyesWeb;<br />

Max/MSP.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 13 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

Le attrezzature e i luoghi<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Le attrezzature hardware che verranno ado<strong>per</strong>ate sono le seguenti:<br />

1 PC <strong>per</strong> lo sviluppo software;<br />

2 scheda audio profession<strong>al</strong>e <strong>per</strong> interfacciarsi con i microfoni;<br />

3 Kinect, <strong>per</strong> l’utilizzo congiunto di audio e video;<br />

4 Arduino, <strong>per</strong> il controllo di sensori e attuatori;<br />

5 Raspberry Pi, un microc<strong>al</strong>colatore <strong>per</strong> l’elaborazione e il controllo di<br />

sensori e attuatori.<br />

Le sedi del <strong>corso</strong> saranno fondament<strong>al</strong>mente:<br />

1 l’aula: <strong>per</strong> le parti più teoriche;<br />

2 il laboratorio ISPAMM: <strong>per</strong> le parti più pratiche.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 14 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

Il <strong>Laboratorio</strong> ISPAMM<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Il <strong>Laboratorio</strong> ISPAMM situato <strong>al</strong> primo piano, è fornito di diverse workstation,<br />

un sistema di acquisizione multi-can<strong>al</strong>e, un array microfonico da<br />

8-16-32-64 sensori e un array di 8 diffusori. Su ogni workstation è inst<strong>al</strong>lato<br />

diverso software utile: Matlab, <strong>al</strong>cune librerie DSP proprietarie, compilatori<br />

C/C++ e Delphi. Per gli studenti dei corsi di DSP o <strong>per</strong> i tesisti sono anche<br />

disponibili <strong>al</strong>cuni DSP.<br />

Le attività di ricerca del laboratorio includono: Machine Learning for<br />

Sign<strong>al</strong> Processing, Adaptive Audio Array Processing, Blind Sign<strong>al</strong><br />

Processing, Audio Processing and Computer Music, Neur<strong>al</strong> Networks for<br />

Sign<strong>al</strong> Processing, Optimization Algorithms for Machine Learning, Particle<br />

Filtering.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 15 / 44


La Kinect<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

La Kinect è un dispositivo della<br />

Microsoft R○, inizi<strong>al</strong>mente nato come<br />

interfaccia della XBOX 360 che consente<br />

di giocare senza l’uso di strumenti,<br />

essendo sensibile <strong>al</strong> movimento<br />

del corpo umano. A partire d<strong>al</strong> 1<br />

febbraio 2012 Microsoft ha reso disponibile<br />

una versione speci<strong>al</strong>e della<br />

<strong>per</strong>iferica <strong>per</strong> i PC dotati del sistema<br />

o<strong>per</strong>ativo Windows 7, connessa<br />

attraverso la porta USB. E’ inoltre<br />

possibile scaricare i driver della<br />

<strong>per</strong>iferica, così come l’SDK di sviluppo<br />

d<strong>al</strong> seguente sito: http://<br />

kinectforwindows.org.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 16 / 44


La Kinect<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

La Kinect è dotata di:<br />

1 una telecamera RGB, con<br />

risoluzione 640 x 480 pixel;<br />

2 un doppio sensore di<br />

profondità a raggi infrarossi<br />

composto da un proiettore a<br />

infrarossi e da una telecamera<br />

sensibile <strong>al</strong>la stessa banda, con<br />

risoluzione 320 x 240 pixel;<br />

3 un array microfonico a 4<br />

can<strong>al</strong>i;<br />

4 un motore <strong>per</strong> i movimenti<br />

vertic<strong>al</strong>i (tilt).<br />

Emettitore IR<br />

Array microfonico<br />

Telecamera<br />

nel visibile<br />

Telecamera IR<br />

Motore del Tilt<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 17 / 44


Arduino<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Arduino è una piccola scheda<br />

equipaggiata con un microcontrollore e<br />

una circuiteria di contorno, utile <strong>per</strong><br />

creare rapidamente prototipi. Con<br />

Arduino si possono re<strong>al</strong>izzare in maniera<br />

relativamente rapida e semplice, piccoli<br />

dispositivi <strong>per</strong> il controllo di sensori e<br />

attuatori.<br />

Completamente it<strong>al</strong>iano, il progetto di<br />

Arduino è stato sviluppato presso<br />

l’Interaction Design Institute, un istituto<br />

di formazione post-dottor<strong>al</strong>e con sede a<br />

Ivrea, fondato da Olivetti e Telecom<br />

It<strong>al</strong>ia. Il nome della scheda deriva da<br />

quello di un bar di Ivrea frequentato da<br />

<strong>al</strong>cuni dei fondatori del progetto.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 18 / 44


Arduino Uno<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

La scheda più comune e diffusa della<br />

famiglia Arduino è sanz’<strong>al</strong>tro Arduino<br />

Uno, equipaggiato di un<br />

micro-controllore ATmega328P della<br />

Atmel. E’ poi presente una porta USB<br />

<strong>per</strong> interagire con il PC e caricare il<br />

software e vari connettori <strong>per</strong> l’I/O, in<br />

particolare:<br />

1 14 connettori <strong>per</strong> l’I/O digit<strong>al</strong>e<br />

(numerati da 0 a 13);<br />

2 6 connettori specificamente dedicati<br />

a ingressi di segn<strong>al</strong>i an<strong>al</strong>ogici<br />

(collegati quindi ad una ADC).<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

L’ambiente di sviluppo integrato (IDE)<br />

di Arduino è un’applicazione<br />

multipiattaforma scritta in Java, che<br />

include un editore di testo dotato di<br />

syntax highlighting, il controllo delle<br />

parentesi e indentazione automatica.<br />

L’editor è inoltre in grado di compilare e<br />

lanciare il programma eseguibile in una<br />

sola passata e con un solo click.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 19 / 44


Raspberry Pi<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Raspberry Pi è un c<strong>al</strong>colatore completo<br />

su singola board che incorpora un<br />

processore ARM1176JZF-S a 700<br />

MHz, una GPU VideoCore IV, e 512 MB<br />

di memoria. Il progetto non prevede né<br />

hard disk né una unità a stato solido,<br />

affidandosi invece a una scheda SD <strong>per</strong> il<br />

boot e <strong>per</strong> la memoria non volatile.<br />

Sono anche in vendita dei case di<br />

plastica <strong>per</strong> proteggere la scheda. Il<br />

tutto con dimensioni paraganabili a<br />

qu<strong>al</strong>le di un pacchetto di sigarette.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 20 / 44


Raspberry Pi<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Raspberry Pi ha molte interfacce <strong>per</strong> la<br />

comunicazione esterna. In particolare sono<br />

presenti:<br />

1 micro USB <strong>per</strong> l’<strong>al</strong>imentazione;<br />

2 slot SD <strong>per</strong> il sistema o<strong>per</strong>ativo;<br />

3 porta ethernet <strong>per</strong> il collegamento<br />

LAN;<br />

4 2 porte USB;<br />

5 audio out stereofonico;<br />

6 connettore RCA video;<br />

7 connettore HDMI;<br />

8 connettore GPIO (Gener<strong>al</strong> Purpose<br />

I/O), un’utile interfaccia con<br />

dispositivi e <strong>per</strong>iferiche esterne;<br />

9 bus I 2 C (Inter Integrated Circuit), un<br />

sistema di comunicazione seri<strong>al</strong>e.<br />

Overview<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 21 / 44


Gli strumenti<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Gli strumenti<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 22 / 44


Il C/C++<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Il C è un linguaggio di programmazione (compilato) molto efficiente, grazie<br />

<strong>al</strong>la sua flessibiltà e velocità di esecuzione. Per questo motivo si è imposto<br />

come linguaggio di riferimento <strong>per</strong> la re<strong>al</strong>izzazione di software di sistema su<br />

gran parte delle piattaforme hardware moderne. La standardizzazione del<br />

linguaggio (da parte dell’ANSI prima e dell’ISO poi) garantisce la portabilità<br />

dei programmi scritti in C (standard, spesso detto ANSI C) su qu<strong>al</strong>siasi<br />

piattaforma.<br />

In seguito il C è stato esteso, con l’aggiunta della programmazione orientata<br />

agli oggetti, <strong>al</strong> C++. È possibile scrivere programmi C v<strong>al</strong>idi anche come<br />

programmi C++, anche se il C non è un sottoinsieme del C++ nel senso<br />

più stretto della parola.<br />

Sono disponibili diversi compilatori gratuiti. Un ottimo applicativo, fornito<br />

di interfaccia grafica (IDE) è il compilatore Dev C++ che può essere<br />

scaricato gratuitamente d<strong>al</strong> seguente link:<br />

http://www.bloodshed.net/devcpp.html<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 23 / 44


Il C/C++<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Elenchiamo i vantaggi e gli svantaggi del C/C++:<br />

Vantaggi:<br />

1 molto flessibile e gener<strong>al</strong> purpose;<br />

2 molto veloce in esecuzione;<br />

3 portabile.<br />

Svantaggi:<br />

1 tempi di sviluppo lunghi;<br />

2 richiede compilazione.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 24 / 44


Il C/C++: un esempio<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Riportiamo un semplice esempio: la somma di due numeri interi.<br />

#include <br />

int main()<br />

{<br />

int somma;<br />

int num1;<br />

int num2;<br />

}<br />

printf("Inserisci il primo v<strong>al</strong>ore: ");<br />

scanf("%d", &num1);<br />

printf("Inserisci il secondo v<strong>al</strong>ore: ");<br />

scanf("%d", &num2);<br />

somma = num1 + num2;<br />

printf("La somma dei due numeri e’ la seguente: %d\n", somma);<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 25 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

Il C/C++: PortAudio e OpenCV<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

In C/C++ esistono diverse librerie che mettono a disposizione metodi utili<br />

<strong>al</strong>l’elaborazione multimedi<strong>al</strong>e. In particolare si citano le seguenti due:<br />

1 PortAudio: che mette a disposizione metodi <strong>per</strong> leggere e scrivere<br />

file audio, registrare e riprodure suoni, interfacciarsi con le schede<br />

audio, ecc.<br />

2 OpenCV: che mette a disposizione metodi <strong>per</strong> leggere e scrivere file<br />

di immagini o file video, registrare e riprodure video, interfacciarsi con<br />

le schede video, ecc.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 26 / 44


Il MATLAB R○<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Il MATLAB R○ (abbreviazione di Matrix Laboratory) è un ambiente <strong>per</strong> il c<strong>al</strong>colo<br />

numerico, particolarmente adatto <strong>al</strong> c<strong>al</strong>colo vettori<strong>al</strong>e.<br />

Cenni storici<br />

Abbreviazione di “MATrix LABoratory”, MATLAB fu creato <strong>al</strong>la fine degli anni ’70 da<br />

Cleve Moler, direttore del dipartimento di scienze informatiche dell’Università del<br />

Nuovo Messico. Egli creò MATLAB <strong>per</strong> dare ai suoi studenti accesso <strong>al</strong>le librerie<br />

LINPACK e ad EISPACK senza che essi dovessero conoscere il Fortran. Presto si<br />

diffuse nelle <strong>al</strong>tre Università e trovò un grande pubblico tra la comunità dei matematici<br />

applicati. Jack Little, un ingegnere, conobbe il programma durante una visita a Moler<br />

<strong>al</strong>l’Università di Stanford nel 1983. Riconoscendo il suo potenzi<strong>al</strong>e commerci<strong>al</strong>e, si unì<br />

con Moler e Steve Bangert. Essi riscrissero MATLAB in C e fondarono la The<br />

MathWorks nel 1984 <strong>per</strong> continuare il suo sviluppo. a<br />

a Tratto da Wikipedia: http://it.wikipedia.org/wiki/MATLAB<br />

Maggiori informazioni su Matlab R○ possono essere ottenute d<strong>al</strong> seguente sito:<br />

http://www.mathworks.it/<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 27 / 44


Il MATLAB R○<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Elenchiamo i vantaggi e gli svantaggi del MATLAB R○:<br />

Vantaggi:<br />

1 molto flessibile <strong>per</strong> il c<strong>al</strong>colo vettori<strong>al</strong>e;<br />

2 molto facile (quasi immediato) da programmare.<br />

Svantaggi:<br />

1 tempi di esecuzione molto lenti;<br />

2 evitare i cicli for.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 28 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

Il MATLAB R○: un esempio<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Riportiamo un semplice esempio: carico in memoria una matrice (s<strong>al</strong>vata nel file<br />

A.mat), la inverto nella variabile B e faccio il prodotto matrici<strong>al</strong>e di A <strong>per</strong> B,<br />

s<strong>al</strong>vando il risultato nella variabile C.<br />

>> load A<br />

>> B=inv(A);<br />

>> C=A*B<br />

C =<br />

>><br />

1.0000 -0.0000 0<br />

0 1.0000 0<br />

0 0 1.0000<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 29 / 44


Il Java<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Il Java è un linguaggio di programmazione orientato agli oggetti. La piattaforma<br />

di programmazione Java è fondata sul linguaggio stesso e sulla Macchina virtu<strong>al</strong>e<br />

Java (Java Virtu<strong>al</strong> Machine o JVM).<br />

Java venne creato <strong>per</strong> soddisfare quattro scopi:<br />

1 essere completamente orientato agli oggetti;<br />

2 essere indipendente d<strong>al</strong>la piattaforma;<br />

3 contenere strumenti e librerie <strong>per</strong> il networking;<br />

4 essere progettato <strong>per</strong> eseguire codice da sorgenti remote in modo sicuro.<br />

Per facilitare il passaggio a Java dei programmatori legati in particolare a linguaggi<br />

come il C, la sintassi di base è stata mantenuta pressoché identica a quella del C.<br />

Diverse sono le soluzioni <strong>per</strong> scrivere programmi in Java. Un ottimo prodotto,<br />

compilatore più IDE, è Eclipse che può essere scaricato on-line d<strong>al</strong> seguente link:<br />

http://www.eclipse.org/<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 30 / 44


Il Java<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Elenchiamo i vantaggi e gli svantaggi del Java:<br />

Vantaggi:<br />

1 abbastanza flessibile e gener<strong>al</strong> purpose;<br />

2 indipendente d<strong>al</strong>la piattaforma;<br />

3 applicativi <strong>per</strong> il web.<br />

Svantaggi:<br />

1 tempi di sviluppo lunghi;<br />

2 tempi di esecuzione non brevissimi.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 31 / 44


Il Java: un esempio<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Riportiamo un semplice esempio: il programma “Hello World”.<br />

public class HelloWorld {<br />

public static void main(String[] args) {<br />

System.out.println("Hello World");<br />

}<br />

}<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 32 / 44


Il Python<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Il Python è un linguaggio di programmazione ad <strong>al</strong>to livello, orientato agli oggetti,<br />

adatto <strong>per</strong> sviluppare applicazioni distribuite, scripting, computazione numerica e<br />

system testing. Fu ideato da Guido van Rossum <strong>al</strong>l’inizio degli anni novanta. Il<br />

nome fu scelto <strong>per</strong> via della passione di van Rossum <strong>per</strong> i Monty Python e <strong>per</strong> la<br />

loro serie televisiva Monty Python’s Flying Circus.<br />

Il Python è un linguaggio multi-paradigma, che fa della dinamicità, semplicità e<br />

flessibilità i suoi princip<strong>al</strong>i obiettivi. Supporta il paradigma object oriented, la programmazione<br />

strutturata e molte caratteristiche di programmazione funzion<strong>al</strong>e. Le<br />

caratteristiche più interessanti sono le variabili non tipizzate e l’uso dell’indentazione<br />

<strong>per</strong> la definizione dei blocchi. Altre caratteristiche distintive sono l’overloading<br />

di o<strong>per</strong>atori e funzioni, la presenza di un ricco assortimento di tipi e funzioni di<br />

base e librerie standard.<br />

Diverse sono le soluzioni <strong>per</strong> scrivere programmi in Python. Un ottimo punto di<br />

partenza è fornito d<strong>al</strong> port<strong>al</strong>e uffici<strong>al</strong>e:<br />

https://www.python.org/<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 33 / 44


Il Python<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Elenchiamo i vantaggi e gli svantaggi del Python:<br />

Vantaggi:<br />

1 abbastanza flessibile e gener<strong>al</strong> purpose;<br />

2 indipendente d<strong>al</strong>la piattaforma;<br />

3 orientato agli oggetti.<br />

Svantaggi:<br />

1 tempi di esecuzione non brevissimi.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 34 / 44


Il Python: un esempio<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Riportiamo un semplice esempio: il c<strong>al</strong>colo delle prime cinque potenze del 2.<br />

numeri = [1, 2, 3, 4, 5]<br />

def potenza_di_due(numeri):<br />

for n in numeri:<br />

yield 2 ** n<br />

gen = potenza_di_due(numeri)<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 35 / 44


NU-Tech<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Il NU-Tech è una piattaforma orientata agli scenari re<strong>al</strong>-time, dove è essenzi<strong>al</strong>e<br />

un controllo sul tempo di esecuzione e la latenza.<br />

E’ disponibile <strong>per</strong> il download, dopo registrazione, d<strong>al</strong> sito: http://www.<br />

nu-tech-dsp.com/.<br />

In sintesi:<br />

NU-Tech è una potente piattaforma software <strong>per</strong> l’implementazione<br />

re<strong>al</strong>-time di <strong>al</strong>goritmi DSP in scenari multican<strong>al</strong>e;<br />

NU-Tech lavora su un comune PC;<br />

NU-Tech si basa su una semplice architettura di plug-in che<br />

consente <strong>al</strong>l’utente di connettere tra loro blochhi specifici;<br />

Ciascun blocco (chiamato NUTS) viene creato precedentemente in<br />

linguaggio C++;<br />

Un’interfaccia ASIO 2.0 consente di controllare con precisione i<br />

tempi di latenza.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 36 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

NU-Tech: esempio di interfaccia<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 37 / 44


Pure Data o PD<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Il Pure Data (o PD) è un ambiente di sviluppo grafico, sviluppato da Miller<br />

Puckette nel 1990, <strong>per</strong> la composizione di computer music interattiva o <strong>al</strong>tre<br />

o<strong>per</strong>e multimedi<strong>al</strong>i. E’ completamente open-source e può essere scaricato<br />

d<strong>al</strong> sito: http://puredata.info/.<br />

E’ un ambiente modulare: aggiungendo blocchetti di base (oggetti o extern<strong>al</strong>s),<br />

che possono essere sviluppati in C o Python, è possibile elaborare in<br />

re<strong>al</strong>-time audio, immagini, video, ecc.<br />

Pure Data è la base di molti progetti di ricerca, utilizzato come prototipo<br />

di linguaggio <strong>per</strong> motori music<strong>al</strong>i; è stato anche utilizzato come motore<br />

audio <strong>per</strong> videogames (ad esempio Spore). PD viene anche utilizzato <strong>per</strong><br />

le <strong>per</strong>formance music<strong>al</strong>i in rete.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 38 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

Pure Data: esempio di interfaccia<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 39 / 44


EyesWeb<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Il software EyesWeb è simile a Pure Data, con un’interfaccia più accattivante,<br />

ma meno potente. E’ stato sviluppato d<strong>al</strong>l’InfoMus Lab del Dipartimento<br />

di Informatica, Sistemistica e Telematica dell’Università<br />

di Genova. E’ completamente open-source e può essere scaricato d<strong>al</strong> sito:<br />

http://www.infomus.org/EywMain.html.<br />

Anche EyesWeb è un ambiente modulare: aggiungendo blocchetti di base,<br />

gli oggetti, è possibile elaborare in re<strong>al</strong>-time audio, immagini, video, ecc.<br />

Lo scopo del porgetto EyesWeb è quello di progettare interfaccie<br />

multimod<strong>al</strong>i interattive e re<strong>al</strong>-time. E’ usato so<strong>per</strong>atutto da musicisti e<br />

artisti.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 40 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

EyesWeb: esempio di interfaccia<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 41 / 44


Max/MSP<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Il Max/MSP è un ambiente di sviluppo grafico <strong>per</strong> la musica e la multimedi<strong>al</strong>ità<br />

ideato ed aggiornato d<strong>al</strong>l’azienda di software Cycling ’74. È utilizzato<br />

da oltre quindici anni da compositori, esecutori, progettisti software,<br />

ricercatori e artisti interessati a creare software interattivo.<br />

Lo stesso applicativo Max/MSP è <strong>al</strong>tamente modulare: la maggior parte<br />

delle sue routines esiste in forma di libreria condivisa. Una API <strong>per</strong>mette a<br />

terze parti lo sviluppo di nuove routines (chiamate extern<strong>al</strong> objects).<br />

Max fu scritto originariamente da Miller Puckette, a metà degli anni ’80,<br />

<strong>per</strong> <strong>per</strong>mettere ai compositori l’accesso a un sistema “creante” nell’ambito<br />

della musica elettronica interattiva, lo stesso che diede vita a Pure Data.<br />

Diversamente da quest’ultimo il Max è un sistema prorietario e l’attu<strong>al</strong>e<br />

versione commerci<strong>al</strong>e è Max/MSP.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 42 / 44


<strong>Introduzione</strong><br />

Gli strumenti<br />

Max/MSP: esempio di interfaccia<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 43 / 44


Bibliografia<br />

<strong>Introduzione</strong><br />

Gli strumenti<br />

Software <strong>per</strong> la produzione di filtri (e/o applicativi)<br />

Software multimedi<strong>al</strong>e<br />

Matlab<br />

MATLAB 7: Getting Started Guide.<br />

Available on-line:<br />

http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/getstart.pdf<br />

T.A. Davis.<br />

MATLAB Primer.<br />

8-th Edition, CRC Press, 2010..<br />

H. Schildt.<br />

La Guida Completa C++.<br />

McGraw-Hill, 2003.<br />

G. Bradski and A. Kaehler.<br />

Learning OpenCV<br />

O’Reilly, 2008.<br />

M. Scarpiniti <strong>Laboratorio</strong> <strong>per</strong> <strong>l’Elaborazione</strong> <strong>MultiMedi<strong>al</strong>e</strong> <strong>Lezione</strong> 1 - <strong>Introduzione</strong> <strong>al</strong> <strong>corso</strong> 44 / 44

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!