## Further thoughts on wave table oscillators

I see regular questions about wave table oscillators in various forums. While the process is straight forward, I sympathize that it’s not so simple to figure out what’s important if you really want to understand how it works. For instance, … Continue reading

## WaveUtils updated

WaveUtils needed only a minor change for compatibility with the WaveTableOsc update—addWaveTable changes to AddWaveTable. But I added something new while I was at it. The original wave table articles advocated minimizing the number of tables necessary—one per octave—by allowing … Continue reading

Posted in Source Code, Wavetable Oscillators | 17 Comments

## WaveTableOsc optimized

The wave table oscillator developed here in 2012 is pretty lightweight, but I never took a close look at optimization at the time. An efficient design is the number one optimization, and it already had that. I was curious how … Continue reading

Posted in Source Code, Wavetable Oscillators | 6 Comments

## How I write code

Next article I’ll post an update of our wave table oscillator, but first I’ll take the opportunity to discuss how I write code these days. Maybe it will help make sense of some of the choices in the code I … Continue reading

Posted in Source Code | 18 Comments

## Floating point denormals

There’s another issue with floating point hardware that can easily cause serious performance problems in DSP code. Fortunately, it’s also easy to guard against if you understand the issue. I covered this topic a few years ago in A note … Continue reading

Posted in Math | 10 Comments

## Floating point caveats

The equivalent of “When I was your age, we use to walk to school in the snow. Barefoot”, in DSP, is to say we used to do DSP in fixed point math. The fixed-point system could be made of integer … Continue reading

Posted in Math | 9 Comments

## Wavetable signal to noise ratio

In our wavetable series, we discussed what size our wavetables needed to be in order to give us an appropriate number of harmonics. But since we interpolated between adjacent table entries, the table size also dictates the signal to noise … Continue reading

## Sampling theory, the best explanation you’ve ever heard—End notes

A few words before moving on to other topics… We’ve looked at why digital sample represent ideal impulses, and why any point between samples represents a value of zero. And, as a result, audio samples don’t represent the audio itself, … Continue reading

Posted in Digital Audio, Sampling Theory | Tagged | 2 Comments

## Sampling theory, the best explanation you’ve ever heard—Part 3

We look at what Pulse Amplitude Modulation added to our analog source audio. What did PAM add? Earlier, we noted that the PAM signal represents the the source signal plus some additional high frequency content that we need to remove … Continue reading

Posted in Digital Audio, Sampling Theory | Tagged | 5 Comments

## Sampling theory, the best explanation you’ve ever heard—Part 2

In this article, we explore the origins of sampling. Discrete time For many, discrete time and digital sampling are synonymous, because most people have little experience with discrete time analog. But perhaps you’ve used an old-style analog delay stompbox, with … Continue reading