The Note That Disappears
Wobble a note's pitch fast enough and it stops being a wobble and becomes a chord. Turn the depth to 2.405 and the note you started with is 132 dB down, while everything around it carries on.
What it is
A 600 Hz note with its pitch wobbling a hundred times a second, and one knob for how far the wobble goes.
Turn it slowly and the sound stops being a note with vibrato on it and becomes a stack of tones, spaced exactly 100 Hz apart, spreading out either side of where you started. Keep going and the note in the middle gets quieter. At a depth of 2.405 it’s gone.
Not quiet. Gone, at 132 dB down, while its neighbours either side are the loudest things on screen. Nothing was removed and nothing was filtered, the knob only controls how far the pitch swings.
How it works
Wobbling a pitch is adding a sine to the phase of a sine, and that’s one of the few places in signal processing where the honest answer is a named function rather than something you can reason out in your head. Each new tone is a Bessel function of the wobble depth. The note itself follows J zero, the first pair follows J one, and so on outwards.
Bessel functions cross zero, which is the whole day. J zero first crosses at 2.404826, and that depth is where the note you started with has no amplitude left at all.
The page doesn’t draw that formula. It renders a tone from the same maths the oscillator is running, then reads every line back out of the samples with a Goertzel filter, so the bars are measured and the hairline caps on top of them are what Bessel predicts. The measurement window is a whole number of cycles of everything in it, so no line leaks into its neighbours.
The two agree to 0.000 dB at depth 1, 0.000 dB at the null, and 0.031 dB at depth 6.
The other check is that the squares of all the lines add to 1.000000000 at every depth I tried. Wobbling a note moves energy about and never makes any, so if that sum drifted the picture would be wrong somewhere.
What surprised me
The first null is perfect and the rest of them are not, and it took me a while to accept that the maths was fine.
At 2.405 the note measures -132 dB. At the next three nulls it measures -73.0, -34.2 and -14.9 dB. The last one is barely a null at all, it’s the note sitting there at a fifth of its original amplitude on a depth where J zero is 0.0000001.
It’s the negative frequencies. FM sidebands march outwards in both directions and the lower ones keep going below zero hertz, where they don’t stop, they fold back up with their sign flipped. With the note at 600 and the wobble at 100, the sideband twelve steps down sits at minus 600 Hz, which is 600 Hz. It lands exactly on the note it’s supposed to be cancelling.
I checked that rather than assumed it. J twelve at those four depths is -155.4, -73.0, -34.2 and -14.9 dB, and the leak I measured is -132.2, -73.0, -34.2 and -14.9 dB. Three of them agree to the decimal. Move the note up to 3000 Hz so nothing reaches zero and every null goes below -139 dB.
The same fold caught me again on the way past, and that time the page caught it rather than me. It reported that its own measurement disagreed with Bessel by 269 dB, which isn’t a small error, it’s a category error.
The sideband six steps down sits at exactly zero hertz, and J six at depth 12 is 0.237, so the prediction said there was a line there. There is not. That term is a sine of zero times t, which is nothing at all however big the number in front of it is. A line at zero hertz is not a line. The other half of the same bug was that I only summed sidebands out to fourteen, and at depth 12 the sixteenth is still 0.045 and folds onto a line that was meant to be exact. That one showed up as 1.3 dB rather than 269.
So the depth of a null isn’t a property of the wobble, it’s a property of how close the note is to zero hertz. That’s a real constraint on anyone using an FM null to measure something, and it’s invisible if you only ever test the first one.
The second surprise is smaller and more useful. Carson’s rule says the sound needs a band 2(depth + 1) times the wobble rate, and the audible sidebands are outside that band at every depth I measured: 600 Hz wide against Carson’s 400 at depth 1. Both are right. Carson is a claim about power, and 99.922% of the power is inside it, the lines outside are 40 dB down and perfectly easy to hear. My first test asserted the amplitude version and failed, which was the test being wrong rather than the rule.
The note also never really comes back. After the first null the loudest J zero gets again is 0.4028 at depth 3.832, which is 7.9 dB below where it started, and it’s upside down.
What I would do next
Sweep the wobble rate rather than the depth. At 100 Hz this is a chord, under about 20 Hz it is vibrato again, and somewhere in between is the boundary where the ear stops following the wobble and starts hearing the sidebands instead. That boundary is a measurement I’ve not made, and it’s the same kind of threshold day 61 and day 72 both ran into from other directions.
I would also like to hear the fold. Right now it’s a picture, the ghost bars to the left of the zero wall and their reflection coming back. A note low enough that the fold lands somewhere musical would make it audible, and the null leaking would stop being a caveat and become the point.