CS-1
a CS-80 for the M-VAVE FM-1
A custom firmware for the M-VAVE FM-1, in the spirit of the Yamaha CS-80.
Two channels a voice, the CS-80's own preset tones, a ribbon on the SELECT knob, and a plate reverb that goes on for ever. Built to sit in a dawless rig and be played from a sequencer.
The CS-80 was Yamaha's 1977 polysynth: two hundred pounds of it, with pressure under every key and a ribbon for bending notes by hand. It is the brass and the sweeping pads of Vangelis's Blade Runner score, the theme from Chariots of Fire, and a lot of late-seventies and eighties pop besides.
Play it in your browser Try BLADE BRASS Try HUMAN NATURE



What is in it
The voice
Two CS-80 channels a voice: sawtooth or pulse, high-pass into low-pass, a sine after the filters, two envelopes, velocity and pressure into brightness and level, both from the FM-1's own keys. Eight voices.
The performance side
Sub oscillator, ring modulator, portamento and glissando, the initial pitch bend, keyboard control, brilliance and resonance levers, sustain I and II, the ribbon, and an auto after touch for sequencers.
The effects
The CS-80's chorus, a tape-flavoured delay that follows the clock, a phaser, and a plate reverb with a shimmer at any interval.
The sounds
The manual's 22 tones, 52 sounds after the records, 32 user slots. Try them in the browser first.
Install
Installing any custom firmware on the FM-1 is at your own risk. The usual advice from the FM-1 community holds: go back to M-VAVE's stock firmware before installing a different custom one, and know the rescue: hold OCT− while switching on, and the FM-1 comes up in a USB rescue mode from which any installer still works.
Install from the browser Chrome or Edge, a USB cable, one button: the install page carries the current package and drives the FM-1's own update mode over Web MIDI.
The command-line route, if you prefer it:
- Get
cs1.fwscfrom the releases, or build it (the README says how). - Connect the FM-1 over USB-C and switch it on.
- Install from a terminal with the installer in the source tree:
It needs Python 3 withpython3 tools/fm1_install.py cs1.fwscmidoandpython-rtmidi, shows what it found, asks for a yes, and checks the FM-1 comes back reporting CS-1's identity (FM-1_95x).
Going back: M-VAVE's updater, or the FM-1 Firmware Hub's "Return to official V15" option, both restore the stock firmware. Your CS-1 user presets live in their own flash sector and survive a reinstall of CS-1.
In a dawless rig
Plug the sequencer's MIDI out into the FM-1's TRS jack (the FM-1 is TRS type A). Set the channel on the MIDI page, or leave it on OMNI. Program change picks the sounds. Press REC, turn the panel knob you want the sequencer's macro to move, move the macro: that CC is bound from then on. Enable clock out on the sequencer and the delay's SYNC divisions and the sub oscillator's bar sync follow the tempo. The manual's MIDI section has the full map.
Credits and licence
CS-1 stands on Dinghy (zvenson), the minimal FM-1 firmware template, which is the Felucca / SLOOP platform by Leo Kuroshita (Hügelton Instruments) and isod89; and on FM-106 (PatttF) for the second core as an audio worker and MIDI in on the TRS jack. The browser build follows X0X's (Charles Vestal). The preset tones were read off the Yamaha CS-80 owner's manual. Everything is GPL-3.0-only.