projet μ: A UNIX-centric introduction to audio programming and DSP
A UNIX-centric introduction to audio programming and DSP from scratch, with practical examples using low-level C and the JACK Audio Connection Kit.
projet μ is a free online textbook about the basics of audio DSP and audio programming in low-level C.
Each unit is practical and goal-oriented: we build a small audio toy from scratch, learn the necessary theory and techniques, but keep the math and implementations explicit to build a low-level intuition. The goal isn't to cover everything, but to build a good fundation to explore deeper topics independently.
The online textbook isn't directly talking about JUCE, but it will help you understand how JUCE works in low level. We will use a Linux environment (or macOS, BSDs, MSYS/MinGW on Windows) and the JACK Audio Connection Kit to write the examples in C, but they can be easily translated to any framework and any programming language.
Prerequisites:
- C programming and familiarity with UNIX shell utilities
- Integral calculus
- Geometric understanding of complex numbers (you need to know what e^iθ means geometrically)
Topics covered:
- wave: WAV audio format, basic DSP theory
- wave♯: WAV file loading, AMDF pitch estimation
- osc (part i): oscillators, phasors, JACK Audio Connection Kit, joystick interface
- osc (part ii): Fourier series, aliasing, wavetable synthesis, bandlimited oscillators
- osc♯: 2D wavetable, wave terrain synthesis
- mix: Open Sound Control (OSC), parameter smoothing, the decibel (dB) scale.
- adsr: ADSR envelope generators
- ctrl: thread safety, inter-thread communication, ring buffers.
- delay: delay/echo effects, basic FIR and IIR filters
- delay♯: Karplus-Strong algorithm, simple digital waveguide synthesis
- dft: Discrete Fourier Transform (DFT/FFT), connection between discrete-time and continuous-time Fourier transforms, the Fourier cube
- spectrm: audio spectrum visualization, framebuffer rendering, DFT of real signals, the FFTW library
- spectrm♯: DFT spectral leakage, windowing, zero-padding
- reverb: artificial reverb algorithms, convolution
- ext: dynamic linking, audio plugins (LADSPA, LV2, VST, CLAP, etc.)
- denormal: IEEE 754 denormal/subnormal numbers, floating point optimization
- ...
Something wrong with this product?
ReportAre you the owner of this product?
Request Ownership