• v0.2.0 96a43a8d16

    jkaindl released this 2026-06-07 22:08:10 +00:00 | 2 commits to main since this release

    Synthwave 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 bassFill bug that blanked the piano roll and silently dropped some bass notes.

    Live demo: https://jkaindl.codeberg.page/synthwave-surfer/

    Downloads
  • v0.1.2 ad9669a2f6

    jkaindl released this 2026-06-07 16:22:23 +00:00 | 6 commits to main since this release

    Synthwave 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 via setContext() + 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
  • v0.1.1 94d0c939bc

    jkaindl released this 2026-06-06 16:29:32 +00:00 | 12 commits to main since this release

    Synthwave 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
  • v0.1.0 b3e38e5c57

    jkaindl released this 2026-06-06 13:51:30 +00:00 | 14 commits to main since this release

    Synthwave 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.
    • Deterministicseed + genre fully 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.html
    

    Audio 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