Dsp

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.

Awesome MusicDSP (GitHub)

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

Vult DSP Programming Language

Writing Efficient VCV Plugins from SquinkyLabs

Technical Papers from Cytomic

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)

Rust For DSP

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:

https://medium.com/@tonetechnician/how-to-setup-your-windows-vs-code-environment-for-vcv-rack-plugin-development-and-debugging-6e76c5a5f115


[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.)


If you would like to support my development of OpGuides, please consider supporting me on GitHub Sponsors or dropping me some spare change on Venmo @vegadeftwing - every little bit helps ❤️