Category Archives: Digital Audio

Perspective on dither

Recently, I’ve had lengthy discussions on the topic of dither with a couple of different people—of opposite views. One believes that everything should be dithered, including truncations to 24-bit. The other feels that dither is a waste of time even … Continue reading

Posted in Dither | 2 Comments

Replicating wavetables

My WaveTableOsc object uses a series of wavetables that are copies of single-cycle waveforms pre-rendered at a progressively smaller bandwidth. By “replicating wavetables” I mean taking a full-bandwidth single cycle waveform, and using it to make a complete set of … Continue reading

Posted in Oscillators, Wavetable Oscillators | 6 Comments

A one-pole filter

Here’s a very simple workhorse of DSP applications—the one-pole filter. By comparison, biquads implement two zeros and two poles. You can see that our one-pole simply discards the zeros (the feed-forward delay paths) and the second pole (feedback path): We … Continue reading

Posted in DC Blocker, Digital Audio, IIR Filters | 6 Comments

A note about de-normalization

One ugly thing that we need to be aware of, especially for filters, is the de-normalization of numbers. Basically, computer processors try to keep floating point numbers normalized—they try to keep them in the binary form 1.xxxxxx (where each x … Continue reading

Posted in Digital Audio | 1 Comment

Biquad C++ source code

I don’t want to get into the business of teaching people how to code—there are a huge number of free resources available on the internet to that do that. But I’ll give a small taste for those trying to get … Continue reading

Posted in Biquads, Digital Audio, Filters, IIR Filters | 10 Comments

A wavetable oscillator—end notes

I wrote the wavetable oscillator code from scratch as I wrote this series of articles, using just the thought process I gave. Hence, no references to other articles on wavetable oscillators. The concept of a phase accumulator is fairly obvious; … Continue reading

Posted in Digital Audio, Oscillators, Wavetable Oscillators | Leave a comment

A wavetable oscillator—the code

The wavetable oscillator code follows the basic structure of most audio processing blocks, with three types of functions: at the start: initialization—create the oscillator and its wavetables as needed: control—change the oscillator frequency, and pulse width for PWM every sample: … Continue reading

Posted in Digital Audio, Oscillators, Wavetable Oscillators | 9 Comments

A wavetable oscillator—Part 3

In Part 2, we looked at how to use subtables designed to cover one octave each, removing upper harmonics for each higher octave to avoid aliasing. Here’s a view of the nine wavetables for our sawtooth oscillator, with the starting … Continue reading

Posted in Digital Audio, Oscillators, Wavetable Oscillators | 2 Comments

A wavetable oscillator—Part 2

From Part 1, we have an oscillator. But we need to broaden it to allow scaling of harmonic content based on pitch so that we have all the harmonic content we need at the low frequency end, and, as we … Continue reading

Posted in Aliasing, Digital Audio, Oscillators, Wavetable Oscillators | 11 Comments

A wavetable oscillator—Part 1

There are many ways to make an oscillator. Without looking for further motivation, I’ll propose a wavetable oscillator. Wavetables are a fairly obvious extension of the general playback of digital audio. Such oscillators are easy to understand, and their extreme … Continue reading

Posted in Digital Audio, Oscillators, Sample Rate Conversion, Wavetable Oscillators | Leave a comment