Play the FM-1’s keys, your computer’s A W S E D … ; ' (C4–F5), or a MIDI keyboard.
M-VAVE FM-1 · pi32v2 @ 240 MHz · 6502 · reSID 0.16
Runs an emulated 6510 + SID in the emulated FM-1 on a WASM virtual machine.
Every tune runs its own 6502 code, and reSID makes the sound: all of it on the FM-1’s CPU, in a firmware written for it. Here the whole synth is emulated in your browser. Press Power, then pick a tune from the 61,000 in the High Voltage SID Collection, or switch to the synth and play its SID instruments from the keys or a MIDI keyboard, through a stereo chorus, delay and reverb.
Play the FM-1’s keys, your computer’s A W S E D … ; ' (C4–F5), or a MIDI keyboard.
The index and every tune come straight from hvsc.c64.org when you ask for them. PSID tunes play; RSID tunes need a whole C64 and do not yet.
fm1-sid’s own instrument driver, the way C64 music drivers play the chip: per-frame wave tables, pulse and filter sweeps, vibrato, hard restart. Three voices share one SID and its filter. The knobs: KNOB1 cutoff, KNOB2 resonance, KNOB3 attack, KNOB4 release.
Step sequencer: three tracks of 16 steps, each on its own SID voice with its own patch; track 3 starts as a drum kit (C–D# kick, E–G snare, G#–B hat). SEQ shows it, PLAY runs it, REC records: while it runs, keys land on the nearest step; stopped, they fill the step under the cursor (SELECT moves it). SCL / ENV / LFO pick track 1 / 2 / 3, PRESETS its patch, ALGORITHM the tempo, GLO clears a step, ARP a track. The tracks share the chip's one filter, set by the first track whose patch has it; sync and ring take the voice before as their source.
They join the playlist and stay in this tab: nothing is uploaded.
Seven layers, from your speakers down to a 1982 sound chip. The page only builds the firmware image and moves keys; everything below the first layer is the FM-1’s own CPU at work.
The numbers come from the emulator, which counts instructions, not cycles: a real FM-1 has not run this firmware yet. The status line under the synth shows how fast your machine runs it.
The firmware reads the FM-1’s own controls; the buttons above press them for you.
HOME: tune player or SID synth. Player: PRESETS / SELECT, OCT− / OCT+: tune; PLAY: pause. Synth: the keys play; PRESETS / SELECT: instrument; OCT±: octave; KNOB1–4: cutoff, resonance, attack, release. Sequencer: SEQ page, PLAY run / stop, REC record, SCL ENV LFO track 1 2 3, ALGORITHM tempo, GLO clear step, ARP clear track. Both: EDIT: reSID or the own model; FX: the effects page, where KNOB1 is the chorus, KNOB2 the delay, KNOB3 its time (1/16 to 1/4 of the tempo), KNOB4 the reverb, SELECT the delay’s feedback and PRESETS 6581 or 8580; FX again goes back. The synth starts with a little of each, the player dry.
A W S … ': the note keys · ↑ ↓ ← → or N P: tune or instrument · 7: HOME · Space: PLAY · 0: SEQ · R: REC · 2 3 4: tracks · , .: tempo · 5: EDIT · 1: FX · Z X: OCT− / OCT+
The address bar follows the tune: copy it to send someone straight to it. ?t= takes any HVSC path, ?mode=synth starts on the synth.
On a real FM-1: sidplayer.fwsc is this firmware as an update package (it starts as the synth, with the effects; HOME switches to the player and its own tune; no HVSC tunes), made with Felucca’s update loader and package tools, so it installs the way the community firmwares do. It has not been tried on a real FM-1 yet. The package carries three files of JieLi’s SDK under the Apache-2.0 licence.