DWNLO

DWNLO is custom firmware for the M-VAVE FM-1. It runs five parts - a 909, an 808, a 303, an 808 Bassline and BLIP - all playing at once, in stereo. Each part plays its own pattern. Patterns chain into a song. Knob moves can be recorded. A step can have its own sound, and its own chance of playing.



1Install

Try it first: the host simulator (host/x0x_host, built from this repository) runs the same code on a computer, from a script, with audio and screenshots as output. There is no browser emulator published yet.

Install: from a computer with Python 3, pip3 install mido python-rtmidi, then:

python3 tools/fm1_install.py build/dwnlo.fwsc

Connect the FM-1 with a USB data cable first. Don't unplug it while it's writing; when it finishes, the FM-1 restarts into DWNLO. BUILDING.md covers building build/dwnlo.fwsc, and how to run a local copy of the web installer in Chrome or Edge instead.

Update: the same way. An update keeps your project: the patterns, sounds, song and settings. Installing another firmware does not: it keeps its own things in the same memory, so coming back to DWNLO starts with an empty project. To keep it, save it to a file first (see Back up your project).

Go back: M-VAVE's own updater, M-UPGRADE, puts the stock firmware back (download the FM-1 V15 file from m-vave.com/download, choose it in M-UPGRADE).

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.


2Getting started

