MONK-1

Manual

MONK-1 turns the M-VAVE FM-1 into twelve singers. Each one sings in its own voice, from a monk to a slice of pizza, on its own little stage, and its mouth follows the vowel as it sings. The voice is MonkSynth, Jonathan Taylor's formant vocal synthesizer. The keys have velocity and aftertouch, read from the FM-1's own keys with no changes to the hardware: velocity sets the note's level, aftertouch moves the vowel.

A drawing of the FM-1's panel with each control labelled with what it does in MONK-1; section 3, Controls, lists them
The FM-1 (a drawing), running MONK-1, each control labelled


1Install

Try it first: the MONK-1 emulator runs the same code in the browser, with sound. Click lower on a key for more velocity and drag down for aftertouch; on the computer keyboard, hold Shift for aftertouch.

Install: open the web installer in Chrome or Edge, connect the FM-1 with a USB data cable and press Install. Don't unplug it while it's writing; when it finishes, the FM-1 restarts into MONK-1.

Go back: "Back to the stock firmware", at the bottom of the same page, puts M-VAVE's firmware back (download the FM-1 V15 file from the link there, choose it, press the button). M-VAVE's own updater, M-UPGRADE, works too.

Installing other firmware is at your own risk. If the FM-1 ever won't start, see Recovering an FM-1 that won't start.

Install from the command line

Download the firmware file (for example monk-0.9.fwsc) from the releases page, get the MONK-1 source from GitHub, install Python 3 with pip3 install mido python-rtmidi, and run:

python3 tools/fm1_install.py monk-0.9.fwsc

2Getting started

  1. Sing. Press a key: Jerry the monk sings it. Higher velocity is louder; aftertouch on a held key moves the vowel on, towards "ee".
  2. Glide. Hold a key and press another: the voice glides up to it. Let go of the second and it glides back to the first.
  3. Change the vowel. Turn ALGORITHM. The mouth follows.
  4. Meet the others. Turn PRESETS: eleven more singers, each with its own voice.
  5. Shape the voice. Press HOME and turn KNOB 1–4: vowel, head size, breath, glide. The other page buttons (EDIT, LFO, FX, ENV, GLO) each bring up four more.
  6. Hold a note. Press PLAY: the note stays after you let go, and the next key takes over.

Each singer remembers your changes to its voice, and MONK-1 saves them by itself a few seconds after you stop.


3Controls

The drawing at the top shows them all; here they are in more detail.

ControlWhat it does
KeysSing. One voice: the newest key held sounds; let go and it falls back to the key still held under it
VelocityThe note's level (Touch: Velocity)
AftertouchThe vowel moves, or the pitch rises, or both (Touch: Pressure)
OCT− / OCT+The keys an octave down or up, from −2 to +2
KNOB 1–4The four knobs of the page on the screen
PRESETSThe singer
ALGORITHMThe vowel, whichever page is on the screen
SELECTShows the menu
MASTERVolume
HOMEThe Sing page: vowel, head, breath, glide
EDITThe Choir page: voices, detune, spread, level
LFOThe Vibrato page: depth, rate, tune
FXThe Echo page: amount, time
ENVThe Envelope page: attack, decay, sustain, release
GLOThe Touch page: how pressure and velocity play
PLAYHOLD: the note stays after the key
SAVESave now. Held 1.5 s: this singer's voice goes back to how it came

SEL, ARP, SEQ and REC do nothing in MONK-1.


4The screen

The screen: Jerry the monk, eyes closed, mouth wide open, in front of prayer flags, snowy mountains and the sun
Jerry singing
The screen: HOME Sing, Jerry. Over the singer, Jerry's knobs: Vowel 50, Head 15 cm, Breath 50, Glide 50. Bottom line: PRESETS singer, ALGO vowel
The Sing page over the singer

Most of the time the screen is the singer on its stage. The mouth follows the vowel and opens wider as the note gets louder; with nothing playing, the singer blinks and mouths its vowels to itself.

A page button, a knob or PRESETS brings up the menu over the singer for a few seconds:

Messages such as "SAVED", "HOLD" or "OCTAVE +1" show in the header for a moment.

The lights: the page's button is lit, and PLAY shows green while HOLD is on. The other buttons glow dimly so their labels can be read in the dark. While a key is held, the button lights go dark for an instant each time the key is read, because a lit light upsets the reading; you may see them flicker.


5Playing

The screen: Jerry singing with his mouth half open, rounded, as the vowel moves on
Aftertouch: the vowel moves on
The screen: GLO Touch, Jerry, for all singers: Pressure PITCH, Depth 50, Sensitive 50, Velocity 50
The Touch page

One voice. MONK-1 sings one note at a time, as a singer does. The newest key held sounds; let go and the voice goes back to the key still held under it. Moving between held keys glides (Sing: Glide; at 0 it jumps).

Velocity sets the note's level. Touch: Velocity says how much: at 0 every note is as loud as every other, at 100 a light touch is very quiet. A medium press, about velocity 100, keeps the level the singer was made with.

Aftertouch moves the voice. MONK-1 counts it from where the key comes to rest after you play it, not from the moment it lands, so resting a finger on a key sends none; pressing further in does. On the Touch page:

The seven keys at the right end (C♯ to G) are wired differently inside the FM-1: they have velocity but no aftertouch.

HOLD. PLAY turns HOLD on: the note keeps sounding after you let go, until another key takes over or you press PLAY again.

Octave. OCT− and OCT+ move the keys an octave, from −2 to +2. MONK-1 starts at −1, where the singers sit best: the lowest key is F2. A note already held ends correctly even if you change the octave before you let go.


6The singers

The screen: Philip, a white unicorn with a rainbow mane, singing in front of a rainbow and clouds
Philip the unicorn
The screen: Snider, a punk with a green mohawk and a studded jacket, singing between two speakers
Snider
The screen: Razor, a ginger cat, singing in front of a night window
Razor
The screen: Peppo, a slice of pepperoni pizza, singing on a checked tablecloth beside a candle in a bottle
Peppo

PRESETS turns through the twelve, from MonkSynth's iOS port: Jerry the monk, Guppo, Philip, Suze, Gerald, Bess, EeOo, Snider, Fipsy, Peppo, Marley and Razor. Each comes with its own voice (head size, breath, vibrato, choir, echo, envelope) and keeps your changes to it: change Guppo's vibrato, visit Bess, and Guppo still has your vibrato when you come back. Hold SAVE for 1.5 seconds to put the singer on the screen back to how it came; the others are not touched.

The Touch page, the octave and the singer you were on are shared, not per singer.


7The pages

Each page button brings up its four knobs. All values are per singer except on Touch.

The screen: ENV Envelope, Jerry (edited): Attack 0.00 s, Decay 0.00 s, Sustain 100, Release 0.00 s
The Envelope page
The screen: FX Echo, Jerry (edited): Amount 80, Time 50; knobs 3 and 4 unused
The Echo page
PageButtonKNOB 1KNOB 2KNOB 3KNOB 4
SingHOMEVowelHeadBreathGlide
ChoirEDITVoicesDetuneSpreadLevel
VibratoLFODepthRateTune
EchoFXAmountTime
EnvelopeENVAttackDecaySustainRelease
TouchGLOPressureDepthSensitiveVelocity

8MIDI

Connect the FM-1 with a USB cable and it shows up as a MIDI device named "MONK-1 FM-1" (a Mac that knew the FM-1 with other firmware may keep the old name until you remove it in Audio MIDI Setup).

Out: the notes you play, on channel 1, with the velocity they landed with, and polyphonic aftertouch: each held key's pressure. Record a performance and it plays back on any synth that listens to aftertouch.

In: MONK-1 sings what it receives:

MessageWhat it does
Notes, any channelSing, with their velocity
Aftertouch (channel or polyphonic)Pressure
CC 1Vowel
CC 5Glide
CC 7Level
CC 12Echo amount
CC 13Head
CC 120, 123All notes off

Screen reader

