IND-1

Manual

IND-1 turns the M-VAVE FM-1 into a self-playing industrial machine, after the late-80s and 90s records of KMFDM, Nine Inch Nails and Ministry. It starts the moment it's switched on and arranges its own songs: intros, verses, builds, choruses, breakdowns and drops, out of distorted drums, a sequenced bass, two guitars, FM stabs, metal and noise. You steer it: press a key and the whole machine moves to that root on the next bar; throw in fills, breakdowns and drops; mute layers; mutate the riffs.

And when you like what it plays, make it yours: lock the song and write it, step by step, the drums, the bass, the guitars, the synth, the metal, the sections. On the screen the song is a quest through a dark keep, on an LCD of the old handheld kind: a wanderer at the gate, in the halls, up the stair, in battle, at a campfire, against the Warden, out into the dawn.

The FM-1 (a drawing), running IND-1, each control labelled
The FM-1 (a drawing), running IND-1, each control labelled


1Install

Try it first: the browser emulator runs the same code with sound, played with the mouse, a touch screen or the keyboard.

Install from the browser: 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 IND-1.

Install from the command line: download ind-X.Y.Z.fwsc from the latest release, install Python 3 with pip3 install mido python-rtmidi, and from the IND-1 source run:

python3 tools/fm1_install.py ind-X.Y.Z.fwsc

Go back: "Back to the stock firmware", at the bottom of the installer 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.

Coming from another FM-1 firmware: IND-1 keeps its settings where AMB-1, X0X, LCD-4 and others built on Felucca keep theirs, and its songs where LCD-4 keeps its first eight patterns, each under its own name. None reads another's: installing IND-1 starts it from its recipes, and its first save replaces what the other had saved there. Coming from IND-1 0.1: your pieces' settings carry over; the songs start on auto.


2Getting started

IND-1 starts as soon as it's on. A few minutes with it:

  1. Listen. The first piece, Foundry, starts with an intro: hats and metal over a drone, the bass filter opening. After eight bars the verse kicks in: four on the floor, a galloping bass. Turn MASTER for the volume.
  2. Move the root. Press a key. Its note blinks on the screen and on the keys; on the next bar the whole machine (bass, guitars, synth, drone) moves there.
  3. Throw in a fill. Press OCT−: the rest of the bar is a drum fill.
  4. Break it down. Press REC: at the next bar, a breakdown (tribal toms, a long dark chord, the drone up). Press REC again: a build (a snare roll, the filters and a riser climbing). Again, or wait: the drop.
  5. Move on. Press EDIT: the next section of the song, after a fill.
  6. Mute a layer. Hold EDIT and press ENV: the guitars drop out. Again: they're back.
  7. New riffs. Press OCT+: from the next bar, new bass lines, riffs and stabs.
  8. Try another piece. Turn PRESETS. Each of the eight pieces has its own groove, tempo, key, mode and sound.
  9. Write a drum. Press SEQ (the Drums page), then SEQ again: the drums editor, the steps of the part playing. The first black key is the kick (each black key a drum, heard as you press it). Press a white key: a kick on that step, from the next time round. Press it again: gone. The song is now LOCKED (top of the screen): from here on the machine changes nothing in it by itself.
  10. Write a bass line. Press LFO: the bass editor. A black key picks a note (the first is the root, then up the mode to the octave; the last three go below the root); a white key puts it on a step.
  11. Lay out the song. Press HOME, then HOME again: the song editor, a section on each white key. Turn KNOB 1 for its kind (a verse, a chorus...), KNOB 2 for its length; the black keys turn its layers on and off. A white key past the last section adds one.
  12. Let the machine have it back. In the song editor, turn KNOB 4 to Auto: it writes on from there. Or hold SAVE for 1.5 s: the piece back to its recipe, and a new song.
  13. Stop. Press PLAY: the machine stops, the tails ring out. PLAY again and it picks up where it was.

What you change is kept with the piece, your songs too. IND-1 saves by itself while stopped, or press SAVE.

Not sure what a button does? Hold it for a second: a card says. Let go and nothing happens.


3Controls

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

