School / Prep
ENSEIRB-MATMECA
Internal code
EI8PG205
Description
This course is an introduction to digital sound and its interfaces. Target skills include:
- recognizing the physical and perceptual parameters of sounds and interpreting their representations
- mastering the principle of digitization and the various digital sound formats (DAC, sampling, quantization) and the operation of sound cards.
- know how to use digital sound communication and synchronization protocols (MIDI, OSC, JACK)
- know how to manipulate digital sounds using C programs (playback, filtering)
- know the basic principles of sound synthesis and know how to synthesize sounds using sound synthesis languages
- know the basic principles of sequencers and know how to write plug-ins
Teaching hours
- CIIntegrated courses26h
- TIIndividual work25h
Mandatory prerequisites
Syllabus
1 - Introduction: History of sound synthesis, perception, basic concepts of digital sound (sampling, quantization, etc.),
2 - Sound synthesis I: sound synthesis languages and techniques (csound, puredata)
3 - Machine representation and manipulation of sound, introduction to different sound formats.
Data models and sound file formats, computer representation of sound information.
Reading, writing, editing, filtering sound in C.
4 - Western music representation, models, data formats.
MIDI data formats
MIDI communication, synthesizers
Trackers
5 - Symbolic representation of music
Languages for describing music.
Levels of abstraction: representation of sound (samples), music (notes), temporal structures (measures, sections, parts).
Visual languages.
Ontologies and time models for interactive music.
6 - Practical work: building a polyphonic synthesizer in C++. 7 - Interface between software and hardware
History of analog/digital converters
Operating principles and technologies
Introduction to sound processing on microcontrollers
JACK audio Connection Kit sound server. 8- Sound synthesis II
Filtering
FAUST
9 - Presentation of ossia score:
10 - Plug-ins ossia score.
Create a plug-in using the VST API.
Create a plug-in using the PureData / Max/MSP API.
Create a plug-in using the score API.
On-the-fly compilation.
Port typing.
Introduction to open-source contributions.
11 - Faust practical work on hardware.
- Creating sound objects in the Faust language.
- Converting Faust objects into C++ objects with the Faust2Teensy utility.
- Loading, playing and listening to sound objects on the 'Teensy4.0' microcontroller
(32-bit ARM microcontroller, compatible with the Arduino IDE and dedicated to the creation of compact DSPs).
12 - Collaborative creative project
Assessment of knowledge
Initial assessment / Main session - Tests
Type of assessment | Type of test | Duration (in minutes) | Number of tests | Test coefficient | Eliminatory mark in the test | Remarks |
---|---|---|---|---|---|---|
Integral Continuous Control | Minutes | 1 |