Harmonic and Melodic Resonance Programming

At the birthday party of subtractive synthesis, resonance is the quarter you find under your slice of cake. By its very definition, subtractive synthesis leaves you with less than what you started with. Resonance gives you something that you didn’t have before, at least perceptually speaking. Technically speaking, it gives you more of something you already had, by emphasizing existing harmonic content.

We’re all familiar with the more common uses of resonance: adding definition to filter sweeps, adding emphasis to filter envelopes, and accentuating rhythmic accent patterns with velocity-controlled filter patches. If you’re lucky enough to have an instrument with a self-oscillating filter, you’ve probably also created “Hi-Q” percussion effects, sonar pings, simulated shortwave interference, and unweildly theremin effects.

I’ve been programming some sounds lately with a slightly different approach to resonant filters. Rather than using resonance as a timbral element, i.e. an element of the quality of the sound, I’ve been programming sounds that use resonance as an instrument unto itself – using resonance to create pitches that can be incorporated into a piece in either a melodic or harmonic capacity.

Before I move on to some programming examples that you can try yourself, I’m going to try to explain why this works the way it does. It involves some very basic acoustic physics that I happen to think every synthesist should know, and that I also happen to think is really interesting. If you already know this stuff, feel free to skip ahead. Even if you don’t, but you think you’re going to hate it, you can skip ahead to the programming examples and come back later if you get curious.

The Harmonic Series

Every complex waveform is made up of simpler waves – sine waves – of different pitches and amplitudes. Pitched acoustic sounds and periodic waveforms are made up of sine waves in a specific pitch relationship known as the Harmonic Series (sometimes called the overtone series).

The relationship of pitches in the Harmonic Series is simple. If the fundamental pitch (the note you are playing) has a value of n, then the constituent sine waves in the resulting waveform will be n, 2n, 3n, etc. To put it another way, if you play a G one octave and a fourth below middle C on a piano, the fundamental will be (approximately) 100 Hz, and the waveform will contain sine waves with frequencies of 200, 300, 400 Hz etc. If we convert those frequencies to note names, the first 8 pitches (more commonly referred to as the fundamental and the first 7 partials) will look like this (approximately):

100 – G
200 – G
300 – D
400 – G
500 – B
600 – D
700 – F (a very flat F)
800 – G

Okay, less math and more music. We know that resonance emphasizes the harmonic content of whatever you’re feeding into the filter at the cutoff frequency. And we know that in a range that starts with your fundamental and goes up about 3 octaves, the harmonic content consists entirely of predictable and well-defined pitches. The pitches higher up in the harmonic series are also fixed and predictable, but they get closer together as you go up, and a higher percentage of them don’t fit so nicely into the equal-tempered scale. If we can figure out a way to tune our filter to these lower harmonics, we might just be able to play a tune with our resonant filter.

Programming a Sound

Even the most basic synthesizers give you a few options for filter control sources. If we want to be able to tune the filter to specific pitches in real time, we’ll want to use static sources rather than dynamic sources, and by that I mean single control values rather than LFOs and envelope generators. Of course you can get the same sorts of effects with just about any control source.

The tuning range of a filter is much broader than that of most oscillators. Because all synths are different, you’ll just have to experiment with the values on your own. But here are some pointers to get fine control of the filter over a limited frequency range that should work on most synthesizers. Start with a simple, overtone-rich waveform, like a sawtooth or square wave. Triangle waves have a very high fundamental-to-partial amplitude ratio, so they don’t work quite as well. Sine waves don’t have any partials, so they won’t work at all.

Pick one low note to use for auditioning. It will be harder to program this sound if you are playing different notes initially. Later we’ll try to modify the patch to accomodate different notes. The filter should be a steep one, so if you have a choice between 12 and 24 db/octave filters, use 24. You can use any filter mode (Low, Band, High or All-pass) but let’s start with Low Pass for now, because it will be easiest to tune to the fundamental.

Play and hold your low auditioning note, and lower the cutoff frequency gradually until you get close to a pure sine-tone sound (as if you were programming a jungle “sub-bass”). If you lower the cutoff further than this point, you should hear the tone drop significantly in volume as the filter frequency lowers beyond your fundamental. While still holding the original note, turn up the resonance just to the point of self-oscillation, and then pull it back a little. Keep your monitoring volume low, especially if you’re programming an analogue synth. A self-oscillating filter can quickly get out of hand and blow a speaker if you’re not careful.

Now assign a continuous controller to the filter. Data slider, ribbon controller, or direct control from the mod wheel (no LFO modulation) should work fine. Set the sensitivity (or intensity or modulation amount) to zero, and push the slider or mod wheel or whatever up full. Gradually increase the sensitivity and you should hear a sine tone sweeping up through those notes described in the last section. If you don’t, try increasing the resonance amount. If you still don’t hear it, you may not have a steep enough filter, and you should stop reading and go out and buy a synth that does.

Increase the sensitivity until the tones produced by the resonance become less distinct. This happens in the fourth octave above your fundamental, and the filter tone turns into a continuous sweep. Now pull the sensitivity back a little. Now you’ve created your basic resonance effect, and you’re ready to save your patch. From here you can try some modifications. If you want to shape the sound further (because aside from the resonance it’s not doing much yet), you can use the amp envelope. If you’re lucky enough to have another filter available, you can use that for further sound shaping in series or parallel to the filter that you’ve just modified.

Adding another control source to the resonant filter can also give you some interesting (but less predictable) results. Now is a good time to try adding additional oscillators, changing filter modes, or experimenting with samples. If you want to be able to use other notes in your patch in addition to your auditioning note, just set filter tracking to ‘linear’ or ‘100’ or whatever setting duplicates pitch tracking. This may throw off your original filter tuning, but if you make some minor adjustments between tracking and cutoff frequency it shouldn’t take too long to get it straightened out.


I’ve created two examples using this technique in two different musical settings.

melodic_resonance.mp3 uses a Korg Mono/Poly with the filter controlled by channel pressure fed through an MPU-101 MIDI/CV converter.

percussive_resonance.mp3 uses a “mouth percussion” sample on a K2000 with velocity mapped to the filter to create a tuned percussion effect.