ControlWhat it does
KeysThe root. A key's note becomes the root on the next bar (at once while stopped); every octave of a note is the same key. The keys of the root are lit; a new one blinks until the bar. In an editor the keys write the song instead (see Your songs).
PLAYRun / stop. IND-1 runs by itself when it's switched on. Stopped, the tails ring out; PLAY again picks up in the same section. Lit green while running.
RECA breakdown, on the bar. In a breakdown: the build. In the build: the drop. After the drop, the song carries on where it left off. Lit through the breakdown and the build.
EDITThe next section, on the bar (the rest of this bar fills). Held, with a layer's page button: mutes or unmutes that layer. In an editor, held with a step: clears it.
OCT−A fill: the rest of this bar (at least its second half).
OCT+Mutate, from the next bar: on auto, new bass lines, riffs, stabs, chords and metal; locked, new bass, guitar and synth lines for the part playing.
HOME · SEQ · LFO · ENV · ARP · SEL · FX · GLOThe pages: Machine, Drums, Bass, Guitar, Synth, Metal, Space, Setup. The lit button shows the page. Pressed again, a page's editor: the song, the drums, the bass, the guitar, the synth, the metal's rings; again, back to the page. ENV is also the accent in an editor (held, with a step).
SELECTThe previous or next page. In an editor: the part (A, B, C), the song's view (its sections, the chords) or the ring. Hold HOME and turn it for the tempo, from anywhere.
ALGORITHMThe mode: Phrygian, Aeolian, Locrian, Phrygian dominant, harmonic minor, Dorian, blues, octatonic.
PRESETSThe piece (see The pieces).
KNOB 1–4The four values on the screen. A few clicks are always single steps; a quick turn speeds up, so half a turn sweeps the range.
MASTERVolume.
SAVESaves all eight pieces and their songs. Held for 1.5 s: puts the piece back to its recipe, and its song back to the machine (auto).
OCT− + OCT+Held together for five seconds: update mode (for the installer).

Help: hold any button but PLAY for a second and a card says what it does. A key, a knob or another button puts the card away; letting go after it does nothing else.

SAVE's card
SAVE's card

4The screen

A verse of Foundry: the halls
A verse of Foundry: the halls
A key pressed: the new root on its way
A key pressed: the new root on its way

The top of the screen is a dark LCD: near-black glass, ember segments, and behind every segment its ghost, as on the old handheld games. Under it, on the case, the layers and the knobs.

| Section | Place | | |---|---|---| | Intro | The gate | The portcullis rises as the intro goes on; the kick shakes dust from it. | | Verse | The halls | The banners and the flagstones go by, a step a bass note. | | Build | The stair | Up the tower, a landing at a time, to a beacon that grows with the build. | | Chorus | The battle | Skeletons come on with the kick, and fall to it. A war banner flies with the guitars. | | Breakdown | The campfire | The drums stoke the fire; the stars twinkle with the synth. | | Drop | The Warden | An iron giant with a furnace for a heart: it flares with the kick; its strength falls through the drop. | | Outro | The dawn | Out into the morning, the sun rising. |

Everywhere: the kick swings the sword, the snare raises it; the bass walks; the guitar flares the torches; the synth circles magic over the wanderer's head; the metal strikes sparks off the blade; the noise is the mist along the ground.

The gate
The gate
The stair
The stair
The battle
The battle
The campfire
The campfire
The Warden
The Warden
The dawn
The dawn
The guitars muted in a drop
The guitars muted in a drop

5The machine

IND-1 plays six layers from one root and one mode.

Then the space: a ping-pong delay (a dotted eighth, each repeat darker), Dattorro's plate behind a gate the snare opens, and Pump: each kick ducks everything else for a moment.


6The songs

Each piece plays a song. Its material is in three parts, each a bar of every layer with four chords:

Then the plan: the sections in order, each with its length and the layers that play in it, and the metal's two rings.

On auto (as it starts) the machine writes all of it, and rewrites it as it goes. Its songs run

intro · verse · (build) · chorus · verse · (build) · chorus · breakdown · build · drop · (chorus) · outro

The bracketed sections come in some songs and not others. After the outro a new song starts, from new material (with Evolve at 0, the same song again).

Locked, nothing changes by itself: no new songs, no evolving, and every fill falls the same way every time round. The song plays its plan, then again from the top. Any edit locks the song (see Your songs); KNOB 4 in the song editor turns it back to auto.

Arrange sets the sections' lengths (all of them on auto; locked, the sections you left at "Arrange"):

SectionLongNormalShortLoop
Intro16848
Verse32168holds
Build8424
Chorus32168holds
Breakdown1684holds
Drop32168holds
Outro16848

With Loop, a verse, chorus, breakdown or drop holds until you move on: EDIT for the next section, REC for the breakdown, the build and the drop.


7Your songs: the editors

