Things related to Digital Signal Processing (DSP).
Perception
- Loudness is non-linear, both amplitude-, frequency- and time-dependent. Instantaneous, Short-Term, and Long-Term
- The Bark Frequency Scale, corresponding to the first 24 critical (frequency) bands of hearing.
Distortion
- Inherently non-linear process. Creates new non-harmonically related overtones. Causes expansion signal bandwidth, possibly over the Nyquist/2 - causing aliasing into audible range.
Resampling/oversampling
- flyingSand: Audio Resampling: Part 2. Good explanation of polyphase filters for efficient oversampling. Includes C++ example code.
- Sample rate conversion: up Hands-on description of 2x oversampling, using a polyphase filter. C example code.
- Polynomial Interpolators for High-Quality Resampling of Oversampled Audio
- Basic upsampling: zero-pad with N-1 samples stretch operator
- Basic downsampling: pick every N sample decimation operator
- Polyphase filter for downsampling.
- resamp2 from liquid-dsp, C implementation that looks good.
Wavelets
Cross-synthesis
- Cross-synthesis "is the technique of impressing the spectral envelope of one sound on the flattened spectrum of another"
- Used for instance by vocoders
- sines+noise modeling
DSP libraries
- liquid-dsp. Plain C, no external dependencies, MIT/X11 licensed. Designed for Software-Defined-Radio, but has tons of generally useful filters, incl good documentation.
Preventing aliasing
- PolyBLEP oscillator, using Polynomial Bandlimited Step. Applied to saw/square. Done by adding ripple to signal around the discontinous regions. Also creating triangle wave by integrating the square wave with a lossy integrator.
- Bandlimited Impulse Train (BLIT)
- Minimum-Phase Bandlimited Step (MinBLEP)