-
v0.2.0 — EDM feintuning Stable
released this
2026-06-07 22:08:10 +00:00 | 2 commits to main since this releaseSynthwave Surfer v0.2.0 — EDM feintuning.
The dance genres got a real pass — authentic basses, a Detroit-style stab, supersaw leads — plus performance and rendering fixes.
Added
- Rolling offbeat basses (Techno / Prog House / Trance) that dodge the
four-on-the-floor kick — Techno gets a sustained, melodic, pumping bass; Prog
House and Trance roll the offbeat 16ths. - Detroit-style stab for Techno (short off-beat m7 chords) instead of a
sustained pad — frees the frequency space the wide pad was hogging. - Supersaw leads (Techno / Prog House / Trance), an octave lower with a plucky
sustain, now present across both main sections and the breakdown.
Changed
- EDM pads dialed back (quieter, darker, drier) so they sit under the bass + lead.
- The piano roll now renders the actual pad/stab patterns.
- Dubstep is parked (hidden) until a real wobble engine (per-bar bass-filter
modulation) is built.
Fixed
- Performance degradation over time — an audio-graph rebuild leak + stacked render
loops. - The lead Model dropdown showed no instrument for the supersaw leads.
- A
bassFillbug that blanked the piano roll and silently dropped some bass notes.
▶ Live demo: https://jkaindl.codeberg.page/synthwave-surfer/
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Rolling offbeat basses (Techno / Prog House / Trance) that dodge the
-
released this
2026-06-07 16:22:23 +00:00 | 6 commits to main since this releaseSynthwave Surfer v0.1.2 — audio fixes.
Fixed
- WAV export now works — all nine genres render to WAV. The offline render
was hitting a cross-context error (it connected to the frozen global
Tone.Destination); it now renders viasetContext()+OfflineContext.render(). - Switching genre while the music plays now changes the composition, not just
the sound — previously only the voicing was applied live, so you heard the new
instruments playing the old notes. The transport now re-arms with the new genre. - Dubstep half-time pattern scheduled two hat hits at the same instant (the
offbeat hat overlapped the first step of the 1/32 roll), which broke the offline
render; the scheduler now collapses same-time, same-voice drum hits.
Removed
- Dead
FACTORY_PRESETS/applyPreset/renderFactoryRow(and their CSS) —
superseded by the per-genre card-preset model; never reachable from the UI.
▶ Live demo: https://jkaindl.codeberg.page/synthwave-surfer/
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- WAV export now works — all nine genres render to WAV. The offline render
-
v0.1.1 — in-app text fixes Stable
released this
2026-06-06 16:29:32 +00:00 | 12 commits to main since this releaseSynthwave Surfer v0.1.1 — in-app text fixes.
Fixed
- Stale in-app text left over from before the nine-engine expansion:
- the epigraph said "Three algorithms" → now "Nine engines";
- the footer listed only three genres ("Outrun × Noir × Dreamwave") → now "Nine genre engines";
- the header badge advertised "v1.0 · Factory Presets" (Factory Presets are dead code) → now an accurate feature list.
- Regenerated the README hero screenshot to match.
No functional changes; the logic suite stays at 45/0.
▶ Live demo: https://jkaindl.codeberg.page/synthwave-surfer/
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Stale in-app text left over from before the nine-engine expansion:
-
released this
2026-06-06 13:51:30 +00:00 | 14 commits to main since this releaseSynthwave Surfer v0.1.0 — first public release.
A single-file, deterministic generative-synthwave web app: pick one of nine genre engines, give it a seed, and it composes and plays a complete arrangement in the browser. Built on Tone.js, no build step.
▶ Live demo: https://jkaindl.codeberg.page/synthwave-surfer/
Highlights
- Nine genre engines — Outrun, Noir, Dreamwave, Carpenter, Techno, Prog House, Trance, Dubstep, Acid House — each pairing its own composition algorithm with its own synth voicing.
- Deterministic —
seed + genrefully determines the track; reproducible and shareable. - Six synth voices and four drum kits (LinnDrum-style gated, TR-909, TR-808, Dubstep) with live per-voice editing.
- EDM arrangement engine — a 32-bar form with two drops, a breakdown, and risers.
- Export — MIDI and
.swmd(an Obsidian-compatible Markdown music format). - Full documentation — README, architecture + usage guides, contributing, licensing, security.
Run it
git clone https://codeberg.org/jkaindl/synthwave-surfer.git cd synthwave-surfer python3 -m http.server 8745 # → http://localhost:8745/synthwave_surfer.htmlAudio needs an HTTP origin (Tone.js does not initialise on
file://).See the full CHANGELOG. Licensed AGPL-3.0-or-later (dual-licensed; commercial license on request).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads