The Drop · September 30, 2026

Jazz visualizer settings: a swing groove against an even grid

Load a swing tune, hit render, and the cuts land somewhere wrong. Not late and not early exactly, just off. There is a specific reason for it, and it is arithmetic rather than taste.

A ride cymbal in close focus on a dimly lit stage, its bell and lathed rings catching warm light, with a musician blurred in blue behind it

Photo via Unsplash

A jazz visualizer runs into something no other genre on this site does. Every groove covered here so far divides the beat evenly, and the tool divides it evenly to match. Swing does not. That one mismatch explains almost everything wrong with swing visuals, and the fix follows from it.

The beat is even. The eighth notes are not.

Swing means the two eighth notes inside a beat are different lengths: first long, second short. How long and how short is not fixed, and it has been measured properly.

Anders Friberg and Andreas Sundström annotated ride cymbal onsets from Tony Williams, Jack DeJohnette, Jeff Watts and Adam Nussbaum recordings, and found the ratio slides with tempo: close to 1:1 when fast, climbing to nearly 3.5:1 as the tempo drops. A 2015 study re-ran it at scale. Christian Dittmar, Martin Pfleiderer and Meinard Müller analysed 921 swing-feel excerpts from the Weimar Jazz Database and watched Elvin Jones and Billy Higgins move from about 2.5 around 150 BPM to about 1.5 at 250, Jones reaching roughly 1.0 at 300.

The number that matters most is the other one both papers report. The short note, meaning the gap between the offbeat cymbal hit and the next downbeat, stays roughly constant at about 100 milliseconds once the tempo is above 150 BPM. Dittmar's larger sample widens that to a band of about 70 to 110 ms. The ratio only changes with tempo because the short note refuses to.

How far off the even grid actually lands

The content change rate divides the detected beat into 4, 2 or 1 beat, or 1/2, 1/4 or 1/8 of one. Every option is a binary split. The swung second eighth is not at 50 percent of the beat, it is at the beat minus roughly 100 ms.

TempoBeatGrid at 1/2Real offbeatGrid is early by
150 BPM400 ms200 ms300 ms100 ms
180 BPM333 ms167 ms233 ms67 ms
200 BPM300 ms150 ms200 ms50 ms
250 BPM240 ms120 ms140 ms20 ms
300 BPM200 ms100 ms100 ms0 ms

At a medium swing tempo the Every 1/2 beat setting puts a content change a full short note's width ahead of the note you hear. It does not land late. It lands in the gap between the two notes, the one place in the bar where nothing happens.

Fast tempos are the case that works

Look at the bottom row. At 300 BPM the even grid is correct, because swing has straightened itself out. A bebop burner is the one jazz context where a binary subdivision is right.

There is a catch. The tempo scan only looks between 60 and 180 BPM, so a head taken at 250 or 300 comes back as a division of the real tempo, the same behaviour the metal post works through above 180. Survivable, because the grid is only ever an interval in milliseconds: read the printed BPM, divide 60000 by it, and set the change rate against that.

The grid is a metronome, not a follower

Worth knowing before you fight the subdivision: the content grid never tracks the music. It reads the detected BPM once, then advances itself on a timer. Nothing re-syncs it to an onset.

On a quantized export that is invisible. On a live quartet it is not. The scan steps in half-BPM increments, so half a BPM is the smallest error it can have, and at 150 BPM that is 1.3 ms per beat: about a second of slide over a five minute tune, roughly two and a half beats. Then add a band that pushes into the solo and pulls back on the head.

This is the real argument for slow change rates on jazz. A change every 2 beats hides 50 ms of drift completely. A change every 1/8 beat puts it on screen.

The ride cymbal is the hardest thing in the kit to trigger on

The per-drum image triggers work on spectral flux: the rise in a frequency band since the previous frame, not the level in it. That was deliberate, and it is why a sustained bassline cannot smother the kick detector. On a swing tune it works against you.

The ride is a sustain instrument. Wash from one ping is still ringing when the next arrives, so the rise is measured on top of an already raised floor instead of out of silence. The threshold compounds it: each frame's flux is compared against a rolling average of the last 43 frames, about 0.7 seconds, multiplied by roughly 2.2. A continuous wash lifts that average, so the bar the next ping must clear rises at the same moment its own rise falls. Both point the same way: the detector under-fires on the most important rhythmic instrument in the music.

Brushes are the extreme version. A swirl is continuous noise, and continuous noise has no frame to frame rise at all, so there is nothing to detect. If that is your recording, Fixed interval is the answer rather than a sensitivity fight, and the ambient post covers that mode for tracks with no usable onsets.

The kick is the third problem. A feathered jazz kick, played quietly under all four beats, is about the softest kick in popular music, and the kick band carries the highest absolute detection floor of the three. Do not put a Kick role on an image and expect it to fire. The snare is the one with a real chance, since comping accents and rim shots played with sticks are the sharpest onsets in the kit.

That 100 millisecond gap runs into a hard floor

Here is where the constant short note stops being trivia. Flashes carry a 90 ms cooldown, and the per-drum image triggers carry their own on top of it: 110 ms on kick, 140 ms on snare, 90 ms on hat. The jersey club post works through what those floors do to a fast kick pattern.

Jazz meets them differently, and the difference is the point. Every other timing collision on this site scales with tempo, so you can outrun it by slowing down. This one does not. That offbeat to downbeat gap stays in the 70 to 110 ms band whether the band plays at 150 or at 280. Mid-range, the offbeat and the following downbeat are about 100 ms apart: enough to clear the 90 ms flash cooldown, not enough to clear the 110 ms kick cooldown. At the 70 and 80 ms end, nothing clears anything.

So on a swing tune the two closest events in every bar sit permanently near the floor, at every tempo. That is not true anywhere else on the site.

What to actually set

None of this turns the tool into a jazz transcription engine. It stops the grid cutting straight through a groove that was never built on straight divisions. Whole beats, gentle flashing, and a swing tune gets visuals that move with it rather than across it.

Put a swing tune through it

Free, in the browser, 1080p out as a WebM you download yourself. Set the change rate in whole beats and start there, or read the home page if you have not used it before.

Open the visualizer