diff --git a/README.md b/README.md
index d9b9f57..3c00e63 100644
--- a/README.md
+++ b/README.md
@@ -11,6 +11,9 @@ gamepad, and MIDI** (USB or Bluetooth).
+
+Four channels, side by side. For each channel:
+
+- **INSTRUMENT** — the Toolbox device that makes its sound.
+- **FX 1–4** — up to four insert effects, applied in order.
+- **MIDI CH** — which MIDI channel this bus listens on. Notes whose channel
+ matches play here. (Set two buses to the same channel to layer them.)
+- **VOLUME** — drag the fader.
+- **LIM** — a per‑channel soft‑clip limiter.
+- **M / S** — mute / solo.
+
+The strip along the top controls **recording** of the master output:
+
+- **● ARM** — arm recording; capture begins when you press play.
+- **TAIL** — how many bars of effect tail to keep after the sequencer stops.
+- **DIR** — the destination folder for the rendered file.
+- **master → WAV** — the master bus is captured to a stereo WAV.
+
+---
+
+## Toolbox tab
+
+
+
+A 4Ă—4 grid of 16 device slots. Filled tiles show the device name and whether it's
+an instrument (**INS**) or effect (**EFF**).
+
+**Tile gestures**
+
+- **Single tap an empty tile** → choose a device to load.
+
+
+
+- **Single tap a filled tile** → open its editor.
+- **Long‑press a filled tile** → clear it (a confirmation appears first, since
+ clearing discards the device and its settings and can't be undone).
+
+The keyboard pinned at the bottom of the Toolbox auditions the current device.
+
+### Instruments
+
+**Synth** — a three‑oscillator subtractive synth (Minimoog‑style): three
+oscillators → mixer → resonant low‑pass filter (with its own envelope and key
+tracking) → amplifier, plus a tempo‑synced LFO and a small modulation matrix. The
+editor is paged (swipe, or tap the dots): **Oscillators**, **Filter**, **Amp +
+LFO**, **Mod**.
+
+
+
+Controls are **rotary knobs**: slide a finger up/down to change a value (a full
+sweep spans a comfortable travel distance, so fine tweaks are easy), and
+**double‑tap a knob to reset** it to its default. Factory presets include
+chiptune tones and a darkwave/industrial set (plucky basses, cutting leads, and
+harsh detuned deep basses for layering).
+
+**Sampler** — a 16‑pad drum/sample bank. Each pad maps to a consecutive note from
+C2 upward.
+
+
+
+Per pad you can **IMPORT WAV**, **RECORD**, **CLIP** (trim with the waveform
+markers), **NORMALIZE**, or **CLEAR**, and set a per‑pad **volume**. Tap a pad in
+the grid to play and select it.
+
+**SF2 / XI Loader** — loads a single sample/instrument from a SoundFont (`.sf2`)
+or FastTracker (`.xi`) file, pitched across the keyboard from its root note.
+
+
+
+It has a volume **ADSR envelope** and an optional **LOOP** (sustains the sample
+until note‑off) with an adjustable crossfade (**XFADE**) to smooth the loop seam.
+
+### Effects
+
+Insert effects (assign them to a channel's FX slots in the Mix tab):
+
+| Effect | What it does |
+|--------|--------------|
+| **Tape Delay** | Up to four tempo‑synced tape "heads", with feedback, dry/wet and tape character (saturation, darkening, wow/flutter) |
+| **Filter (LP/HP/BP)** | Resonant low/high/band‑pass filter with warmth and a signal‑triggered cutoff envelope |
+| **10‑Band EQ** | Ten‑band graphic equaliser |
+| **Bitcrusher** | Bit‑depth and sample‑rate reduction with drive |
+| **Ambience Reverb** | A multi‑algorithm reverb with many factory spaces |
+| **MIDI Arpeggiator** | Turns held notes into tempo‑synced octave patterns |
+| **MIDI Transposer** | Shifts incoming notes by octaves/semitones |
+| **MIDI LFO** | Modulates a chosen parameter of another device |
+
+The Tape Delay editor, as an example — drag a head's fader to set its time, tap
+its number to switch it off/on:
+
+
+
+> **MIDI effects vs. audio effects.** The Arpeggiator, Transposer and LFO shape
+> notes/parameters before the sound is made; the rest process audio. All are
+> managed the same way — as devices you drop into a channel's FX slots.
+
+### Presets
+
+Every device editor has a preset bar at the top:
+
+- **PRESET** dropdown — load a saved preset.
+- **SAVE** — save the current settings as a named preset.
+- **DELETE** — remove the selected preset (asks to confirm).
+- **IMPORT** — load a preset from a file (Sampler presets can be imported from a
+ `.zip` bundle that carries the sample).
+- **SHARE** — send the preset via the system share sheet.
+
+Presets are plain text (`.szp`), stored per device type in the app's storage.
+Factory presets are seeded automatically and reappear as new ones ship, but ones
+you delete stay deleted.
+
+---
+
+## Setup tab
+
+
+
+- **MIDI PANIC — ALL NOTES OFF** — instantly silences every voice. Use it if a
+ note ever hangs.
+- **Project** — save / new / delete full projects on the device, and **Export /
+ Import `.sng`** for desktop interchange. (See [Files](#files-projects--sharing).)
+- **Audio Devices** — route **Output** and **Input** to USB or built‑in.
+- **Color Theme** — pick a palette, or **Export / Import `.szt`** themes. Stock
+ themes can't be deleted; imported ones join the list.
+
+Scrolling down reveals the input‑binding editors:
+
+
+
+- **Gamepad Bindings** — rebind buttons and button‑combos (chords).
+- **Keyboard Hotkeys** — rebind physical‑keyboard keys.
+- **MIDI Bindings** — MIDI‑learn: map any knob/pad to an action.
+
+---
+
+## Input devices & hold‑to‑repeat
+
+Sizzletracker treats **touch, keyboard, gamepad and MIDI** as equals — every
+action is available from each.
+
+- **Touch** — tap the grid, drag faders/knobs, play the on‑screen keyboard.
+- **Physical keyboard** — a built‑in "tracker piano" for note entry (see the map
+ below) plus rebindable hotkeys for navigation, transport and editing.
+- **Gamepad** — face buttons, shoulders, D‑pad and both analog sticks are all
+ bindable and can be combined into chords (hold one control as a modifier).
+- **MIDI** — notes play live; Control‑Change messages drive bound actions, and
+ unmapped ones can be MIDI‑learned in Setup.
+
+**Hold‑to‑repeat.** Holding a **navigation** control now auto‑repeats it — cursor
+Up/Down/Left/Right, column moves, and value increment/decrement. It fires once,
+then accelerates while held, and stops on release. This works identically on the
+keyboard, the gamepad (buttons, D‑pad **and** analog sticks) and a momentary MIDI
+control — so scrolling through a long pattern or ramping a value is a single hold.
+One‑shot actions (play, stop, tab switch, note/clear) still fire once even if held.
+
+---
+
+## Files, projects & sharing
+
+| Format | Contains | Use it for |
+|--------|----------|-----------|
+| **Full project** | Notes, blocks, arrangement **+ mixer, FX, instruments and sample assignments** | Your working song on this device |
+| **`.sng`** | Notes, blocks, arrangement only | Desktop‑compatible interchange |
+| **`.szp`** | One device's settings (Sampler as a `.zip` with its sample) | Sharing instrument/effect presets |
+| **`.szt`** | A colour palette | Sharing themes |
+
+Projects auto‑save, so a crash or process death resumes where you left off.
+Export a `.sng` before wiping data if you want a portable copy of the song.
+
+---
+
+## Recording
+
+1. In the **Mix** tab, set **DIR** (destination) and **TAIL** (bars of effect
+ tail to keep), then press **â—Ź ARM**.
+2. Press **PLAY**. Capture starts with playback and records the **master** bus.
+3. Recording ends automatically the set number of tail bars after the sequencer
+ stops. The finished stereo **WAV** is written to your chosen folder.
+
+---
+
+## Default control maps
+
+### Keyboard
+
+**Hotkeys** (rebindable in Setup → Keyboard Hotkeys):
+
+| Key | Action |
+|-----|--------|
+| Arrow keys | Move cursor (hold to repeat) |
+| Tab / Shift+Tab | Next / previous column |
+| Space | Play / pause |
+| Enter | Stop |
+| L | Toggle loop |
+| Page Up / Page Down | Increment / decrement value (hold to repeat) |
+| Delete | Clear cell |
+| `` ` `` (grave) | Note‑off |
+| – / = | Octave down / up |
+
+**Tracker piano** (fixed, for note entry):
+
+- Lower octave: `Z S X D C V G B H N J M`
+- Upper octave: `Q 2 W 3 E R 5 T 6 Y 7 U`
+
+### Gamepad (default layout)
+
+| Control | Action |
+|---------|--------|
+| A / B | Play‑pause / Stop |
+| X / Y | Clear / Toggle loop |
+| L1 / R1 | Previous / next tab |
+| D‑pad / Left stick | Navigate (hold to repeat) |
+| Right stick ↑ / ↓ | Increment / decrement (hold to repeat) |
+
+Bind a control *while holding another* to create a chord (e.g. "A + Left").
+
+### MIDI
+
+Note‑on/off play live. Bind Control‑Change numbers to actions in **Setup → MIDI
+Bindings** (or MIDI‑learn them). Momentary nav CCs auto‑repeat while held.
+
+---
+
+## Tips & troubleshooting
+
+- **A note is stuck.** Setup → **MIDI PANIC** silences everything immediately.
+- **No sound from a track.** Check the note's **channel** matches a mixer
+ channel's **MIDI CH**, that the channel has an **instrument**, and that it isn't
+ **muted** (or another channel **solo**ed).
+- **Crackles/dropouts.** The engine adapts its buffer automatically; make sure no
+ other heavy app is competing, and try routing output to a different device in
+ Setup → Audio Devices.
+- **A preset/instrument you want to keep.** Clearing a tile can't be undone —
+ **SAVE** it as a preset first. Long‑press asks before clearing for this reason.
+- **Moving a song to another app.** Export a **`.sng`** (notes/blocks/arrangement
+ are desktop‑compatible); keep a **full project** for the device‑specific mix and
+ samples.
+- **Auditioning fast.** Open any instrument in the Toolbox and use the pinned
+ keyboard; hold nav controls to move around quickly thanks to hold‑to‑repeat.
+
+---
+
+*Sizzletracker is free software, licensed GPL‑3.0‑or‑later.*
diff --git a/docs/screenshots/01-tracker.png b/docs/screenshots/01-tracker.png
new file mode 100644
index 0000000..e4049e1
Binary files /dev/null and b/docs/screenshots/01-tracker.png differ
diff --git a/docs/screenshots/02-tracker-keyboard.png b/docs/screenshots/02-tracker-keyboard.png
new file mode 100644
index 0000000..6a1218e
Binary files /dev/null and b/docs/screenshots/02-tracker-keyboard.png differ
diff --git a/docs/screenshots/03-mix.png b/docs/screenshots/03-mix.png
new file mode 100644
index 0000000..a0a8711
Binary files /dev/null and b/docs/screenshots/03-mix.png differ
diff --git a/docs/screenshots/04-toolbox.png b/docs/screenshots/04-toolbox.png
new file mode 100644
index 0000000..e1a9f3f
Binary files /dev/null and b/docs/screenshots/04-toolbox.png differ
diff --git a/docs/screenshots/05-device-picker.png b/docs/screenshots/05-device-picker.png
new file mode 100644
index 0000000..35c5d30
Binary files /dev/null and b/docs/screenshots/05-device-picker.png differ
diff --git a/docs/screenshots/06-synth-editor.png b/docs/screenshots/06-synth-editor.png
new file mode 100644
index 0000000..c216d1b
Binary files /dev/null and b/docs/screenshots/06-synth-editor.png differ
diff --git a/docs/screenshots/07-soundfont-editor.png b/docs/screenshots/07-soundfont-editor.png
new file mode 100644
index 0000000..4ade5e1
Binary files /dev/null and b/docs/screenshots/07-soundfont-editor.png differ
diff --git a/docs/screenshots/08-sampler-editor.png b/docs/screenshots/08-sampler-editor.png
new file mode 100644
index 0000000..6820cfe
Binary files /dev/null and b/docs/screenshots/08-sampler-editor.png differ
diff --git a/docs/screenshots/09-tape-delay-editor.png b/docs/screenshots/09-tape-delay-editor.png
new file mode 100644
index 0000000..3a4d31a
Binary files /dev/null and b/docs/screenshots/09-tape-delay-editor.png differ
diff --git a/docs/screenshots/10-setup.png b/docs/screenshots/10-setup.png
new file mode 100644
index 0000000..76fcaf8
Binary files /dev/null and b/docs/screenshots/10-setup.png differ
diff --git a/docs/screenshots/11-setup-bindings.png b/docs/screenshots/11-setup-bindings.png
new file mode 100644
index 0000000..5dc9324
Binary files /dev/null and b/docs/screenshots/11-setup-bindings.png differ