This repository is part of the EPFL Master's course Computers and Music taught during the spring semester. The course's lecture notes can be found on this link. The lecture notes are supported by Jupyter notebooks to illustrate practical examples of the concepts taught in class. This repository contains the following notebooks:
- DAC: Simple visualizations of the building bricks of an ADC and a DAC.
- OneBitMusic: Encoding music over 1bit-samples using oversampling and sigma-delta.
- QuantizationNoise: Demonstration of the Tsividis' paradox when quantizing a signal.
- Mp3Encoder: A MPEG1-layer 1 encoder, converting .wav into .mp3 files.
- PitchScalingAndTimeStretching: Methods for independently changing the pitch and length of an audio signal.
- ChannelVocoder: A vocoder combining a carrier synthesizer with a modulator voice.
- Synthesizer: Digital, additive, FM, and wavetable syntheses, and LFO modulation.
- PhysicalModelling: Physical modelling implementations of different instruments such as strings or percussions.
- Equalizer: An audio EQ composed of 3 types of frequency filters (notch, cut, and shelf).
- Compressor: A dynamic range compressor controlled by threshold, ratio, knee with, makeup, attack, and release.
- Reverb: Artificial acoustic reverberation built with FIR and IIR filters.
- Beatles: A simple implementation of a guitar+amplifier setup featuring the Beatles.
- NonlinearModelling: Methods for modelling and identifying dynamic nonlinear systems such as amplifiers.
- DeepLearning: Some examples of deep learning applications in audio production.
- Helpers: A notebook with helpers functions for the others notebooks, along with examples and explanations.
The requirements.txt file contains the libraries needed for running the code.
The samples directory contains .wav audio files needed for running the notebooks.
The pictures directory contains the pictures needed for running the notebooks.