MONK-1 can tell the FM-1 Screen Reader what its screen shows, over the same USB cable: the singer you pick, the page and its knobs, a knob's value as you turn it, and what each button did (hold, octave, saved). Its "Read the whole screen" button tells you everything at once. Open the page in Chrome with the FM-1 plugged in; it speaks with its own voice, or hands the words to your computer's screen reader. The singers' faces are just for looking at, so they stay quiet.


9Saving

MONK-1 saves by itself about four seconds after you stop changing things (and at most every ten seconds). Press SAVE to save at once. What is saved: every singer's voice as you left it, the Touch page, the octave and the singer you were on.


10Troubleshooting

Update mode: hold OCT− and OCT+ together for five seconds. A countdown appears; let go before it ends to cancel.

Calibration: if a button or knob does the wrong thing, hold OCT− and OCT+ while you switch the FM-1 on. The screen then asks you to press each button and turn each knob in turn.

Velocity or aftertouch feel off: keys differ a little from one FM-1 to the next. Turn Touch: Sensitive up if aftertouch hardly moves the vowel, down if it jumps; Touch: Velocity down if the levels vary too much.

After a crash: MONK-1 shows a red CRASH screen and restarts by itself a few seconds later. If you report the problem, include the numbers on that screen (a photo is easiest) and what you were doing.

Safe mode: if MONK-1 crashes twice in a row while starting, it starts in SAFE MODE instead. There's no sound, but USB works, so the web installer can reach it: reinstall MONK-1, or put the stock firmware back from the same page. Press PLAY to try starting MONK-1 normally again. If even safe mode fails twice, the FM-1 drops into the chip's own update mode, and only the rescue below can reach it.

Recovering an FM-1 that won't start

An FM-1 in the chip's own update mode shows a blank screen, and neither the web installer nor M-VAVE's updater can see it. A script can put M-VAVE's firmware back, on a Mac, with the USB cable you already have.

Open Terminal, paste this line and press Return:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/charlesvestal/fm1-monk/main/tools/fm1_rescue.sh)"
  1. If a window asks to install the command line developer tools, click Install. When it has finished, paste the line again.
  2. If it asks for a password, type your Mac password (nothing shows as you type) and press Return.
  3. When it says it's waiting, plug the FM-1 in and switch it on. The script catches it, checks the chip, saves a backup of the FM-1's memory in the fm1-rescue folder in your home folder, and asks before it writes anything.
  4. Type yes and press Return. Don't unplug anything until it says it's restarting the FM-1. The FM-1 then starts into its original firmware, and you can install MONK-1 again from there.

The script downloads M-VAVE's FM-1 V15 firmware and JieLi's flash loader, and checks both against known fingerprints. It writes only the firmware area of the memory, never the bootloader or the FM-1's own settings, and checks everything it writes. Running it again is always safe. If it fails, copy everything in the Terminal window and open an issue. If the FM-1 never shows up at all, Felucca's FM-1-transporter (a small RP2040 board wired to the USB lines) can still reach it.


11Parameters

PageValueRangeDefault
SingVowel0–100per singer
SingHead0–30 cmper singer
SingBreath0–100per singer
SingGlide0–100per singer
ChoirVoices1–10per singer
ChoirDetune0–50 centsper singer
ChoirSpread0–100per singer
ChoirLevel0–100per singer
VibratoDepth0–100per singer
VibratoRate0–100per singer
VibratoTune−12 – +12 semitones0
EchoAmount0–100per singer
EchoTime0–100per singer
EnvelopeAttack, Decay, Release0–5.00 sper singer
EnvelopeSustain0–100per singer
TouchPressureVowel, Pitch, Both, Both invVowel
TouchDepth0–10050
TouchSensitive0–10050
TouchVelocity0–10050
PRESETSSingerthe twelveJerry
OCT− / OCT+Octave−2 – +2−1 (F2 to G4)

12Credits

MONK-1 is free software under the GNU General Public License, version 3. If you share the firmware, you must also share its source code.

M-VAVE and FM-1 are trademarks of their owners. MONK-1 is not connected with M-VAVE or Hügelton Instruments.