SID-12 x SID

Import

.sid tunes

On the FM-1

Read the FM-1 to see its library.
A bank file is JSON: each patch's fields as docs/MIDI.md names them. Import fills the bank shown, or the slot picked for a single patch.
PLAY IT C3

The Editor works on the FM-1's edited part (Setup picks it). Picking a patch here also selects it on the FM-1, as PRESETS does, and the page follows PRESETS and the knobs on the FM-1. Changes play as you make them; Save writes the patch to its slot and keeps it in flash. Computer keys play too: Z to M and Q to U.

Setup

Help

Getting started

  1. Install the SID-1 firmware on the FM-1 (see the README: tools/fm1_install.py).
  2. Plug the FM-1 in with USB and open this page in Chrome or Edge. Allow MIDI when the browser asks.
  3. The page reads the FM-1's library. Pick a slot and press Edit, or open the Editor: changes play on the FM-1 as you make them.
  4. Save writes the patch to its slot and keeps the library in flash. The sound drops out for a moment while it does.

Installing custom firmware is done at your own risk. It comes with no warranty, and its authors accept no responsibility for damaged or unusable devices.

Songs

Drop a .sid tune in Import. Play song sends the ticked patches to their slots if they are not there yet, switches the FM-1 to voices mode (Setup) and plays the tune as MIDI: each SID voice on its MIDI channel (1 to 6), a program change when its instrument changes, slides as pitch bend (12 semitones each way). Drums a tune plays through the volume register (sampled, or as Arkanoid's) are found as samples: ticked, they go to the FM-1's kit with the patches, replacing the one there, and play on MIDI channel 10, the 6581 only. Stop puts the FM-1 back as it was. Save .mid writes the same notes as a MIDI file for a DAW or sequencer; it needs the same patches in the same slots, and the FM-1 in voices mode.

MIDI port

On the FM-1

ControlWhat it does
PRESETSSteps the edited part through the library's patches, skipping empty slots. A MIDI program change on a part's channel picks its slot
HOMECutoff, resonance, pulse width, release
ENVAttack, decay, sustain, release
EDITTranspose, fine tune, filter on or off, sync, ring and hard restart
FXThe pulse sweep: speed, min, max, start. Again: the filter sweep: cutoff, speed, end, resonance
LFOVibrato: delay, speed, depth
ARPThe wavetable: step (SEL steps too), note, absolute or relative, length. Again: its loop
GLOChip model (6581 or 8580), 2x oversampling, the part the keys and knobs play and edit, and the mode (parts or voices); lists the parts and shows the audio load
ALGORITHMThe waveform; on EDIT and the filter page the filter mode; on the wavetable pages the step's waveform
SAVEKeeps the edited patch in its slot, and the setup

If something goes wrong

MIDI not allowedAllow MIDI for this page in the browser's site settings and reload. Open it from https or localhost.
FM-1 not foundCheck the cable, and the MIDI output above.
Needs SID-1The FM-1 runs other firmware (the stock one, or another custom firmware). Install SID-1.
Notes stuck on