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