Every control on the panel, what it does, and a thing to try. The shape of it: set the settings, generate a bank of 16 patterns, freeze the good ones into the FM-1's own sequencer. ← back to the panel
Round knobs are continuous: drag up and down, use the wheel, or the arrow keys. Double-click resets to the default. sine-style switches are rotary: one detent per option, and the chosen name prints underneath.
Generate rolls a new seed and rebuilds the bank. Randomize rolls settings too. Play loops the selected slot so you can tweak it live. The sound switch picks the browser preview timbre (e-piano, bell, bass, organ, square); the FM-1 plays its own patch when frozen. Freeze writes the selected slot, Send 16 writes the whole bank, Clear wipes the FM-1's sequencer. The strip at the bottom picks the theme. Freeze needs the FM-1+VA / Baud Girl firmware — the pattern-write SysEx only exists there; on stock firmware the app works as a live MIDI broadcaster (▶ Play).
The 16 slots of the bank sit above a 64-step grid, eight wide. Tap a slot to select it. Tap a step to edit it: − and + move it a semitone, ✕ empties it. Any step you touch is locked, so it survives regeneration. When the loop is on, the tiled region is tinted in the accent colour (its first step a notch brighter), in both the grid and the bank strip.
Five local preset slots under the transport keep banks in the browser. Tap a slot to recall it; double-click to overwrite it; or arm save ▸ / ◂ load and then tap. A preset holds everything an export file does: the knobs, the seed, the locked steps.
Downloads the current state as JSON: every knob, the seed, the locked steps, and the selected slot. The whole bank derives from the seed, so the file is the song — anyone who imports it gets the identical 16 patterns.
Loads a JSON file exported from FM-1 Pulses. Parameters are validated and clamped, the bank regenerates from the file's seed, and locked steps come back as they were.
Downloads the whole 16-slot bank as a .syx file — the raw SysEx pattern-write messages, so any other FM-1 tool can push the same bank to the device without the browser.
Connects the FM-1 over BLE MIDI for cable-free playback: the ▶ Play loop sends its notes over Bluetooth. Freeze, Send 16, Clear and the device-BPM read still need USB — on this firmware BLE carries notes and controllers only; the pattern SysEx does not ride it (verified on hardware). If the link drops, the app reconnects on its own and shows bluetooth … in the link.
Playback speed for the browser player. The FM-1's BPM is device-global and cannot be set over MIDI — this firmware acks the tempo bytes of a pattern write and discards them. Freezing therefore does not change the device's BPM; the unit's own tempo governs standalone playback. After every freeze (and on connect) the app reads the device's real BPM and snaps this knob to it, so what you see is what the device plays.
Delays every other step. 50% is straight, 75% is triplet (2:1). Heard in the browser and written into the pattern.
Random mode: the chance each step plays a note — 0% silence, 100% every step. Euclid mode: the same knob becomes density: Gate % becomes N hits spread as evenly as possible over the cycle (the Loop length, or 16 steps if the loop is off). E(5,8) = x.xx.xx. (cinquillo), E(4,8) = x.x.x.x., E(3,8) is a tresillo-family pattern. The loop info line shows the current E(N,M).
The gradient between two ways of placing the hits. 0% = random: each step rolls the Gate chance (white noise, no structure). 100% = euclid: the hits sit at the evenest positions of the cycle — the maths behind clave, tresillo and most world-music rhythms. In between, each step rolls which law it follows, so a pattern erodes gradually from clean Euclid to loose random. Gate % is the density on both ends, and the loop info line names the classics when you land on one:
tresillo x..x..x. — Gate 37%, Loop 8
cinquillo x.xx.xx. — Gate 62%, Loop 8
son clave x..x..x...x.x... — Gate 31%, Loop 16
The cycle is the Loop length (16 steps if the loop is off); Rotate turns the pattern.
Euclid mode: turns the hit pattern within its cycle, like rotating a clave. Wraps when the cycle is shorter than 16.
Chance a note is kept only if it lands on a grid line. Off-grid notes become rests. Gate still decides how many of those lines fire, so the two work together.
Spacing of those grid lines. 4 is one beat at 1/16. Odd values like 3 and 5 do not divide the bar, so they land lopsided and drift.
How long each note holds. Low is staccato, high is legato.
How far the 16 slots evolve away from each other. 0% means they share the settings. 100% means slot 1 and slot 16 are far apart.
One number, everything derives from it. Same seed plus same settings gives the same bank. The knob rolls it, so you can hunt for a bank by turning.
The length of one step, which sets the bar length. At 1/32 a 64-step phrase is 2 bars; at 1/16 it is 4 bars.
How many of the 64 steps the pattern plays.
How hard notes snap to the scale. 100% is always in scale. Lower lets chromatic passing notes through.
Off, notes spread both ways around the Offset note. On, the Offset note becomes the floor and notes only rise from it.
What makes the pitch move. sine, tri, saw and sqr are fixed contours. perlin is a smooth coherent contour — long evolving arcs, not white noise. random draws a fresh value from the Spread distribution. walk, smooth and hold are the older random shapes.
Morphs the wave. On sine it drives the sine into a wavefolder (harmonically richer arcs); on tri and saw it bends the ramp into a curve; on sqr it narrows the pulse width from 50% to 5%; on perlin it adds a detuned octave shimmer; on walk it widens the step size; on smooth it speeds the slew. At 0% every wave is its classic self.
How many times the contour repeats across the phrase. Whole numbers land on the phrase and repeat; fractional values drift, so every pass differs.
How far notes reach above and below the Offset note. 0% is one note. 100% is ±18 semitones.
The centre of the pitch range. Amplitude spreads evenly around this note. This is where the melody lives.
The note set the melody snaps to. Pentatonic minor is the safe default.
The tonic the scale is built on. This is the key, not where the melody sits.
The distribution notes come from. constant is one pitch, bell weights the centre, uniform is flat, extremes only hits the two ends. Bites hardest on the random wave.
Tilts the distribution low or high without changing the range. Not a pitch shift, a likelihood shift.
Random per-note velocity wobble, ±40 at 100%. Only the browser player hears this; the FM-1 plays its own velocity.
Base loudness for the browser player. Same caveat as Humanize.
Chance a note jumps up one octave. Twelve semitones is the same scale degree, so it stays in key. The jump is written into the note, so the FM-1 plays it too.
Chance a note is pulled to the nearest root note. It keeps its register, so the melody gets grounded instead of flattened onto one pitch.
Where the repeated region starts. Everything before it is an intro that plays once.
How long that region is. Together with Loop from it tiles, say, steps 13 to 29 out to the end of the phrase.
Chance a step past the loop copies the loop instead of playing its own note. 0% plays the phrase as generated, 100% repeats the region to the end. The readout in the display shows the region and how many repeats fit.
1. Connect the FM-1. The LED lights when it is found.
2. Set Scale, Root, Offset and Amplitude. Hit Generate.
3. Tap through the 16 slots. Keep the ones you like.
4. Freeze writes one slot, Send 16 writes the bank.
5. Unplug it and the FM-1 plays on its own.
Stop the FM-1's sequencer before freezing. It refuses a write while its sequencer is playing. Press SEQ off. STOP alone is not enough.