Informatica applicata al suono

A.A. 2020/2021
12
Crediti massimi
96
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
L'insegnamento è articolato in due unità didattiche. La prima unità didattica (6 CFU) si propone di fornire agli studenti le nozioni di base sull'elaborazione digitale del suono. La seconda unità didattica (6 CFU) si propone di introdurre i principali concetti della programmazione orientata agli oggetti, applicando tali concetti alla sintesi ed elaborazione audio in tempo reale.
Risultati apprendimento attesi
Al termine della prima unità didattica lo studente deve essere in grado di padroneggiare le rappresentazioni e le trasformazioni di segnali audio nei dominii del tempo e della frequenza anche attraverso linguaggi di programmazione dedicati. Al termine della seconda unità didattica lo studente deve essere in grado di padroneggiare i principali concetti della programmazione object-oriented e di usarli autonomamente nello sviluppo di progetti software di elaborazione audio real-time.
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
annuale
Metodi didattici
Le lezioni si terranno sulla piattaforma Zoom, potranno essere seguite in sincrono sulla base dell'orario ufficiale, e in asincrono perché saranno registrate e lasciate a disposizione degli studenti sul sito del corso.

Programma e materiale di riferimento
Il programma e il materiale di riferimento non subiranno variazioni.

Modalità di verifica dell'apprendimento e criteri di valutazione
Le prove orali si svolgeranno utilizzando la piattaforma Zoom, senza altre variazioni.
Solo per il secondo modulo, la prova al calcolatore si svolgerà utilizzando le piattaforme Zoom e Labonline, e convocando gli studenti in turni successivi composti da piccoli gruppi. La struttura della prova non subirà variazioni

Programma
Per il primo modulo il programma verte sui seguenti argomenti
- Il suono nel dominio fisico acustico e in quello percettivo
Tono puro e sua modellazione matematica
Informazione di ampiezza e decibel (dB)
- Rappresentazione digitale del suono
Conversione analogico-digitale (ADC)
Campionamento e teorema del campionamento
Principio di quantizzazione
- Rappresentazioni in frequenza
Analisi frequenziale - Modello computazionale
Trasformata Discreta di Fourier (DFT)
- Sintesi ed elaborazione del suono
Sintesi additiva, sottrattiva, per modulazione di frequenza
Filtraggio e convoluzione

Per il secondo modulo il programma verte sui seguenti argomenti
- Introduzione a Python:
Tipi, operatori, variabili, decisioni, cicli, funzioni
- Iterazioni in Python:
contatori, tipi iterabili, iteratori, comprehension
- Introduzione alla programmazione orientata agli oggetti:
classi, incapsulamento, ereditarietà, polimorfismo
- Programmazione a oggetti in Python:
costruttori, metodi, attributi, metodi di classe e statici
- Ereditarietà in Python:
tipi di ereditarietà, name trees
- Polimorfismo in Python:
"Duck typing" e tipi di polimorfismo, confronto tra Python e Java
- Sintesi ed elaborazione audio in tempo reale in Python:
introduzione a pyo, gerarchia di classi, programmazione di effetti audio
- Programmazione audio ad oggetti:
estensione di classi in pyo, costruttori, sovrascrittura di metodi
Prerequisiti
Il superamento dell'esame di Programmazione è propedeutico a questo insegnamento. E` inoltre fortemente consigliato il superamento dell'esame di Acustica.
Metodi didattici
L'intero insegnamento viene svolto mediante lezioni frontali.
Materiale di riferimento
Sito web:
http://favanziniias2.ariel.ctu.unimi.it

Per il primo modulo:
M. Malcangi: "Informatica Applicata al Suono per la Comunicazione Musicale - Musical Digital Audio: Teoria e pratica", Maggioli Editore

Per la parte relativa al linguaggio Python:
- Mark Lutz,
"Learning Python", fifth edition. O'Reilly (2013).
- Allen B. Downey,
"Think Python", second edition. Green Tea Press (2016).
https://greenteapress.com/wp/think-python-2e/

Per la parte relativa alla programmazione orientata agli oggetti:
- Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser,
"Data Structures and Algorithms in Python". Wiley (2013)
- Michael H. Goldwasser, David Letscher,
"Object-Oriented Programming in Python", Prentice Hall (2008).
https://cs.slu.edu/~goldwasser/oopp/

Per la parte relativa alla programmazione audio:
- Documentazione ufficiale di pyo
http://ajaxsoundstudio.com/pyodoc/

Ulteriore materiale integrativo preparato dal docente viene reso disponibile sul sito web dell'insegnamento.
Modalità di verifica dell’apprendimento e criteri di valutazione
Per il primo modulo l'esame consiste nello sviluppo di un progetto da discutere criticamente in una prova orale. Il progetto può essere sviluppato individualmente o in piccoli gruppi.
La valutazione è espressa in trentesimi e tiene conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze alla risoluzione di problemi concreti, capacità di ragionamento logico e critico.

Per il secondo modulo l'esame consiste di una prova al calcolatore e di una prova orale. La prova scritta comprende domande a risposta chiusa/aperta ed esercizi di programmazione riguardanti lo sviluppo di semplici gerarchie di classi. Durante la prova è consentita la consultazione della documentazione di python e dei moduli utilizzati.
La prova orale può essere sostenuta solo dopo il superamento della prova al calcolatore, e consiste nella discussione di un progetto di programmazione audio in tempo reale.
La valutazione è espressa in trentesimi e tiene conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze alla risoluzione di esercizi, capacità di ragionamento logico e critico.
Moduli o unità didattiche
Prima parte
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente: Malcangi Mario Natalino

Seconda parte
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore

Docente/i
Ricevimento:
Su appuntamento via e-mail
Via Celoria 18, ufficio 4004