Skip to content

SIDOU 0.3.0: C64 music on the FM-1

Choose a tag to compare

@dsablic dsablic released this 23 Oct 15:24
· 394 commits to main since this release

Write C64 songs on the M-VAVE FM-1, in GoatTracker 2's own format. SIDOU's tracker and
step sequencer save GoatTracker .sng files, and its player plays them as GoatTracker's own does,
register for register: start a tune on the FM-1, finish it in GoatTracker on your computer, play it
back on the FM-1. Underneath are two SID chips, a 6581 and an 8580, whose character you dial in
like an amp, and a live instrument you can play over a song the moment it boots.

Try it in your browser first: https://dsablic.github.io/sidou/. The emulated FM-1 keeps
its flash in your browser, so what you save stays.

Watch: SIDOU in 77 seconds · What's new in 0.3.0 · 17 how-to videos (attached below).

What it does

  • The chip's character, dialled in like an amp. A 6581 and an 8580, five chip profiles (BRIGHT, DARK, CLASSIC,
    CLEAN, GRITTY) plus eight of your own, and the character of a real chip: age, worn DACs, the
    6581's thump on every note, and filter bleed.
  • GoatTracker 2, both ways. SIDOU's songs are GoatTracker .sng files; a C player on the
    device matches GoatTracker's own 6502 player register for register.
  • STEP: the 16 keys as a drum machine's steps, numbered by beat, with parameter locks on held
    steps. TRACKER, ORDER, INSTR and TABLE: the whole song, edited from the panel.
  • REC from the keys: play over a looping song and the notes land in the pattern, quantised to
    the row (or with a count-in); K1 and K2 record filter locks. TRACKER follows the playhead while
    you record.
  • LIVE: four presets that remember your edits, DICE for a new sound at every turn, three
    effect slots (distortion, modulation, FX), and a SCENE of generative visuals that move to the
    music.
  • MIDI: follows and sends clock, start, stop and song position; live, multitimbral,
    whole-chip and omni modes; program change with banks; every parameter as a CC or NRPN; MIDI
    learn on any knob.
  • SysEx over USB: songs, instruments and files to and from the FM-1's store, at about
    12 KB/s up and 27 KB/s down.
  • CHIP SPREAD: SETTINGS → SPREAD separates the two chips in stereo while both sound: a song
    on one chip and your playing on the other sit side by side; a chip playing alone stays centred.
  • Chord arpeggios: tap ARP on LIVE and a held chord plays as one voice stepping through its
    notes at the frame rate, the C64's classic sound; hold ARP and turn K1 to K3 for rate, order and
    span (or sync it to MIDI clock).
  • Help on the device: hold HOME for a card that says what every control does in the view
    you're in.

New since 0.2.0

  • Readable at arm's length: STEP, ORDER, INSTR, TABLE, TRACKER, CHIP and SAVE AS redrawn in
    larger, higher-contrast text; the small text at the bottom of the screens is gone.
  • A simpler menu: SAVE opens the highlighted item on every list, the settings live under
    SETTINGS, and SEQ goes back to the song view you used last.
  • SysEx 13 to 22 times faster: a 64 KB file now takes 5.5 s up and 2.4 s down (was 73 s and
    53 s), and an upload works while you play.
  • Steadier MIDI clock: a song stays within a millisecond of an external clock over ten
    minutes, also across flash writes, which used to knock it out of step.
  • Fixed:
    • PWM BASS never goes silent at narrow pulse widths.
    • Parameter locks are never lost at a pattern boundary or to a pending edit.
    • REC lands notes in the right pass of a repeated pattern, and records the pitch you heard on
      a transposed orderlist entry.
    • The song views no longer edit ABOUT's tune.
    • A fast turn on STORE can no longer format a store: SAVE confirms it.
    • No MIDI input is lost when the device is busy.
  • Nothing clips: a soft limiter after the effects keeps every setting off the rails.
  • More room: about three times the free RAM for what comes next (.sid playback in M3).

The full list is in CHANGELOG.md.

Songs to start with

LOAD always lists SIDOU's own SIDOU LOOP. The four showcase songs (CHROME COMET, IRON RITE, NEON
HIGHWAY, PAPER LANTERNS) are a click away: open https://dsablic.github.io/sidou/songs.html in
Chrome or Edge with the FM-1 connected and press Send all.

Install

SIDOU installs like the other FM-1 firmwares, over USB, at your own risk; the official firmware is
one install away.

  • From the stock firmware or a Felucca-family firmware: the Firmware Hub, or Felucca's
    installer: fm1_install.py sidou-0.3.0.fwsc.
  • From an earlier SIDOU: the same installer; it finds the FM-1 as "SIDOU FM-1". On a Mac,
    if it doesn't, delete the old device in Audio MIDI Setup and replug.
  • Back to the stock firmware: install M-VAVE's FM-1.fwsc the same way. Save the songs you
    want first (SysEx GET): the stock firmware uses the same flash.
  • Rescue: holding OCT- while switching on opens the chip's own boot mode, from which any
    package can be restored (how).

SIDOU answers the installers as FM-1_964.

Known limits

  • .sid file playback is the next milestone (M3); RSID tunes and PlaySID digis come later.
  • The store holds 48 entries: songs, settings and profiles together.
  • Uploads while sound plays are paced with short dips in the audio, about 28 s for 64 KB.

Open items are in TODO.md. Questions,
songs and bug reports are welcome as GitHub issues. SIDOU comes with no warranty.

SHA-256 of sidou-0.3.0.fwsc: 08a22e368a1aade7151cab81398ae1e725be827ed1d47ca09351d0c63c799fac (built by CI from the tag; the same bytes as the package that passed on a real FM-1). The package includes Felucca's update loader
(GPL-3.0-only) and third-party code under their own licences, attached as LICENSE-*.txt; see
LICENSING.md.