A five-minute tour, from switching on to saving a first beat. When DWNLO starts, the screen shows the 909 and every part is empty.

  1. Add a kick. Press black key 1 to pick the bass drum (you'll hear it), then press white keys 1, 5, 9 and 13.
  2. Press PLAY. The kick plays on every beat.
  3. Add a clap. Press black key 7, then white keys 5 and 13. While the pattern plays, picking a drum is silent, so you don't add a stray hit.
  4. Add open hats. Press black key 9, then white keys 3, 7, 11 and 15.
  5. Write a 303 line. Turn ALGORITHM two clicks clockwise to 303 and press ARP. Press OCT+: each press writes a new line. Keep going until you like one.
  6. Shape the 303. Press EDIT. The knobs are now the 303's filter: KNOB 1 opens and closes it, KNOB 2 sets the resonance.
  7. Add a bassline. Turn ALGORITHM one click to 808 Bassline and press ARP, then OCT+, the same way as step 5. Press EDIT to shape its tune, decay, drive and glide.
  8. Add BLIP. Turn ALGORITHM one click to BLIP and press white keys 1, 7, 9 and 13.
  9. Mute a part. Press HOME, then a black key to mute that part. Press it again to bring it back.
  10. Record a filter sweep. Turn ALGORITHM back to 303 and press EDIT. Press REC, slowly turn KNOB 1 for a bar or two, then press REC again. The sweep now plays every time the pattern comes round.
  11. Save. Press PLAY to stop, then SAVE. Everything is kept when you switch off. (DWNLO also saves by itself a few seconds after you stop; see section 15.)

Next: section 9 shows how to make more patterns and switch between them, and section 12 how to arrange them into a song.


3Controls

A button that opens a screen always opens the same one; press it again for that screen's next page. SEQ, EDIT and ARP show the part you choose with ALGORITHM.

ControlWhat it does
MASTERVolume.
SELECTThe previous or next page. In a list, up and down. Hold a step and turn it for the step's chance (section 11).
PRESETSThe next pattern: on a part's screen for that part only, on HOME for all five.
ALGORITHMThe part: 909, 808, 303, 808 Bassline or BLIP. In a list, it changes the value.
OCT-, OCT+The steps, 16 at a time (1-16 ... 49-64). On HOME and SONG, patterns 1-16 or 17-32. On the 303 or 808 Bassline keyboard, the octave. On TB-3PO, mutate the line or write a new one.
KNOB 1-4The four values at the bottom of the screen. Each click is one step, however quickly you turn a few; spin and they speed up. Hold ENV and turn one to put it back to its default.
FXThe reverb and the delay.
SELEverything on this screen as a list, including the settings on no page (see Lists). In a question, yes.
ENVHold while pressing keys: an accent. Hold and turn a knob: the knob goes back to its default.
LFOThe mixer and the master. Hold while pressing keys: a slide.
EDITThe selected part's sound. The keys still write its steps.
GLOThe settings. Press again to close.
HOMEThe pattern: all five parts, which pattern they play, mutes. Again: the song, and again back. In a list, back; in a question, no.
SAVESave everything (while playing: when you stop). Hold it to copy the pattern; then a white key pastes it.
ARPTB-3PO, the line generator (on the 303 or the 808 Bassline).
SEQThe selected part's steps, with its LENGTH and RATE (on the 303 and 808 Bassline, also DIRECTION and TRANSPOSE).
PLAYStart and stop.
RECRecord on and off: drum hits, notes, knob moves, and on the SONG screen the song. On the 303 or 808 Bassline, the keys become a keyboard while it's on.
White keysSteps. On HOME, patterns. On MASTER and FX they do nothing.
Black keysDrum tracks. On HOME they mute parts; on the mixer they pick a channel.

Hold HOME for these: + REC undoes, + PLAY redoes, + SELECT sets the tempo, + a white key picks a pattern from any screen, and + a black key mutes a drum track (on the 909 or 808 screen) or a channel (on the mixer).

The white keys are the 16 steps of a page (on HOME, patterns). The black keys are the 909's and 808's eleven drum tracks, or part mutes on HOME, or a mixer channel on the mixer.

(The SEL button is labelled SCL in Felucca.)

Lists

SEL turns the screen you're on into a list of everything on it: every knob from its pages, grouped (on the 909, for example, BD: THIS TRACK and 909: ALL TRACKS), and then MORE, the settings that are on no page. MORE is where the less used settings live, such as a drum track's DRIVE and DIST or the compressor's details.

In a list, SELECT moves, ALGORITHM changes the highlighted value, and SEL runs a row with a return arrow (an action). HOME goes back. DWNLO always asks before doing anything that would lose notes: SEL for yes, HOME for no.

Not sure what a button does? Hold it for a second on its own: a card says what it does on the screen you're on, with its combinations. Let go and nothing happens.

Undo

Hold HOME and press REC to take back your last change; the screen says what it undid, for example UNDO 909 P1. HOME + PLAY redoes it. You can go back up to 32 steps (fewer after very big changes). A step is whatever you did before pausing for a moment: a few steps tapped in a row, one turn of a knob, or a whole recording pass. Undo covers the sounds, patterns, song and knob motion, even CLEAR PATTERN and FACTORY RESET, but not the tempo or the settings. The history is cleared when you switch off.

What the key lights show

The key lights have two levels: bright for what is on or chosen, dim for what is there to choose.

ScreenBrightDim
HOMEthe pattern playing (a cued one blinks); the parts playingpatterns with notes; muted parts
SONGthe bar's pattern; the bar's partspatterns with notes; the bar's muted parts
909 / 808the track's hits; the trackthe other tracks with hits
303 / 808 Basslinenotesties
303 / 808 Bassline with REC onthe keys you holdthe Cs, to find your place
BLIPthe steps that are onnothing
Mixer (PARTS, 909 MIX, 808 MIX)the channel the knobs set (blinking while muted)the other channels

4The screen

The top line shows, from left to right:

When a button does something, the top line says what for a second, for example SAVED or P1 PASTED TO P5.

The knobs sit under a tag that says whose they are: the selected track (BD), the whole machine (909 KIT), a part's sound (303 TONE), the pattern (P3 SEQUENCE), the mixer (PARTS: 303, 909 MIX: CP), a held step on SEQ (303 STEP 5), or a p-lock (BD P-LOCK STEP 5). When a section has more than one page the tag counts them (BD (1/2)), and the dots at the end of the line are all the screen's pages, the current one lit. Settings with only a few choices show a row of small squares instead of a ring.

When you turn a knob, its value shows in large type for a second, with whose it is: a track's (BD TUNE) or a pattern's (P3 LENGTH). Settings that belong to the pattern change when the pattern does, and are copied with it; the sound stays the same whatever pattern plays.

The footer at the very bottom says what the keys do on this screen (BLACK: TRACK, WHITE: STEP). Until you first press a button it says HOLD ANY BUTTON: WHAT IT DOES.


5909 and 808

Each drum machine has eleven tracks, one on each black key:

Key909808
1Bass drum (BD)Bass drum (BD)
2Snare (SD)Snare (SD)
3-5Low, mid and high tomLow, mid and high tom, or congas
6Rim shot (RS)Rim shot, or claves
7Clap (CP)Clap, or maracas
8Closed hat (CH)Cowbell (CB)
9Open hat (OH)Cymbal (CY)
10Crash (CR)Open hat (OH)
11Ride (RD)Closed hat (CH)

The 909's hats and cymbals are samples, as on the original machine; every other sound on both machines is synthesized. On the 808, a track's SOUND setting switches it between tom and conga, rim and claves, or clap and maracas. On both, the closed hat cuts off the open hat.

Writing a beat. Press a black key to pick a track; while the pattern is stopped you hear it too. (While it plays, picking is silent so you don't add a stray hit; GLO > KEY SOUND = ALWAYS changes that.) Then press white keys: an empty step turns on, and a tap on a step that's on turns it off. Hold ENV while pressing white keys to place accents instead; an accent makes every drum on that step louder.

A pattern can be up to 64 steps long. The white keys show 16 at a time: OCT+ moves to the next 16 and OCT- back, and the top line shows which 16 you're on.

Muting a track: hold HOME and press its black key; again to bring it back. A muted track's row turns grey. Track mutes aren't saved, and muting the whole part on HOME leaves them as they are.

The pages. EDIT shows the selected track's sound (one page, two for the 909's kick), then KIT with ACCENT, how much louder accented steps are. A track's DRIVE and DIST are in SEL's list, under MORE. SEQ has the machine's LENGTH and RATE. SWING is on HOME, because it swings every part.

Each track's level, pan and reverb and delay sends are on the mixer: press LFO and go to 909 MIX or 808 MIX, which shows all eleven levels at once. The black keys pick a track and the knobs are its LEVEL, PAN, REV and DLY. On the 808 the alternate sounds share their track's pan, so the conga sits where the tom does.


6303 and 808 Bassline

The 303 and the 808 Bassline are both monophonic, step-written voices, and they share the same step editor, keyboard and line generator (section 7). What differs is the sound: the 303 is Open303 with Devilfish-style ranges; the 808 Bassline is a from-scratch bass voice modelled after the kit's 808 sound, with no filter section of its own.

Steps. Press a white key to turn that step on; tap it again to turn it off. To edit a step, press SEQ, hold the step's key and turn the knobs: KNOB 1 sets the note, KNOB 2 the gate (REST, NOTE or TIE), KNOB 3 the accent and KNOB 4 the slide. OCT- and OCT+ move the held note an octave. An empty step turns on as soon as you press it, so you can press, hold and set its note in one go. A slide glides from this step's note into the next one. (Holding a step on EDIT gives it a sound of its own instead: see P-locks in section 11.)

A tie holds the note before it through the step, so it doesn't play again. On the screen a tied note joins the note it holds in one long bar. Turning KNOB 1 on a tie makes it a note of its own.

Keyboard. Press REC and all 27 keys become a keyboard (KEYS shows on the top line). The notes you play are written: step by step while the pattern is stopped, live while it plays. OCT- and OCT+ change the octave. Play a key while still holding another and the voice slides between them. Press REC again to go back to steps.

Free play. To play without writing anything, press SEQ, turn SELECT to the KEYS page and set FREE PLAY to ON. The keys then play the part on every one of its screens, stopped or playing, so you can try lines and turn EDIT's knobs as you go; the top line says FREE PLAY. Nothing is written until you press REC, which records as above. Set FREE PLAY back to OFF for the steps. Each of the 303 and the 808 Bassline has its own, and both are off at power-on.

The 303's pages. EDIT has TONE (CUTOFF, RESO, ENVMOD, DECAY) and VOICE (ACCENT, WAVE, saw or square, DRIVE, SLIDE time); TUNE, VOLUME, DRIVE TYPE (off, soft or RAT) and ACCENT DECAY are in SEL's list.

The 808 Bassline's page. EDIT has one page: TUNE, DECAY, DRIVE and GLIDE.

Both. SEQ has the line's LENGTH (1-64 steps), RATE, DIRECTION (forward, reverse, ping-pong or random) and TRANSPOSE. Each part's level, pan and sends are on the mixer (LFO).


7TB-3PO

TB-3PO writes lines for the 303 or the 808 Bassline. Pick one with ALGORITHM and press ARP.

Press OCT+ to write a completely new line, or OCT- to mutate the current one (about a quarter of its steps change).

TB-3PO has two pages (press ARP again, or turn SELECT):

These knobs don't change the line you're hearing. They set up the next OCT+ or OCT-, so your line stays exactly as it is, hand edits included, until you press one. When the knobs no longer match the line, the screen shows NEW LINE with a star. The same settings and seed always give the same line, the same one Schwung's TB-3PO module writes.

To edit the line by hand, press SEQ; to shape its sound, EDIT.


8BLIP

BLIP is a monophonic 2-operator FM voice, built for short melodic lines. It is deliberately simple: steps are on or off, with an optional accent, and nothing else - no per-step pitch, tie, slide, direction, transpose, TB-3PO, keyboard or p-locks.

Steps. Press a white key to turn a step on; tap it again to turn it off. Hold ENV while pressing a white key to place an accent instead.

A pattern can be up to 32 steps long. SEQ has LENGTH and RATE.

The pages. EDIT has SOUND (TUNE, DECAY, BRIGHT, GLIDE) and LFO (LRATE, LDEPTH, CUTOFF). The modulator envelope decays faster than the carrier's, for the bright attack; the filter is a one-pole lowpass with its own slow LFO. BLIP's level, pan and sends are on the mixer (LFO).


9Patterns

There are 32 patterns. A pattern holds each part's steps, length and rate, the swing, and any knob motion, p-locks and probabilities. Sounds, effects and master settings are not part of a pattern and don't change when the pattern does.

Each part plays its own pattern, so the 303 can play pattern 3 while the drums play pattern 7.

HOME shows patterns 1-16 as boxes, one per white key; OCT+ shows 17-32 (P17-32 appears under the boxes) and OCT- goes back. Every fourth box is numbered. In each box, a line for each part with notes in that pattern: bright where that part is playing it now, dim otherwise.

Choosing patterns

While playing, the new pattern starts when the current bar ends; stopped, it takes over at once. A part that changes pattern starts again from step 1; the others carry on.

Copy and paste. Hold SAVE: the top line says P1 COPIED. Press a white key to paste onto that pattern (P1 PASTED TO P2): all five parts, as they're playing now. If the pattern you paste onto has notes, DWNLO asks first. While holding SAVE, OCT- and OCT+ switch between patterns 1-16 and 17-32.

Clearing. Hold SAVE and press REC to clear the selected part in its pattern. GLO > CLEAR PATTERN clears all five.

Muting. On HOME, black keys 1-5 mute and unmute the parts. Mutes aren't saved, except inside a song.

Lengths and swing. Parts can have different lengths, so they drift against each other. The 909's length sets the length of a bar, and the 909's pattern holds the swing, which applies to every part. Swing delays every second 16th note: 50% is straight, 75% the most.

HOME's knobs are for playing live: TEMPO, SWING, and the master's FILTER and PUMP.


10Recording

Press REC to turn recording on, and again to turn it off.


11Knob motion, p-locks and probability

All three give steps values of their own, and all three are saved with the pattern.

Knob motion

Turn on REC, press PLAY and turn any sound knob. DWNLO records the knob on the steps where you moved it, fills in short pauses so a slow sweep has no gaps, and on playback glides from step to step.

P-locks

A step can have a sound of its own: a higher tune on one kick, an open filter on one 303 note, a different decay on one 808 Bassline note. BLIP steps have no p-locks (section 8).

Probability

Hold a step (on SEQ or EDIT) and turn SELECT to set the chance it plays, from 100% down to 5% in steps of 5; the top line shows it (STEP 5: 50%). The dice are rolled every time the step comes round, so 50% plays about every other pass.

Keep turning past 5% for cycles: 1:2, 2:2, 1:3 and so on up to 8:8. A step at 1:4 plays on the first of every four times round its part's pattern, 2:4 on the second; nothing random about it. Each part counts its own passes, from 1 again whenever you press PLAY or it changes pattern.

Good to know


12Song

A song is a list of up to 192 bars. Each bar says which pattern each part plays and which parts are muted. To open the song, press HOME twice (HOME again comes back to the pattern).

Press SEL on the SONG screen for LENGTH, INSERT BAR, DELETE BAR and CLEAR SONG.


13Effects

There is one reverb and one delay, and every part can send to both: each part's sends are on the mixer's PARTS page (LFO), each drum track's on 909 MIX and 808 MIX. FX shows how much every part sends, and has two pages:

In SEL's list, under MORE: each effect's low cut and return level, and PING-PONG, which bounces the echoes between left and right.


14Mix and master

Press LFO to open the mixer; press it again (or turn SELECT) for its four pages. The red bar on the right is the compressor's gain reduction.

On PARTS, 909 MIX and 808 MIX, hold HOME and press a black key to mute or unmute that channel (a part on PARTS, a track on the drum pages). The key lights show it: the channel the knobs set is bright (blinking while muted), the others dim, muted ones dark.

Turning ALGORITHM on the mixer goes to that part's page: 909 MIX or 808 MIX for the drum machines, PARTS (with the part picked) for the 303, the 808 Bassline and BLIP.

MASTERWhat it does
DRIVESaturates the whole mix (the 909's drive stage).
COMPOne knob for the compressor: 0 is off; turning up lowers its threshold, raises its ratio and adds makeup gain together. Three quarters is the factory's hard squeeze (4:1 from -24 dB, +16 dB).
PUMPLowers the whole mix each time the kick plays, by up to 24 dB, and lets it swell back up. Accented kicks pump harder. It works even with COMP at 0, and even when the kick is muted, so a silent kick can drive it. Which kick: PUMP BY in SEL's list (the 909's, the 808's or both).
FILTEROne knob: in the middle it's off; to the left a low-pass closes down, to the right a high-pass opens up.

FILTER and PUMP are also on HOME's PERFORM page, for playing live.

The master in detail

In SEL's list, under MORE: the compressor's THRESH (-48 to 0 dB), RATIO (1:1 to 20:1 and INF), ATTACK (0.1 to 100 ms), RELEASE (10 to 1500 ms), MAKEUP (0 to 24 dB) and MIX (dry to fully compressed, for parallel compression); PUMP BY (the 909's kick, the 808's, or both); the filter's RESO; LIMIT, which prevents clipping (leave it on); and the drive stage's DIST type, its GLUE compressor and VOLUME. Turning COMP or FILTER sets their details again.


15Settings and saving

Press GLO for these settings, in five sections (MIDI, AUDIO, KEYS AND SCREEN, PROJECT, SYSTEM):

SettingWhat it does
CLOCK OUTSends MIDI clock and start/stop messages.
NOTES OUTSends the patterns out as MIDI notes.
909 ... BLIP MIDI CHEach part's MIDI channel, for notes in and out: 1-16, or OFF to ignore incoming notes for that part (and send none).
OUTPUTNORMAL, or LOUD: 6 dB more at the headphones and line out (and USB audio), for headphones that need it. The master's LIMIT (on by default) keeps it from clipping.
USB AUDIOFOLLOWS KNOB (the default): USB audio is as loud as the FM-1, MASTER knob and all. FULL: USB audio stays at full level whatever the knob says, so you can record over the cable with the speaker turned down.
LIGHTSON: the key lights show the steps, and the unlit buttons glow dimly so they can be read. KEYS: the key lights only. OFF: neither.
KEY SOUNDSTOPPED (the default): picking a drum or editing a step is silent while the pattern plays, unless REC is on. ALWAYS: you always hear it. A keyboard always plays either way.
THEMEThe screen colour: green, amber, cyan, red or mono.
SAVE PROJECTSaves everything.
AUTOSAVEON (the default): while the pattern is stopped, changes are saved by themselves once nothing has been touched for four seconds. OFF: only SAVE saves.
CLEAR PATTERNClears all five parts of the current pattern.
FACTORY RESETGoes back to the factory sounds and empty patterns, with no song and no knob motion. Your saved project is kept until you save over it.
PERFORMANCEOpens the performance page (below).
2ND COREON (the default): DWNLO uses both of the FM-1's processor cores. OFF: one core. Takes effect the next time you switch on. DWNLO sets it to OFF by itself if it crashes with two cores (see the performance page, below).
ABOUT DWNLOShows the version, how full the memory for patterns is (MEM), and the audio load.
BATTERYThe battery's charge: FULL, 2/3, 1/3 or EMPTY; USB POWER while a computer powers the FM-1. Read only.

Saving

SAVE saves the sounds, all 32 patterns, the song, the knob motion, the tempo and the settings. A small grey dot at the top right of the screen means there are unsaved changes, and anything unsaved is lost when you switch off.

With AUTOSAVE on (the default) you'll rarely need SAVE: whenever the pattern is stopped and nothing has been touched for four seconds, DWNLO saves and says AUTOSAVED.

DWNLO never saves while playing. Saving pauses the sound for a moment (the FM-1 plays from the same memory it saves to), so a SAVE pressed while playing says SAVES WHEN STOPPED and saves when you stop.

How much fits

DWNLO packs the patterns, the song and the knob motion to fit them in the FM-1's memory; empty steps take almost no room, so a typical project uses a small part of it (GLO > ABOUT DWNLO shows how much, as MEM). If a project ever grows too big to fit, DWNLO says MEMORY FULL: NOT SAVED and keeps what was saved before; clearing patterns you don't need makes room. Projects saved by earlier versions load as they were, with their steps on 1-32 and their patterns on 1-16.

Performance: how hard the FM-1 is working

GLO > PERFORMANCE shows how hard the FM-1 is working, updated every second: the audio load and its peak, any dropouts, and how much of the processor each part is using.

For a proper measurement, press SEL and choose RUN PERF TEST. DWNLO plays three patterns of its own for about 15 seconds, from a simple loop up to everything as busy as it gets, then puts your project back exactly as it was and shows the results. HOME or PLAY stops the test early.

DWNLO uses both of the FM-1's processor cores: the 808 runs on the second, so the 808's share on the performance page is the time the first core waits for it, and the whole load is lower.

The top right of the performance page says 2 CORES. On some FM-1s the second core reads its work wrongly; DWNLO notices the first time and carries on with one core, and the page says 1 CORE: BAD READS in red. Everything still works, but the busiest patterns may drop out.

If DWNLO crashes while both cores are running, it restarts with one core and sets GLO > 2ND CORE to OFF, so it doesn't crash again; the page then says 1 CORE (GLO). To try two cores again, set 2ND CORE to ON and switch the FM-1 off and on. After a crash while starting, DWNLO also starts on one core, once.

Under the cores, the page shows the voltages DWNLO runs the processor's two supplies at: 1.38 / 1.60V, the same as M-VAVE's own firmware. The FM-1's boot loader starts them lower, at 1.26 / 1.40V; at those voltages some FM-1s misread their memory when both cores are busy.

When the FM-1 gets close to its limit, DWNLO lightens the load by itself instead of dropping out: the 303 and the 808 Bassline stop oversampling (bright, resonant notes get a touch grittier) and the 808's sounds end a little sooner as they fade. While this is happening, GUARD lights up in amber next to the audio load; it switches off again after three quiet seconds. The performance page counts how often it has kicked in (GUARD 3x).

If DWNLO drops out on one of your patterns, a photo of the test results and of the pattern is the most useful thing you can send.

If DWNLO crashes, it shows a red DWNLO CRASH screen for a few seconds and starts again. Until you switch the FM-1 off, the performance page keeps that crash's numbers in red at the bottom (CRASH PC ... RA ..., EMU ... DBG ...). A photo of them is the most useful thing to send with a crash report.

KNOB 1 turns on some extra counters (STALLS). They're experimental: if the FM-1 acts up with them on, switch it off and on again.

Back up your project

DWNLO keeps one project. To keep more, or to keep yours while you try other firmware, save it to a file on your computer and load it back later.

Back up: from the command line, with the FM-1 connected:

python3 tools/dwnlo_backup.py backup my-song.dwb

The project goes to the file you name: the sounds, all 32 patterns, the song, the knob motion, the tempo and the settings. DWNLO can keep playing, but changes it hasn't saved yet go in the file only when it's stopped.

Restore:

python3 tools/dwnlo_backup.py restore my-song.dwb

Stop DWNLO first. DWNLO checks the whole file before anything changes. Then its screen asks RESTORE FROM USB? Press SEL to restore, or HOME to keep what you have. The backup replaces the project on the FM-1, and DWNLO loads it at once.

python3 tools/dwnlo_backup.py info my-song.dwb shows what a backup holds. A backup made with an earlier version of DWNLO restores in a later one. A local copy of the web installer also has a backup page, in Chrome or Edge.


16MIDI and USB audio

When connected over USB, the FM-1 shows up as a MIDI device called "DWNLO FM-1".

DWNLO takes MIDI from USB and from the FM-1's TRS MIDI IN jack, both the same way. Each part listens on its own channel; these are the defaults:

InputWhat it plays
Channel 10The 909, with General MIDI drum notes: 36 kick, 38 snare, 41, 45 and 50 toms, 37 rim, 39 clap, 42 closed hat, 46 open hat, 49 crash, 51 ride.
Channel 11The 808, with the same notes, plus 56 for the cowbell and 49 for the cymbal.
Channel 2The 303. Overlapping notes slide, and a velocity of 100 or more plays an accent.
Channel 3The 808 Bassline, in the same way.
Channel 4BLIP. Overlapping notes slide, and a velocity of 100 or more plays an accent.
ClockDWNLO follows an incoming MIDI clock automatically, and returns to its own tempo half a second after the clock stops. Start, Stop and Continue start and stop the patterns.

GLO sets each part's channel (909 MIDI CH and so on), or OFF to ignore its notes, for example when another box sends you its clock with notes on the same channels. DWNLO can also send MIDI: clock and start/stop when CLOCK OUT is on, and the patterns as notes on each part's channel when NOTES OUT is on.

While DWNLO follows an external clock, the tempo on the top line is averaged over about a second, so it doesn't flicker with every clock.

USB audio

Over the same USB cable, the FM-1 also shows up on a computer as an audio input called "DWNLO FM-1": two channels at 44.1 kHz, with no driver to install. It carries what the headphones hear, after VOLUME, in stereo.

Record it in any audio app, or monitor it live through one. The FM-1 keeps its USB audio in step with the computer's clock, so live monitoring doesn't drift or drop out. The first moment after an app opens the input can click while the FM-1 settles.

Screen reader

DWNLO can tell a screen reader what its screen shows, over the same protocol as fm1-reader. It reads out the page you're on and its knobs, a knob's value as you turn it, list rows with their place ("clock out on, 1 of 20"), help cards, questions, steps you put on or off, play and stop, and every message, in words: "bass drum tune 37", not "BD TUNE 37". The FM-1 says nothing until a reader connects, so a DAW on the same cable never sees it.


17Troubleshooting

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.

After a crash: DWNLO shows a red DWNLO CRASH screen and restarts by itself a few seconds later. The next start shows RESTARTED AFTER A CRASH and an address (PC ...) for a moment. If you report the problem, include that address and what you were doing.

Safe mode: if DWNLO crashes twice in a row while starting, it starts in DWNLO SAFE MODE instead. There's no sound, but USB works, so the installer can reach it: reinstall DWNLO, or put the stock firmware back with M-UPGRADE. Press PLAY to try starting DWNLO 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 that keeps crashing starts in safe mode (above). If it's stuck beyond that, 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/jeffwebb-to/dwnlo/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. It crashes and goes blank, and the script catches it. 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 DWNLO 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 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.


18Parameters

Drum settings range from 0 to 127. DIST, the distortion type, can be DIODE, CLIP, SAT, BFZ, PDIST, FOLD or CRUSH. PAN goes from L64 through C (the middle) to R63.

Each track's Level, Pan, Rev and Dly are on the mixer (909 MIX, 808 MIX); its Drive and Dist are in SEL's list; the rest are its sound pages.

909 tracks
909 trackSettings
BDTune, Attack, Decay, Level, Pitch depth, Pitch, Drive, Dist, Rev, Dly, Pan
SDTune, Tone, Snappy, Decay, Level, Drive, Dist, Rev, Dly, Pan
LT, MT, HTTune, Decay, Level, Attack, Drive, Dist, Rev, Dly, Pan
RSLevel, Tune, Drive, Dist, Rev, Dly, Pan
CPLevel, Tune, Tail, Drive, Dist, Rev, Dly, Pan
CH, OHDecay, Level, Tune, Drive, Dist, Rev, Dly, Pan
CR, RDTune, Level, Decay, Drive, Dist, Rev, Dly, Pan
KITAccent (how much louder accented steps are)
808 tracks
808 trackSettings
BDLevel, Tone, Decay, Tune, Attack, Drive, Dist, Rev, Dly, Pan
SDLevel, Tone, Snappy, Tune, Decay, Drive, Dist, Rev, Dly, Pan
LT, MT, HTLevel, Tune, Decay, Sound, Drive, Dist, Rev, Dly, Pan
RSLevel, Tune, Decay, Sound, Drive, Dist, Rev, Dly, Pan
CPLevel, Tune, Decay, Attack, Sound, Drive, Dist, Rev, Dly, Pan
CB, CHLevel, Tune, Decay, Drive, Dist, Rev, Dly, Pan
CY, OHLevel, Decay, Tune, Drive, Dist, Rev, Dly, Pan
KITAccent
303
303 settingRange
Cutoff, Reso, EnvMod0-127
Decay200-2000 ms
Accent0-127
WaveSaw or square
TuneA from 400 to 480 Hz; the middle is 440 Hz
Volume0-127
Drive, Drive typeOff, soft or RAT
Slide2-360 ms
Accent decay30-3000 ms
808 Bassline
808 Bassline settingRange
Tune0-127
Decay0-127
Drive0-127
Glide0-127
BLIP
BLIP settingRange
Tune0-127
Decay0-127
Bright0-127
Glide0-127
LRate0-127
LDepth0-127
Cutoff0-127
Effects and master
Effect pageSettings
REVERBDecay, Tone; in the list: low cut, return level
DELAYTime (1/32, 1/16T, 1/16, 1/8T, 1/16., 1/8, 1/4T, 1/8., 1/4, 1/2T, 1/4., 1/2, 1/2.), Feedback, Tone, Tape (DIGI, then tape and its wear); in the list: low cut, return level, ping-pong
MASTERDrive, Comp, Pump, Filter; in the list: the compressor's details, pump by, resonance, limiter, the drive's type, glue and volume

The delay follows the tempo, including an external MIDI clock. A delay longer than two seconds (1/2. below 90 BPM, 1/2 below 60) plays at half that length, which still lands on the beat. With PING on, the echoes bounce from left to right, one delay time apart; delays longer than one second play in the middle instead.


19Credits

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