Laboratorio per l’Elaborazione MultiMediale Lezione 1 - Introduzione al corso
Introduzione al corso - ISPAC - Sapienza
Introduzione al corso - ISPAC - Sapienza
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