DUB-1
dub techno for the FM-1, in the browser: the same code the FM-1 runs
The FM-1
Turn your phone sideways for bigger controls.
Knobs: turn with the arrow keys, Page Up and Page Down turn faster. Buttons and keys: Space or Enter presses, held as long as you hold it; Shift with Space keeps a button held until you press it again. Keys: Left and Right arrows move between them.
Screen reader
The screen says:
What the screen shows, in words: the page and its knobs, a value as you turn it, the piece, the chord as it moves, every message. The same words as the FM-1 Screen Reader says for the FM-1 itself. This page's voice is eSpeak NG (GPL-3.0), running in the page.
MIDI in
Last message: none yet
A controller on this computer plays the FM-1 here as it would over USB: notes, CCs, clock and start / stop. Chrome and Edge (Web MIDI); the browser asks first.
Pages and knobs
One page a layer, each on its own button. The levels are on OCT− / OCT+ (on a layer's page: 5 a press, held on; both together, quickly: the layer muted or back) and on the Arrangement page's channel strips (SEL, a part's white key held: its Level), whose meters show every part's level. SELECT is the DJ filter, on every page. The pages, as their buttons sit on the panel: Dub (FX), Chord (ENV), Bass (LFO), Setup (GLO), Form (HOME), Noise (SAVE), Pings (ARP), Drums (SEQ); the page's name is on the line above the knobs, at its left (with its place, 2/4), the voice at its right; the header shows where you are: the section and the phrase's eight bars, and in a song a hairline that is the whole song. A button with one page stays on it pressed again; one with several steps through them. Each layer's first page is its part (what it plays, and its Vary: a trim on the Form page's Vary, 0 following it, the far left Hold); its button pressed again opens its voice page: four knobs that shape its sound, most 0 in the middle (the voice as it is), −50 to +50 (the chord's Attack and the pings' Bend 0 to 100, from the voice's own); the drums have two, Kick and Hats. A third press opens its FM page: the algorithm (drawn on the screen), the upper operators' ratio, the feedback (on an FM voice); the chord's has its Colour too and the bass's its Bite, on every voice. The chord's five pages: Chord (Density, Throws, Change, Vary), Chord voice (Attack, Decay), Chord filter (Cutoff, Reso, Env: how far each stab opens the filter, Env decay: how quickly it closes; the screen draws the sweep), Chord FM (Algo, Ratio, Feedback, Colour) and Chord LFO, its slow movement: a wave in time with the music and a slow random wander with it, like a hand riding the filter, as much as the Form page's Drift says (Drift: more or less than Form's Drift, 0 as Form's, the far left still; Wave: the wave's share against the wander, 0 the wander alone, 50 half each, 100 the wave alone, a sine; Rate, 1 to 32 bars; Target, where it goes: Cutoff, Reso or Colour, the knob it moves showing it, also on ALGORITHM; the screen draws it across: the past at the left, what's heard bold, the wave a thin white line and the wander a thin pink one, now in the middle, the wave ahead at the right, its reach in its Target's units at the edge, at one scale: it grows and shrinks in height with Form's Drift and the page's). The noise has one too (SAVE a third time); the bass and the pings have none. A knob centred on 0 stops there on its way through (three clicks, within 3 s of each other, to leave it). On a layer's page, ALGORITHM changes its voice (the chord: Saws, Keys, Organ, Pad, Bell, Tonewheel, Noise; the pings: Blip, Marimba, Glass, Wood, Drop; the bass: Sub, Punch, Rubber, Pluck, Growl; the drums' kit: Tight, Deep, Punch, Soft, Dusty). Each piece remembers its own settings.
Form HOME
- Energy
- Busier or sparser, now: down, sparser and drier; up, busier and brighter; 0 in the middle. It leans the sections, never locks them (far down a Groove comes as a Thin, far up a Break as a Groove). For playing: not saved. (The DJ filter is on SELECT, on every page.)
- Vary
- How much the loop changes, held to restless, every step heard: the stab and shaker patterns turn, bars go without a stab, ping notes change, the drums' and the bass's phrase plan (A A A B) changes more often, the kick's shape wanders; at 0 the loop held, at 50 the classic records' middle (0 to 50 a straight line to it, then each step about 5% more than the last), at 100 the most restless. Each layer's Vary trims it (its part page). Hold SEL to lock the groove.
- Motion
- The arrangement, in three zones (marked on the ring, the zone named as it turns): Breathes (0 to 39), parts ridden out and back (the pings, hats or noise right out, the chord or the bass 12 dB down), echoes swelled, the kick out a bar or two, off the 8-bar grid; at 0 nothing ever leaves; Sections (40 to 69), Thin and Groove phrases join, rarely at first, then often; Breaks (70 to 100), Breaks join, the kick and the bass out a phrase. Only the arrangement: how far the sound moves is Drift's.
- Drift
- How much the sound moves, still to restless, every step heard: the chord's and the noise's LFOs (each its wave and its random wander, their pages' Wave the share; their pages' Drift more or less of it), how far the filter's long sweeps go (a new place every 6 to 20 bars, Basic's 4 to 14, off the phrase line), the echo's heads wandering and its feedback leaning, the dub mixer's slow rides of the parts' levels and sends. 0 still; 50 about an octave of filter movement, the levels a few dB; 100 restless.
Chord ENV
- Density, Throws
- One to six stabs a bar, off the beat; how often a stab is thrown into the echo (50: about one in eight; 100: one in three; 0: none but a fill's last).
- Change, Vary
- How long a chord lasts, 2 to 64 bars, or Hold (the Walk page's dots fill on the way to the next; EDIT moves on at the next bar); the stabs' turns, a trim on the Form page's Vary (0 as Form's, the far left Hold: still, +50 more).
- ENV again: Chord voice
- Attack, Decay. ENV a third time: Chord filter: Cutoff (the resonant low-pass, darker or brighter than the piece's own: 0 in the middle), Reso, Env (how far each stab opens it), Env decay (how quickly it closes). A fourth: Chord FM (Algo, Ratio, Feedback; Colour on every voice); a fifth: Chord LFO.
Pings ARP
- Density, Vary
- How many notes each of the four loops (13, 17, 23, 29 eighths) holds; how often the loops change, a trim on Form's Vary (0 as Form's, Hold still, +50 more).
- ARP again: Pings voice
- Octave (two down to two up), Tone, Length, Bend. ARP a third time: Pings FM (Algo, Ratio, Feedback, Upper).
Bass LFO
- Groove, Vary
- Drone, Offbeat, Dotted, Sync or Roller, sparse to busy; how often its phrase's figure is drawn anew, a trim on Form's Vary (0 as Form's, Hold kept, +50 more).
- Density, Fifth
- How many of the groove's notes play, from the bar's first alone (0) to all (100), the last one fading in, in two zones (marked on the ring): Sparse (0 to 29) and Pickups (from 30: a busy bar adds a pickup into the next); how often it leans on the fifth.
- LFO again: Bass voice
- Octave, Shape, Gate, Glide. LFO a third time: Bass FM (Algo, Ratio, Feedback; Bite on every voice).
Drums SEQ
- Kick, Hits
- The kick's shape, a switch, from the next bar: Four (four on the floor), Ghost (two and four ghosted), Half (one and three), One (the downbeat); Vary has it wander from there a phrase at a time. How busy the hats are, in four zones (marked on the ring): Shaker (0 to 14, a step more as it turns; 0 no hats), Open hat (from 15, on one and three's offbeat), Offbeats (from 40, on every offbeat), Rim (from 70, on two and four).
- Vary
- How often the drums change: the kick's shape, the shaker's steps, the clap. (Duck is on the Arrangement page.)
- SEQ again: Kick; again: Hats
- The kick's Tune, Length, Punch and Rumble (a dark roar under it); the hats' Level (about ±12 dB against the kick), Tone and Length. SEQ a fourth time: the Pattern page.
Noise SAVE
- Density, Vary
- A crackle groove ringing on the chord: how many hits in two bars; how often the groove is drawn anew.
- SAVE again: Noise voice
- Air (the quiet hiss under it), Tone (the rings darker or brighter), Decay (how long each hit rings), Width (mono to wide). Its level on OCT− / OCT+; its plate and echo its channel strip's (the Arrangement page, white 6 held). ALGORITHM its character: Vinyl, Tape, Dust, Room, Machine.
- SAVE a third time: Noise LFO
- The noise moving, as the Chord LFO: Drift (on the Form page's Drift), Wave (0 the wander alone, 100 the wave alone), Rate, Target: Filter (a low-pass on the whole noise), Tone or Air (ALGORITHM too).
Dub FX
- Echo, Echo time
- The tape echo's send; its time, an eighth to a bar (dotted eighth the classic).
- Feedback, Reverb
- How long the echo's tail lasts, 1.5 to 15 s (each repeat blurrier and darker than the last); the plate's send. FX again: the Echo page, Blur, Tone, Size and Cloud (how much of the reverb goes through the granular cloud).
Setup GLO
- Tune
- Fine tuning in cents, for every piece.
- MIDI out, Lights
- MIDI out over USB; the key lights and the buttons' glow. The audio load shows in the header, at its right.
- Song mode GLO again
- Mode: Endless (as ever), Song (PLAY: an intro, the main, an outro, then silence) or Set (the songs in turn, from this piece to the last), for every piece. Transition (KNOB 2, Set mode alone), how one piece hands over to the next: LP (a pause, then the next from its intro), Segue (no stop: the next intro under the old echo held) or Mix (the tempo glides, the next kick in under the echo). Values (KNOB 4): the knobs' numbers a moment as a page opens (Peek), or Always.
Song HOME again
- Intro, Main, Outro
- The piece's song in bars, a phrase a click (32, 160, 32): the parts coming in one by one, the piece, the parts leaving. HOME held + PLAY: the outro from the next phrase, in any mode; again, back to the main.
- Kind
- Ambient first (the noise and the chord's wash) or Pulse first (the kick and the bass).
Key HOME a third time
- Tempo, Root
- 40 to 140 (also HOME + SELECT, from any page; under about 43 the echo's bar stays at the tape's 5.6 s); the key's root.
- Mode, Swing
- The scale (as ALGORITHM sets it off the Form page; with five Japanese scales: Hirajoshi, In, Iwato, Yo, Insen); the off sixteenths late.
Buttons
- Keys are the scale: each one adds or removes its note. The root stays. A lit key (a pressed one, to a screen reader) is in the scale.
- PLAY plays / rests. REC tapped: dub hold, the echo and the cloud repeat what they hold; held: the effects grid, sixteen effects on the white keys (echo: Throw, Time x2, Tape stop, Swell; filter: Low-pass, High-pass, Wah, Phone; space: Verb, Crash, Freeze, Wash; rhythm: Stutter, Gate, Siren, Riser). EDIT a tap: the Chords page (again: the Walk page, the circle of fifths: the walk and Change); held: the next chord, on the next bar; held on: new chords. Every long press says what it did on a card in the middle.
- SELECT the DJ filter, on every page (left shut, right open, Off in the middle); with HOME held, the tempo. ALGORITHM on a layer's page its voice, on the LFO pages their Target (Cutoff, Reso, Colour; Filter, Tone, Air), on the Chords page the walk (Home, Wander, Free), elsewhere the screen (ripples, scope, spectrum, tape); the mode is on the Key page (HOME a third time); PRESETS the piece (each remembers how you left it).
- SEL the Arrangement page: the screen a desk's meters, a row a part (the chord, the pings, the bass, the kick, the hats, the noise) and the master, each its level's notch on it, a mute dark, a solo dimming the rest, the duck's gain reduction under the master (a red ! in the header, on any page, while the master clips); the knobs Width (the whole mix's stereo field, mono to wide; the piece's), the second free (the dub mixer, the desk riding itself, the parts' levels and sends, the chord's filter and the echo's feedback moving slowly, off the phrase lines, is the Form page's Drift; a part ridden out and back or its echo swelled is Motion's; the notches and a held strip's knobs show the rides), Wet (the whole music dry, or drowned in the echo; 0 in the middle), and Duck (how far each beat pushes the rest down, the piece's own). The white keys 1–6, a tap, mute and bring back the chord, pings, bass, kick, hats and noise (their levels kept: the same mutes as OCT− + OCT+); held, they are a part's channel strip (as the meters' rows): Level, Echo send, Plate send (50 as the piece sends, 0 none, 100 twice; the kick's from 0) and Filter (before the sends, centred: left a low-pass darkening the part, right a high-pass thinning it, off in the middle), and the black keys 1–5 are the chord, pings, bass, hats with the rim and the clap (each the white key on its left) and the kick (D♯4; the noise none): a tap solos that part, held throws it into the echo, slammed in at its own level whatever its sends, the feedback climbing so the repeats stack (the chord every stab, the bass driven), its tails left to ring; white 7–8 are dark, the gap; white 9–12, held, push the filter open, shut it, drop the floor (the kick and the bass), push the echo; white 13–16, held, four of the grid's effects: Time x2, Freeze, Tape stop, Stutter; black 8–11 are four dub sirens, Wail, Whoop, Hi-lo and Laser, into the echo (a tap, a short one, about a bar; held past a third of a second, the slow one till you let go, its own page on the knobs: Pitch, Rate, Depth, Echo, kept for its next tap; Whoop out of tune on purpose, the others on the piece's key). The keys that do something are lit. A page's button leaves it: the keys are the scale again (the mutes and solos stay). Hold SEL: Lock, each phrase keeping the kick, the drums' and the bass's plan and the noise's groove (hold again: off).
- OCT− / OCT+ on a layer's page (Chord, Pings, Bass, Drums, Noise, and their other pages) its level, 5 a press (held: on); both together and let go within a second, the layer muted or back, its level kept (as the Arrangement page's white 1–6; held 5 s on the FM-1: the update mode). Elsewhere they do nothing. SAVE the Noise page (again: Noise voice; again: Noise LFO; held: a nudge to the noise); GLO held saves (held on: the piece back to its recipe).
- Hold a layer's button (ENV, ARP, LFO, SEQ; FX the space, SAVE the noise) for half a second: a nudge, its sound a small step somewhere new, pulled back to the piece's; held on (1.5 s), a shake, another voice, every value a big step. With a mouse, Shift-click to hold it, click again to let go.
Mouse and touch
- Drag a knob up or down, or use the scroll wheel over it.
- Click or touch buttons and keys. Several fingers at once work on a touch screen.
- Combinations with a mouse: Shift-click (or right-click) a button to hold it down, click again to let go.
Keyboard
- Tab goes through the knobs, the buttons and the keys. A knob turns with ↑ ↓ (or ← →), faster with Page Up Page Down.
- A button or key: Space or Enter presses it, as long as you hold it. Shift+Space keeps a button held (HOME, to turn SELECT for the tempo) until you press it again.
- The keys are one stop: ← → move between them.
Shortcuts, while the FM-1 has the focus (switch them off above if they get in the way of your screen reader's own):
- White keys 1–8: Q–I, 9–16: A–K. Black keys 1–11: 1–0, -.
- Space PLAY, Enter REC (dub hold), V ENV (the Chord page), Esc HOME, Z / X OCT− / OCT+ (when no button or key has the focus).
- ↑ ↓ turn SELECT (when no knob has the focus).
Saving
Saving (GLO held) keeps your scale and sound in this browser, as the FM-1 keeps them in its memory. Factory reset forgets them. It is the firmware, not a recording: what you hear is DUB-1 running, at the FM-1's 44.1 kHz. The idea of running FM-1 firmware in the browser comes from Groove OS's emulator.