overdub
FirmwareM-VAVE FM-1

quadro-fm1

matttallison/quadro-fm1 · ★ 0

Arp Quatdra Synthesizer Firmware for the M-Vave FM1

README from GitHub, GPL-3.0

QUADRO

A four-section performance synthesizer for the M-VAVE FM-1, after the ARP Quadra.

QUADRO on the FM-1's screen: the output mixer, CHORD+BASS, the bass filter, the sequencer

QUADRO replaces the FM-1's firmware with one big instrument. It has a bass, a string ensemble, a poly synth and a two-voice lead, all playing at once across a split keyboard, through a 14-stage phase shifter, reverb and delay. The whole panel is laid out for it: one knob picks the section, the buttons open its pages, and the screen shows what each knob does as you turn it.

  • Four sections at once: monophonic bass (electric and string), a divide-down string ensemble with three-phase chorus, a polyphonic synth (or paraphonic, as the original was), and a two-oscillator lead with split glide, vibrato, trill and two-voice mode.
  • One-finger playing: CHORD plays a full shape from one key, and CH BASS adds its root on the bass.
  • A sequencer over the keys you hold (up, up/down, down, random, pedal, thumb, converge, diverge, as played, skip, a 16-step pattern; 1–4 octaves, with latch, and accent and tie on each step). It syncs to MIDI clock and can send clock too.
  • Touch: the FM-1's pressure-sensing keys bend the lead or open its filter, with adjustable sensitivity.
  • 105 programs: the classics, what only the Quadra could do, paraphonic, sequences, chords and one-finger band sounds. See the program list.
  • MIDI in and out over USB, Bluetooth and TRS: velocity to level and cutoff, a channel for each section, scale lock on MIDI keys.
  • Master effects, scale lock, analog drift, lead unison, tap tempo, compare and random.
  • The Quadra's own sixteen factory voices are programs 1–16.
  • Uses both of the FM-1's cores: the strings and poly run on the second one.

Hear it: quadro-demo.mp3, a 2½-minute tour of eight programs. Play quadro-demo.mid into your FM-1 (USB or Bluetooth MIDI, with MIDI clock) to hear it there.

Hear the sound design: quadro-demo2.mp3, a 3½-minute tour of the 1.1–1.3 additions: all four sections together, the new bass and lead voices, sync, PWM, filter types, the step sequencer, the arpeggio modes, the new chords, noise, touch and the phaser. Its quadro-demo2.mid plays on your FM-1 the same way.

Install

From the browser: matttallison.github.io/quadro-fm1 has the web installer (Chrome or Edge, the FM-1 on USB), QUADRO running in the browser, and the manual.

From the command line: download quadro-X.Y.fwsc from Releases. Connect the FM-1 by USB, then:

python3 fm1_install.py quadro-X.Y.fwsc

fm1_install.py is in fm1-base's tools/ (base/tools/ here). The installer can also put M-VAVE's own firmware back. Installing is at your own risk.

Use

Read the manual. In short: ALGO picks the section, EDIT / ENV / LFO / SEL open its pages, FX the phaser, GLO the mixer and room, ARP the sequencer, PRESET the program. PLAY is HOLD and REC is sustain. Hold HOME for SETUP.

HomeLead filterPhaser inputs
Lead envelopeMixerSETUP
Bass oscillatorBass filter typeLead oscillator mix
Step sequencerMaster effectsMaster chorus and width

Build

git clone --recursive https://github.com/matttallison/quadro-fm1
cd quadro-fm1
./build.sh                    # app/build/quadro.fwsc
./build.sh --release 1.0      # app/build/quadro-1.0.fwsc
sh tests/run_tests.sh         # the sound of all 105 programs, then the host simulator

The firmware build needs the JieLi toolchain (JIELI_TOOLCHAIN) and the AC79 SDK (AC79_SDK). See fm1-base's README. The tests only need a C compiler and Python 3. ./build.sh --host builds the simulator, and app/tests/screens.txt makes the screenshots in app/docs/img (tools/make_hero.py the banner).

A tag vX.Y builds, tests, signs and publishes a release on GitHub (.github/workflows/release.yml, using the shared FM-1 builder).

PathWhat
app/q_synth.cThe sound: the four sections, ensemble, phaser, mixer
app/q_fx.cThe reverb and the ping-pong delay
app/q_params.cThe patch: every parameter, its range, its page
app/q_presets.cThe 105 factory programs
app/q_ui.cThe panel and the screen
app/app.cThe glue to the platform: keys, MIDI, clock, saving
tests/The audio tests and the test runner
base/fm1-base (submodule)

Licence and credits

QUADRO is GPL-3.0 (LICENSE). It is built on fm1-base and felucca-bsp (MPL-2.0), from Felucca by Leo Kuroshita, Hügelton Instruments. The screen font is Barlow (SIL OFL). The synthesis, effects and programs are QUADRO's own.

ARP and Quadra are trademarks of their owners. M-VAVE and FM-1 are trademarks of their owners. QUADRO is not affiliated with either; it is an homage, with no code, samples or text from the original.