Computer Science Applied to Sound

A.Y. 2021/2022
12
Max ECTS
96
Overall hours
SSD
INF/01
Language
Italian
Learning objectives
The course is structured into two teaching units. The first unit (6 CFU) aims at providing student with basic notions of digital audio signal processing. The second unit (6 CFU) aims at introducing the main concepts of object oriented programming, applying such concepts to real-time audio synthesis.
Expected learning outcomes
At the end of the first unit, the student shall be able to master the representations and the transformations of audio signal in the time domain and in the frequency domain, also by means of dedicated programming languages. At the end ot the second unit, the student shall be able to master the main concepts of object-oriented programming and to use them profitably in the development of real-time audio processing software projects.
Single course

This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.

Course syllabus and organization

Single session

Responsible
Lesson period
year
Teaching methods
Lectures will be held on the Zoom platform, can be attended both synchronously based on the official timetable and asynchronously as they will be recorded and uploaded on the course website.

Course syllabus and Teaching Resources
The contents and reference material will not be changed.

Assessment methods and Criteria
Oral tests will be held on the Zoom platform, with no further modifications.
Written tests, and tests at the computer will be held on the Zoom and Labonline platforms, by subdividing students in turns composed of small groups. The overall structure of the tests will remain unchanged.
Course syllabus
For the first module, the program is focused on the following topics
- Introduction to audio signal processing using MATLAB
- Audio content analysis (signals, sampling, quantization, convolution, Fourier transforms, correlation)
- Audio Features (statistical, spectral, postprocessing, dimensionality)
- Short term audio processing (Signal Transforms and Filtering Essentials)
- Audio classifiers (speech, emotion, urban sounds, etc.)

For the second module, the program is focused on the following topics
- Introduction to Python:
Types, operators, variables, decisions, cycles, functions
- Iterations in Python:
counters, iterable types, iterators, comprehension
- Introductions to object-oriented programming:
classes, encapsulation, inheritance, polymorphism
- Object-oriented programming in Python:
constructors, methods, attributes, class and static methods
- Inheritance in Python:
types of inheritance, name trees
- Poymorphism in Python:
"Duck typing" and types of polymorphism, comparison Python vs. Java
- Real-time sound synthesis and processing in Python:
introduction to pyo, class hierarchy, audio effect programming
- Object-oriented audio programming:
extending pyo classes, constructors, method overriding
Prerequisites for admission
Having passed the exam of Programming is a compulsory requirement for this course. Moreover, having passed the exam of Acoustics is strongly recommended.
Teaching methods
The entire course is taught by lectures.
Teaching Resources
For the first module
Web site:
- https://sntalampirasias1.ariel.ctu.unimi.it/
Books:
- An Introduction to Audio Content Analysis: Applications in Signal Processing and Music Informatics, https://www.audiocontentanalysis.org/ https://dl.acm.org/doi/10.5555/2392638
- Audio and Speech Processing with MATLAB, https://www.routledge.com/Audio-and-Speech-Processing-with-MATLAB/Hill/p/book/9780367656317
- Introduction to Audio Analysis: A MATLAB Approach, https://www.elsevier.com/books/introduction-to-audio-analysis/giannakopoulos/978-0-08-099388-1
Additional materials:
- Matlab reference help

For the second module
Web site:
http://favanziniias2.ariel.ctu.unimi.it
Books [For the part on the Python language]:
- 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/
Books [For the part on object-oriented programming]:
- 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/
Additional materials [For the part on audio programming]:
- Official pyo documentation, http://ajaxsoundstudio.com/pyodoc/

Additional complementary material prepared by the instructors is made available through the web sites of the course.
Assessment methods and Criteria
For the first module, the final exam consists of a written test and of the development of a project to be delivered to the teacher, with no oral discussion.
The evaluation is given in 30ths and is based on the following aspects: mastering of the course topics, ability to apply the acquired knowledge to solving actual problems, logical and critical thinking.

For the second module, the final exam consists of a test at the computer and an oral test. The test at the computer is composed of multiple choice/open questions, and programming exercises with a focus on the development of simple class hierarchies. The oral test can be given only after having passed the test at the computer, and consists of the discussion of a project on real-time audio programming.
The evaluation is given in 30ths and is based on the following aspects: mastering of the course topics, ability to apply the acquired knowledge to solving exercises, logical and critical thinking.

The final evaluation is given in 30ths and is computed as the average between the evaluations obtained in the two modules.
INF/01 - INFORMATICS - University credits: 12
Lessons: 96 hours
Professor(s)
Reception:
To be arranged by e-mail
Via Celoria 18, room no. 4004