Each page with a layer has an editor: press its button again (HOME again for the song). Press it once more to go back to the page; from one editor, another layer's button goes straight to its editor.

Any edit locks the song. LOCKED shows for a moment, and the top line says LOCK. From then on the machine changes nothing in it by itself; the buttons still do what you ask: OCT− a fill, REC the breakdown, EDIT the next section, OCT+ new lines for the part playing. To give the song back to the machine, turn KNOB 4 in the song editor to Auto, or hold SAVE for 1.5 s (the piece's recipe, and a new song).

The keys in an editor: the sixteen white keys are the sixteen steps of a bar (in the song editor, its sixteen sections); the black keys pick a drum, a note or a layer. The keys light up where there are notes, and the playhead blinks along them. Everywhere:

A white keyOn an empty step: the drum or note picked. On a step that has one: let go, it goes.
A white key held + a black keyThat step becomes that drum (another on it) or that note.
A white key held + the knobsThe step's own values (the bass, the guitar, the synth).
ENV held + a white keyAn accent.
EDIT held + a white keyThe step cleared.
SELECTThe part: A (the verse, intro, build, outro), B (the chorus, the drop), C (the breakdown).

An edit is heard from the next time the step comes round. The editors open on the part playing; the playhead shows only while that part plays (to hear part B, play a chorus: EDIT moves on, and Arrange Loop holds a section while you work on it).

The song (HOME, HOME)

The song editor
The song editor

The sections, one on each white key, as the quest's places, with their lengths (dim: as Arrange makes it). The one picked is outlined; the one playing glows.

SELECT turns to the chords of part A, B and C: four chords a part, each a quarter of the section (a bar each in a four-bar section), on KNOB 1–4, named by their root note in the mode. The build always holds the root.

The chords of part B
The chords of part B

The drums (SEQ, SEQ)

The drums editor
The drums editor

Eight rows, a drum each, on the first eight black keys: kick, snare, closed hat, open hat, crash, high, mid and low tom. The one picked is named; a black key also plays its drum. A step holds one hat (closed, open or the crash) and one tom: a new one takes its place. ENV + a step goes accent, ghost, plain hit.

The sections still treat the drums their way: the intro keeps the hats and brings the kick in halfway; the build rolls the snare instead; a chorus or a drop lands with a crash; the last bar of a section fills; the outro thins out. The breakdown plays part C as it is.

Groove (KNOB 2 on the Drums page) writes the verse's and the chorus's drums anew from its patterns, so it's a place to start from (on auto it writes the bass and the riffs too).

The bass, the guitar, the synth (LFO, ENV, ARP: twice)

The bass editor
The bass editor

Eleven rows, a note each, on the black keys: the root, then up the mode to the octave (eight keys), then the three below the root. The rows are named on the left by the note picked, from the root and the mode; over the chords, the notes move with them (a note is a step of the scale above the bar's chord).

Held, a step's knobs:

BassGuitarSynth
KNOB 1Note (or Rest)NoteNote
KNOB 2AccentAccentAccent
KNOB 3Tie: a slide into it, or held (a long note)Chord: a palm-muted chug, or open (ringing)Held: the chord rings
KNOB 4Octave: upLine: one voice an octave up, instead of a chord

On the screen: an accent is white-hot, a chug short, an open chord tall; a tail is a held note, a stub on the left a slide, a dot above an octave up or a line. Riff (the Guitar page) and Busy (the Synth page) write their parts anew, as Groove does the drums.

The guitar editor
The guitar editor
The synth editor
The synth editor

The metal (SEL, SEL)

The metal editor
The metal editor

The metal plays two Euclidean rings: the anvil and the scrap. Each spreads its hits as evenly as it can over its steps, and turns on its own length across the bars: a ring of 7 against the bar's 16 is a polyrhythm. SELECT picks the ring; Hits, Steps (1–16) and Turn (where it starts) are its own, Tone the clangs' pitches. Hits on the Metal page sets both rings' hits at once.


8The pieces

PRESETS chooses one of eight pieces. Each is a recipe for the whole machine: the groove, the sounds, tempo, key and mode, how busy it is. Each remembers how you left it, and its song: a locked one comes back as you left it, one on auto starts anew. Hold SAVE for 1.5 s to put the piece you're on back to its recipe (and its song to auto). Tune, MIDI out and Lights are the same for all.

Piece
FoundryE Phrygian, 122, EBM: four on the floor, a galloping bass, guitars in the choruses.
RivetheadD Phrygian dominant, 160, Thrash: machine-gun kicks and sixteenth chugs, guitars forward.
Neon WoundA Aeolian, 112, Break: a crushed sampled break, FM stabs and lines, a squelching bass.
Dead AirF Locrian, 96, Half time: crushed drums, drones and static, long metallic chords.
SledgeG Phrygian, 84, Stomp: slow and heavy, big guitars and clangs.
Cold WireC Aeolian, 126, EBM: no guitars, a hard squelching bass and cold stabs, pumping.
ScrapyardBb octatonic, 108, Rock: the metal forward, clanging FM, a busy junkyard.
KlaxonF# harmonic minor, 140, Rock: short sections, everything up.

9The pages

One page a layer, each on its own button, with four values on KNOB 1–4. SELECT steps through them in this order. Pressed again, the button opens the page's editor (Your songs).

HOME: Machine

The Machine page
The Machine page

SEQ: Drums

The Drums page
The Drums page

LFO: Bass

The Bass page
The Bass page

ENV: Guitar

The Guitar page
The Guitar page

ARP: Synth

The Synth page
The Synth page

SEL: Metal

The Metal page
The Metal page

FX: Space

The Space page
The Space page

GLO: Setup

The Setup page
The Setup page

The top right of this page shows how much of the FM-1's time the sound takes (CPU).


10MIDI

MIDI comes in over USB and the TRS jack, and goes out over USB.


11Saving

IND-1 keeps all eight pieces in the FM-1's memory, each as you left it: every value, the root and the mode, its song (a locked one, note for note; one on auto is written anew when you come back to it), plus Tune, MIDI out and Lights.

Mutes aren't saved: they're for playing.


12Troubleshooting

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

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.

Clicks or dropouts: the Setup page shows how much of the FM-1's time the sound takes. The busiest settings (every layer in, long synth chords, Busy and Hits up, at a fast tempo) cost the most; turning a layer you don't need to 0 saves its share.

After a crash: IND-1 shows a red 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 IND-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 IND-1, or put the stock firmware back from the same page. Press PLAY to try starting IND-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 in the IND-1 source puts M-VAVE's firmware back, on a Mac, with the USB cable you already have. In Terminal, from the IND-1 folder:

bash tools/fm1_rescue.sh
  1. If a window asks to install the command line developer tools, click Install. When it has finished, run 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 IND-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 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.


13Parameters

The defaults are Foundry's; each piece has its own.

PageValueRangeFoundry
MachineTempo60–180122
MachineArrangeLoop, Long, Normal, ShortNormal
MachineEvolve0–10040
MachineIntensity0–10060
DrumsLevel0–10080
DrumsGrooveEBM, Rock, Break, Half, Thrash, StompEBM
DrumsCrush0–10015
DrumsKick0–10045
BassLevel0–10075
BassCutoff0–100 (55 Hz – 2.5 kHz)45
BassSquelch0–10055
BassDrive0–10030
GuitarLevel0–10060
GuitarGain0–10070
GuitarChug0–10070
GuitarRiff0–10055
SynthLevel0–10050
SynthTone0–10040
SynthDecay0–10030
SynthBusy0–10040
MetalMetal0–10045
MetalHits0–10040
MetalNoise0–10035
MetalTexture0–10030
SpaceReverb0–10035
SpaceGate0–10060
SpaceDelay0–10030
SpacePump0–10040
SetupRootC – BE
SetupTune−50 – +50 cents0
SetupMIDI outOff, OnOn
SetupLightsOff, On, KeysOn
ALGORITHMMode8 modesPhrygian

The editors' values:

EditorValueRange
SongSectionIntro, Verse, Build, Chorus, Break(down), Drop, Outro
SongBars1–32, or Arrange
SongBedTexture, Drone, Static, Both
SongSongAuto, Locked
ChordsChord 1–4seven steps of the scale below the root to seven above
Drums (a step)Hita ghost, a hit, an accent (ENV)
Bass (a step)Note, Accent, Tie, Octave7 below the root to 2 octaves up, Off/On, Off/Slide/Held, Off/Up
Guitar (a step)Note, Accent, Chordas the bass, Off/On, Chug/Open
Synth (a step)Note, Accent, Held, Lineas the bass, Off/On, Stab/Held, Chord/Line
Metal (each ring)Hits, Steps, Turn0–Steps, 1–16, 0–Steps−1; Tone 0–255 for both

14Credits

IND-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. IND-1 is not connected with M-VAVE, KMFDM, Nine Inch Nails, Ministry or Hügelton Instruments.