The Wobble
A saw through a resonant lowpass with the cutoff swept by an LFO at the tempo. Sweep it in hertz and the wobble sounds open 80% of the time, because the ear hears octaves. And however you sweep it, the resonance cannot keep up, 3 dB short at half notes and 6 dB short at sixteenths.
What it is
The saw from part one through the resonant lowpass from part two, with the cutoff swept up and down between 100 Hz and 2 kHz by an LFO locked to 140 BPM. Half notes, quarters, eighths, sixteenths. That’s the wobble, and it’s bassline, dubstep and half of grime.
Two things about it are not written on the front of any synth. The LFO has to get from 100 Hz to 2 kHz somehow, and whether it does that in hertz or in octaves decides how much of every cycle sounds open. And the filter has resonance, resonance needs time to ring up to its peak, and a wobble doesn’t give it any.
The strip in the middle of the page is brightness over the last two seconds, in octaves, with its own middle drawn across it. The shaded part is the time spent above that line. Linear, it is 80% of the cycle.
How it works
Brightness is the spectral centroid of the harmonics after the filter, read every frame from a three cycle window of the same recipe the audio is running, and the page keeps two seconds of it. How much of that time sits above the geometric middle of its own range is the number on screen. The wobble rate is read off the same history from the spacing of upward crossings.
Linear mapping puts the LFO’s midpoint at 1050 Hz, the arithmetic middle of 100 and 2000, which is three and a third octaves above the bottom of a sweep that’s four and a third octaves tall. So the brightness spends most of the cycle in the top of its range and the wobble sounds open 80% of the time, at every rate from half notes to sixteenths. Exponential mapping puts the midpoint at 447 Hz, the geometric middle, and the open share drops to 61%.
Not 50%. The rest of the asymmetry is the saw’s own spectrum. Brightness can’t fall below the fundamental however far the cutoff goes, and it stops rising once the cutoff is above where the saw has run out of highs, so the centroid squashes both ends of the sweep and squashes the top less. That’s a property of the sound rather than of the LFO, and no mapping removes it.
Web Audio has no exponential sweep of a frequency. It has detune, in cents, and cents are exponential, so the exponential mapping drives the filter’s detune around the geometric middle and the linear one drives its frequency around the arithmetic middle. Rendered offline and measured the same way, the real graph gives 82% and 61% open for linear and exponential at eighths, against the maths’ 82% and 61%, and the rates agree to three decimals.
What surprised me
How far short the resonance falls, and how early. The filter is at Q 4, a 12 dB peak when the cutoff is parked. Sweep it at half notes, which is a slow wobble, and the peak the sweep actually reaches at 220 Hz is 3.4 dB below that. Quarters, 5.0 dB short. Eighths, 5.9. Sixteenths, 6.3. The squelch you dialled in is roughly half the squelch you get, at any wobble rate a track would actually use.
This is day 74 again. A resonance takes about its own ring time to answer, and a sweep that crosses it faster than that measures the sweep. At 220 Hz and Q 4 the band is 55 Hz wide and the honest sweep rate from that day is about 600 Hz a second. A half note wobble at 140 BPM crosses 220 Hz at 2,400 Hz a second on the exponential mapping, four times too fast, and the eighths are sixteen times too fast. The filter never gets there. The numbers are not the same as day 74’s table because that measured the width of the response and this measures the height of the peak, but the mechanism is the one measurement, seen from the other side.
I also want to be honest about the sixteenths row, which reads 6.3 dB at 220 Hz and then 4.7 at 660, out of order. The measurement window is four cycles of the fundamental, 73 ms, and a sixteenth note wobble at 140 has a period of 107 ms, so the window is starting to average over the sweep and the peak it finds is smeared. The trend from half notes to eighths is clean. Past that the instrument is at its limit and I’ve said so rather than quoting it.
The tempo sync itself is exactly right, which is worth one sentence. Half notes at 140 BPM is 1.167 Hz and the wobble measured off the sound is 1.167. Eighths is 4.667 and it measures 4.666. If the wobble in a track feels off the grid, it isn’t the LFO.
What I would do next
Part nine is the grime square lead, and the measurement is pulse width: the even harmonics vanish at exactly 50% and reappear as you move off it.
The resonance shortfall should be fixable, and the fix is the thing to measure next. If the filter can’t ring up in the time the sweep gives it, the sweep can slow down where the filter is narrow, which is the bottom of its range where the band is 55 Hz, and speed up where it is wide. An LFO shaped to the filter’s own ring time would reach full resonance across the sweep, and how different that sounds from a sine LFO is a thing I don’t know yet.
The other one is the click from part three, at the tempo. Every cycle of the wobble the resonance swings through the low harmonics of the saw, and at fast rates that’s a transient per cycle. Whether a sixteenth note wobble is heard as a filter moving or as a rhythm of clicks is a threshold, and the crossing point would be a measurement.