30 - Digital Signal Processing #
Spectral Audio Signal Processing by JULIUS O. SMITH III at the Center for Computer Research in Music and Acoustics (CCRMA)
Sampling & Quantization #
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
Digital Signal Processing #
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
Digital to Analog Conversion #
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
Discrete Time System #
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
+ Reconstruction filtering
Nyquist & Aliasing #
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
Upsampling & Downsampling #
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
IIR & FIR Filters #
Lorem sed risus ultricies tristique. Vestibulum sed arcu non odio euismod lacinia at. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Adipiscing elit ut aliquam purus sit amet luctus venenatis lectus. Et malesuada fames ac turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. In fermentum posuere urna nec tincidunt praesent semper. Aliquet bibendum enim facilisis gravida. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus.
Envelopes #
Optimization & Numerical Effects #
The Scientist and Engineer’s Guide to Digital Signal Processing By Steven W. Smith, Ph.D.
Tom Erbe, Design the Erbe Verb (YouTube)
https://zserge.com/posts/etude-in-c/ & https://zserge.com/posts/beep/
Diospyros - Search-based compiler for high-performance DSP programming
Think DSP - DSP in Python, Free book
Writing Efficient VCV Plugins from SquinkyLabs
https://blog.demofox.org/2021/12/29/why-cant-you-design-noise-in-frequency-space/
Hardware
A Transistor-less sound synthesizer (Hackaday, Jenny List, Dr. Cockroach)
Chua oscillator on CRO during inductance sweep
http://www.doepfer.de/DIY/a100_diy.htm
As a quick note, there are a ton of possible options when choosing what to use as hardware for developing audio hardware. You can go full analog, work with dedicated DSP hardware, use microcontrollers with full FPUs, use single board computers, use an FPGA (Like on the Rainmaker), or try to get by on a 328P (Arduino Uno). The most important part is making something, don’t stress too much about what you use to do it- but don’t use something prohibitively expensive or outright garbage (like the 328P) either, unless you know what you’re doing. The STM32’s with FPU’s are probably a good bet.
Digital Vintage Sound: Modeling Analog Synthesizers with the Wolfram Language and System Modeler
Reverse-engineering the Yamaha DX7 synthesizer’s sound chip from die photos (Ken Shirriff’s Blog)
Software
Awesome Audio Visualization (GitHub)
Kord (GitHub) - a music theory development framework in python
Tutorial: Programming Modules for VCV Rack - Part 1 (YouTube, Leonardo Laguna Ruiz) (This might be out of date)
Tutorial: Virtual Analog Modeling Basics, the Vult way (YouTube, Leonardo Laguna Ruiz)
Learn Modern C++ by Building an Audio Plugin w/ JUCE Framework (YouTube - freeCodeCamp.org)
http://ajaxsoundstudio.com/software/pyo/
Magenta DDSP - ML meets DSP
ColorChords Music-Optimized DFT Algorithm
I’d like to show DSP with VCV rack as much as I can, but dev sucks without debug, so this helps:
[TODO] Discrete time? Nyquist? Z transform(quick review of sig & sys)
[TODO] Quantization & Numerical effects
[TODO] Aliasing, Upsampling, down sampling
[TODO] why not use std::sin
[TODO] Lookup-table generators (Wavetables)
[TODO] Envelopes
[TODO] Convolution reverb/cab
[TODO] IIR
[TODO] FIR & Windowing
[TODO] Brief digression into N-dim dsp (images, etc.)