What it sounds like
Synthwave grew out of internet-era nostalgia for a decade most of the artists never lived through — late-2000s producers reaching back to early-80s film scores, Italo disco, and the cool, clean palette of the OB-Xa, the Juno-60, the LinnDrum. Drive (2011) made it a vibe; the genre had been sitting in dorm-room SoundCloud accounts for years, waiting. It’s the sound of beautiful sadness — wistful, never quite tragic, always a little romantic. You’re driving at night, the city is empty, the windshield wipers are slow.
You know it within four bars: a long, breathy pad behind a slow arpeggio in a minor key, side-chained by a steady gated kick. The drums are soft, the bass is plump, and there’s always a saw lead waiting to come in for the second verse with a melody you’ll be humming all week.
The chord moves
Synthwave starts with the i–VI–III–VII descent — the home minor chord, then up a sixth, then a third, then a seventh — because it sustains a feeling of beautiful sadness without ever fully resolving. The ear keeps waiting for the dominant V chord that would close the cycle, but it never comes. That’s the tension that makes the genre feel unfinished and forever at the same time.
The generator also includes the synthwave variants producers reach for when the scene needs a different turn: i–VII–VI–VII for a brighter neon descent, and i–iv–VI–III when the bridge or breakdown wants a more cinematic lift. Add 9ths and major 7ths to almost everything; clean triads sound thin in this style. The richer the chord stack, the more cinematic the result.
The groove
Pulse is steady — a four-on-the-floor kick at around 95–110 BPM, a wet snare on 2 and 4 drowned in plate or hall reverb, and tom fills that swell into the chorus. The bass is plump and gated, riding the root with a slight saw envelope — never busy. Sidechain is subtle, just enough to give the kick its space; you don’t want pumping aggression, you want breathing.
The arpeggio on top is the centerpiece. Sixteenth-note runs across the chord, played by a slow-attack analog poly synth with chorus, drifting under everything. Keep the velocity tight; humanize it lightly so it sounds played, not stamped.
The sounds
The palette is warm but not soft-focus: OB-style bass weight, detuned PWM lead, wide Juno pad, slow-attack arp, and a hybrid 808/LinnDrum kit. The patch cards below turn those tells into settings you can actually dial in.
Production tells
Want it modern? Brighter top end, tighter sidechain, layered transients on the kick, a stereo widener on the pad. Compress the master harder. Stick a tape saturation plugin on the drum bus, but light. Mastering should sit around -10 LUFS for streaming.
Want it vintage? Narrow the stereo image. Add tape wow/flutter on the pad. Saturate the master with a 1/4” tape emulation. Roll the highs off above 12kHz. Add hiss. Mix to -14 LUFS or quieter — make it sound like it was bounced to cassette and back.
The structured producer notes and progression examples below show each chord route as full stacked chords stretched across one bar each, so you can see and hear the harmonic shape before cooking a pack.
Producer kit
The useful parts, pulled into the light.
The prose tells you why the style works. These cards give you concrete moves to try in a session.
Groove grids
See the drum pocket. Then play it.
These are pattern sketches, not finished drum programming. The player uses browser synthesis, so the rhythm is clear without shipping third-party samples.
Default groove · 95-110 BPM
The cassette pulse
Listen for: Snare drowned in plate reverb. The open hat on the off-eighth is the cassette tell.
Click play for one 16-step pass.
Breakdown · 95-105 BPM
The Carpenter half-time
Listen for: Drop the snare; let the kick breathe. This is your John Carpenter moment.
Click play for one 16-step pass.
Patch cards
Dial the sound before chasing presets.
Free synths come first on purpose. The settings matter more than owning the expensive version of the instrument.
Bass patch
OB-style sub-saw
Free first
Surge XT · Vital
Paid equivalents
Live Wavetable · u-he Diva
OSC 1x saw + 1x sine sub, octave down
FILTER Low-pass at 800Hz, 12dB slope, slight key tracking
ENV Amp ADSR 0 / 40 / 70 / 120ms
FX Chorus at 0.4Hz, 30% mix, light tape saturation
Listen for: The slight chorus warble kills the digital edge.
Lead patch
Detuned PWM lead
Free first
Vital · TAL-NoiseMaker
Paid equivalents
Live Operator · u-he Repro-1
OSC One pulse oscillator with PWM around 0.3Hz
FILTER Low-pass at 4kHz, 24dB slope, light envelope movement
ENV Amp ADSR 5 / 200 / 50 / 600ms
FX Chorus, quarter-note tape delay, spring reverb
Listen for: Pitch drift in the PWM. Perfect tuning takes the era out of it.
Pad patch
Juno-style stereo pad
Free first
Surge XT · TAL-U-No-LX
Paid equivalents
Live Drift Rolling preset · u-he Repro-5
OSC Two saws, slight detune, octave doubled
FILTER Low-pass at 2.5kHz, slow filter envelope opening over four bars
ENV Amp ADSR 800ms attack / full sustain / 1500ms release
FX Chorus, hall reverb at 3.5s decay, 35% wet
Listen for: The pad should still be ringing when the next chord lands.
Arp patch
Slow-attack analog poly
Free first
Surge XT · Vital
Paid equivalents
Live Wavetable Vintage Brass preset
OSC Saw + triangle blend
FILTER Low-pass at 3kHz, key tracked
ENV Amp ADSR 30 / 150 / 70 / 400ms
FX Chorus, dotted-eighth ping-pong delay at 30% feedback
Listen for: Tight velocity, lightly humanized so it sounds played instead of stamped.
Drums patch
808 + LinnDrum hybrid
Free first
DrumGizmo · Live Drum Rack with free 80s sample packs
Paid equivalents
Native Instruments Battery 4 · UJAM Beatmaker BBQ · XLN Audio XO
OSC 808 kick layered with LinnDrum-style snare
FILTER Low-pass the drum bus around 6kHz for tape feel
ENV Kick decay slightly extended; snare body short, reverb tail long
FX Plate reverb on snare, light tape saturation, white-noise dust on hats
Listen for: The hi-hat dust is subtle, but it is the layer that seats the kit in the era.
Mix targets
Chase the feel, not the numbers.
These are starting points for a first pass. Break them when the track asks for it.
Clean, wide, streaming-ready
Modern
Master loudness
-10LUFS
Bass sidechain release
40ms
High shelf @ 8kHz
+2dB
Stereo image
Pad and lead wide; bass and kick mono
Drum bus
Light tape saturation, transient designer on kick
Master compression
2:1 ratio, 1-2 dB gain reduction
Narrow, darker, cassette-minded
Vintage
Master loudness
-14LUFS
High cut @ 12kHz
-3dB
Saturation
1/4-inch tape emulation on the master
Stereo image
Narrow
Pad bus
Tape wow + flutter
Extras
Hiss layer at -42 dBFS; bounce-and-resample for cassette feel
Genre progressions
Pick a chord route, then hear it.
Each named progression has its own piano roll and chord audition. Use the name in --progression, or edit the chord symbols directly in a recipe config.
--progression default
Night-drive loop
Roman numerals
i - VI - III - VII
A minor example
Am9 - Fmaj9 - Cmaj7 - G
The canonical falling synthwave loop: melancholy, stable, and always circling back without a hard dominant resolution.
python jamburgr.py --key "A minor" --style synthwave --progression default --chord minor_add9 --output-mode pack Am9 → Fmaj9 → Cmaj7 → G
Click to hear it.
--progression neon
Neon descent
Roman numerals
i - VII - VI - VII
A minor example
Am9 - G - Fmaj9 - G
A brighter back-and-forth descent that keeps the top line moving while the harmony stays direct enough for hooks.
python jamburgr.py --key "A minor" --style synthwave --progression neon --chord minor_add9 --output-mode pack Am9 → G → Fmaj9 → G
Click to hear it.
--progression cinematic
Cinematic lift
Roman numerals
i - iv - VI - III
A minor example
Am9 - Dm9 - Fmaj9 - Cmaj7
A wider film-score route that brings in the minor iv before opening into the VI and III chords.
python jamburgr.py --key "A minor" --style synthwave --progression cinematic --chord minor_add9 --output-mode pack Am9 → Dm9 → Fmaj9 → Cmaj7
Click to hear it.
Listen to
Three records that show the style at full strength. Read them as listening pointers, not templates to copy.
Nightcall
Kavinsky
listen ↗
0:00 The bass enters first; the whole song builds from that one synced pulse.
1:25 The vocoder sits behind the pad, not on top. That is the depth move.
A Real Hero
College
listen ↗
0:48 Notice how patient the chord changes are; the harmony almost stands still.
Burning Heart
Mitch Murder
listen ↗
1:10 The arp run defines the modern synthwave melodic vocabulary.
Six recipes
Six ways to cook Synthwave.
One starter recipe, three variations that each take the style in a different direction, one sectioned recipe, and one curated Live handoff recipe. Each one cooks from a Markdown recipe — edit it before the MIDI lands in your DAW.
Starter
The Night Drive Arp
Open minor-add9 chords, a steady synthwave arp, syncopated low bass, and a restrained top line for the canonical first cook.
Study: Kavinsky, “Nightcall” (2010). Use the reference as a lesson in restraint; the arp and bass make the scene before the lead says much.
python jamburgr.py --config configs/recipes/synthwave/synthwave_night_drive_arp.md Variation
Cassette Pad Intro
A slower pad-led intro with voice-led chords, pedal bass support, and just enough lead activity to sketch a scene.
Study: College, “A Real Hero” (2011). Use the reference for wide, patient emotional framing rather than for melody or lyric shape.
python jamburgr.py --config configs/recipes/synthwave/synthwave_cassette_pad_intro.md Variation
Neon Chop Response
Shorter chord stabs and call-response lead writing for a more rhythmic synthwave sketch.
Study: The Midnight, “Days of Thunder” (2014). Use the reference for hook spacing and dramatic response energy, not for any topline shape.
python jamburgr.py --config configs/recipes/synthwave/synthwave_neon_chop_response.md Variation
Outrun Bass Pulse
A bass-forward lane with pulsed chords, syncopated synthwave low end, and a sparse lead response.
Study: Miami Nights 1984, “Ocean Drive” (2010). Use the reference as a cue for forward motion and bright-night pacing, not for a bassline copy.
python jamburgr.py --config configs/recipes/synthwave/synthwave_outrun_bass_pulse.md Sectioned
Cinematic Breakdown Sketch
A full-song synthwave sketch with late chords, pad-led breakdowns, section MIDI files, and style-aware variation.
Study: Gunship, “Tech Noir” (2015). Use the reference for section contrast and cinematic pacing, not for melody, lyric, or scene copy.
python jamburgr.py --config configs/recipes/synthwave/synthwave_cinematic_breakdown_sketch.md Live handoff
Live Session
A synthwave pack tuned for DAW handoff, with stock-device sound cards and sample-search prompts enabled.
Study: FM-84, “Running in the Night” (2016). Use the reference for polished session balance and vocal-space awareness, not for melodic copying.
python jamburgr.py --config configs/recipes/synthwave/synthwave_bridge_ready_live_set.md Open in Live or Download uses the local bridge on this Mac. Download MIDI works in any DAW.
Ready when you are
Cook a Synthwave pack.
Drop this in your terminal and you'll have a Standard MIDI pack in a folder, ready to drag into Live. Edit anything, swap any sound, throw out what doesn't work.
python jamburgr.py --key "A minor" --style synthwave --progression default --chord minor_add9 --output-mode pack --out ./jams/synthwave