The Audio Programming Book ========================== C Programaming Basics --------------------- 0 - An Overview of the C Language with Some Elements of C++ - 3 1 - Programming in C - 55 Audio Programming Basics ------------------------ 2 - Audio Programming in C - 185 2.1 A Simple Soundfile Library: portsf - 186 2.2 Processing Audio - 208 2.2.1 The First Audio Process: Changing Level - 208 2.2.2 Amplitude vs. Loudness — the Decibel - 210 2.2.3 Extending sfgain – Normalization - 212 2.3 Stereo Panning - 219 2.4 Enveloppes as Signals — Amplitude Processing - 239 2.5 Waveform Synthesis - 254 2.6 Additive Synthesis and the Table Lookup Oscillator - 286 3 - Working With Audio Stream - 329 4 - Introduction to Program Design - 383 Audio Programming Essentials ---------------------------- 5 - Introduction to Digital Audio Signals - 431 5.1 Signals - 431 5.2 Digital Signals - 432 5.3 Simple Signals: Sinusoids - 437 5.4 Basic Operations on Digital Signals - 444 5.5 Some Applications of Signal Processing - 452 6 - Time-Domain Audio Programming - 461 6.1 Synthesis: Table-Lookup Oscillators - 463 6.2 Oscillators: Implementation Issues - 467 6.3 Interpolation - 471 6.4 Envelopes - 474 6.5 Envelope Generators - 477 6.6 Filters - 482 6.7 Filters: Implementation - 484 6.8 Delay-Based Sound Processing - 490 6.9 Variable and Multitap Delays - 494 6.10 An Essential Application: An Audio Effect Plug-in - 502 Spectral Audio Programming -------------------------- 7 - Spectral Audio Programming Basics: The DFT, the FFT and Convolution - 521 7.1 Frequency Analysis: The Discrete Fourier Transform - 521 7.2 Applications of the DFT: Convolution - 529 8 - The STFT and Spectral Processing - 539 8.1 Analyzing Time-Varying Spectra: The Short-Time Fourier Transform - 539 8.2 Spectral Transformations: Manipulating STFT Data - 546 9 - Programming the Phase Vocoder - 557 9.1 Tracking the Frequency - 557 9.2 The Instantaneous Frequency Distribution - 568 Programming Csound Opcodes -------------------------- 10 - Understanding an Opcode in Csound - 581 11 - Spectral Opcodes - 617 Algorithmic Synthesis and Music Programming ------------------------------------------- 12 - A Modular Synthesizer Simulation Program - 629 13 - Using C to Generate Scores - 655 14 - Modeling Orchestral Composition 677 Appendixes ---------- A - Command-Line Tools Reference - 697 B - Debugging Software with the GNU Debugger - 719 C - Soundfiles, Soundfile Formats, and libsndfile - 739 D - An Introduction to Real-Time Audio IO with PortAudio - 771 E - MIDI Programming with PortMIDI - 783 F - Computer Architecture, Structures and Languages - 797 G - Glossary - 823 H - An Audio Programmer's Guide to Mathematical Expressions - 855