The Wobble
A wobble is a saw through a resonant lowpass swept by a tempo locked LFO, and it doesn't sweep, it steps. The filter peak can only land on a harmonic of the note, so on a 55 Hz saw it climbs a staircase of 32 harmonics from the third to the 45th, a fourth wide at the bottom and 0.39 of a semitone at the top, going round 4.6 times a second on an eighth note at 140. Sharp resonance lifts each step 18 dB, soft lifts it 6. Play it, or let it play a bassline.
What it is
The wobble, as an instrument. A sawtooth on A1 through a resonant lowpass whose cutoff is swept up and down by an LFO locked to the tempo: a quarter, an eighth, an eighth triplet or a sixteenth at 140. Two resonance settings, soft and sharp. A demo that plays a half time bassline until you touch a key, and keys that glide when you slide between them.
The spectrogram is the point of this one. Every wobble looks like a comb being dragged up and down the harmonics, and if you look at where the bright spot is, it’s never between two lines.
How it works
The LFO sweeps the cutoff from 2.5 kHz down to 150 Hz and back on a log axis, so the sweep is even in octaves. The saw underneath doesn’t move. Its harmonics are at 55, 110, 165 Hz and so on, and a resonant filter can only lift what is there, so the peak you hear is whichever harmonic the cutoff is nearest at that moment. The page tracks it: every 5 ms a 40 ms window reads each harmonic’s level, divides by the 1/h a saw gives it so the fundamental’s head start is taken out, and the harmonic the filter is lifting most wins the frame.
On an eighth note the peak visits 32 distinct harmonics between the third, at 165 Hz, and the forty fifth, at 2475 Hz. The step from the third to the fourth is 4.98 semitones, a fourth. The step from the forty fourth to the forty fifth is 0.39 of a semitone. On a quarter note the sweep is slower and the peak visits 38 of the 43 harmonics in range. On a sixteenth it reaches down to the second harmonic and the bottom step becomes a fifth, 7 semitones.
The rate is read off the track: the peak goes up and back down once per cycle, and counting those cycles gives 2.33, 4.58, 7.02 and 9.38 Hz for LFOs set to 2.33, 4.67, 7.00 and 9.33.
The lift is the filter’s own peak gain, measured with the cutoff parked on the twentieth harmonic: 18.04 dB at a Q of 8 and 6.00 at a Q of 2, against 20 log Q of 18.06 and 6.02.
The sound is Web Audio’s lowpass with a sine LFO on its detune parameter, so the sweep is exponential like the arithmetic, and the LFO is restarted a quarter cycle early on every note so the wob begins open. Rendered offline it lands on the same staircase, harmonics 3 to 45 with steps of 5.0 and 0.39 semitones, 4.71 Hz for the eighth against my 4.58, and with the cutoff parked on harmonic 20 its lift is 18.04 dB against my 18.04. Chrome’s filter and the textbook biquad are the same filter to the hundredth of a dB.
What surprised me
A wobble does not sweep. I had always heard it as a continuous rise and fall, and every diagram of one draws a smooth curve. The filter curve is smooth. The sound isn’t, because the filter has nothing to lift between the harmonics, so what you hear is a staircase, coarse at the bottom and fine at the top. The first step is a fourth. By the top the steps are smaller than a quarter tone and the ear hears them as a slide. In between is where a wobble gets its character, and it’s a different staircase on every note, because the steps are the note’s own harmonics.
Three instruments broke on the way.
The first tracked the loudest harmonic and never left the fundamental. A sawtooth’s twentieth harmonic is 26 dB down and an 18 dB lift doesn’t bring it back above the first. Dividing each harmonic’s level by the saw’s own slope before comparing fixed it, and the test that guards it runs the loudest harmonic method on the same render and checks that it says harmonic 1 more than 60% of the time, which it does.
The second read the wobble rate from the level in a 20 ms window at 1.5 kHz and gave 20 Hz for every LFO setting. A 20 ms window is 100 Hz wide either side and the harmonics are 55 Hz apart, so three of them sat in the band beating at 55 Hz, and that’s what the dip counter counted. The rate now comes from the tracked peak going round, which is a thing that happens once per cycle by construction.
The third read the lift off the moving sweep as the most any harmonic stood above its slope in any frame, and got 14 to 16 dB depending on the LFO rate, because a fast sweep spends part of a frame on each harmonic and a slow one lingers. Park the filter and the number is 18.04, and it is 18.04 in Chrome too.
What I would do next
Play the staircase as notes. The peak’s path through the harmonics is a melody, a fourth, a major third, a minor third and so on up the series, and a page that plays that melody on a clean tone next to the wobble would make the finding audible rather than visible.
Then the other waveforms. A square has only odd harmonics, so its staircase has half the steps and its bottom step is a twelfth, from the first harmonic to the third. That’s why a square wobble sounds hollower than a saw one, and it would be a number.