What is psikat?
Psikat is a tracker-like sequencer DAW, written in Rust and running in the browser via WebAssembly. I call it tracker-like because it has a vertically running grid of notes and commands as opposed to a piano roll. Other than that, it shares very little with classic trackers.
Note: Project saving and loading is disabled until a stable release due to constant changes in the file format. In the meantime you can export your creations in WAV format via File → Export WAV.
Interface Overview
Under active development.
Pattern Editor
The central area of psikat. A vertical grid where each column is a voice within a track, and each row is a step in time.
Entering Notes
Notes are entered using the computer keyboard or a connected MIDI keyboard. See Notes for the QWERTY key layout. The active scale filters which pitches are available from the computer keyboard. MIDI input bypasses the scale, octave, and transpose settings — notes are mapped directly from MIDI note numbers.
- Press a note key to insert a note at the cursor and advance by the skip amount
- Press . to insert a note-off marker, which silences the voice
- Press Shift+. to insert a note-off on all voices of the current row in the current track
- Press Delete or Backspace to clear the note at the cursor
- When you enter a note, it plays back as a preview so you can hear what you’re writing
Polyphonic Input
Pressing multiple note keys within a very short window enters them across adjacent voices on the same row, starting from the current cursor voice. The number of notes placed is limited by the available voice columns to the right of the cursor. This lets you quickly enter chords without enabling chord mode.
Zoom
The ZOOM dropdown in the header controls the note resolution at which the pattern is displayed. Think of it as zooming in and out of the time grid.
- Notes are always stored at the resolution at which they were entered
- Zooming out (e.g. from 1/16 to 1/4) aggregates rows: any cell that contains notes at a finer resolution is shown as a solid color block
- Zooming in reveals the individual notes
- You can enter notes at any zoom level — the note is placed at the first underlying row of the displayed cell
- Available zoom levels: 1/1, 1/2, 1/3, 1/4, 1/6, 1/8, 1/12, 1/16, 1/24, 1/32, 1/48, 1/64, 1/96, 1/128
- When notes can not be displayed in the current zoom level, a number indicating the zoom level required to display them is shown instead
Selection
- Shift + Arrow keys — begin or extend a selection in any direction
- Cmd+A — progressive selection:
- From a note column:
- Select all notes in the current track
- Extend to include FX columns for that track
- Select all tracks (notes + FX)
- From an FX column:
- Select current FX column
- Select all FX columns on current track (if more than one)
- Extend to include note columns for that track
- Select all tracks (notes + FX)
- From a note column:
- Selections can span multiple voices, tracks, FX columns, and rows
- Escape — clear the current selection
FX Columns
Every track has four dedicated FX columns appearing to the right of its note voices. Each column controls a specific effect — you type only the parameter value, no command codes needed.
VOL — Volume (2 characters)
Sets the track volume. 7F = full volume,
00 = silent. Persists until overwritten.
Example: 7F = full volume;
00 = mute.
PAN — Pan (2 characters)
Sets the stereo position. 00 = full left,
40 = centre, 7F = full right. Persists
until overwritten.
Example: 40 = centre;
00 = hard left.
BEND — Pitch Bend (4 characters)
Controls pitch bend in quarter tones
(half-semitones) for finer expression. Works the same regardless
of instrument type (sample or synth). Format: DDTT
where DD = duration in rows at the current zoom
level, TT = target bend (40 =
centre/no bend). Duration may exceed the pattern length.
Type 99 to instantly reset pitch bend to centre
(the second byte is ignored).
Example: 0840 = bend to centre
over 8 rows; 0842 = bend up 1 semitone over 8 rows;
1044 = bend up a whole tone over 16 rows;
99 = instant reset.
FADE — Volume Fade (4 characters)
Controls smooth volume fading as a separate multiplier
independent of the track volume knob. Format: SSEE
where SS = start volume, EE = end
volume. The fade always runs from the current row to the end of
the pattern. 00 = silent, 7F = current
volume (full).
Type 99 to instantly reset the fade multiplier
to full (the second byte is ignored).
Example: 7F00 = fade from full
to silence; 007F = fade from silence to full;
4000 = start at half volume, fade to silence;
99 = instant reset.
Entering Values
- Type hex characters (0–9, A–F) in sequence. VOL and PAN require 2 characters; BEND and FADE require 4.
- Press Delete to clear the FX cell.
Copy, Cut, and Paste
- Cmd+C — copy the selection or the cell at the cursor if no selection
- Cmd+X — cut the selection
- Cmd+V — paste at the cursor position
Moving Notes
- Alt + Arrow keys — move the note at the cursor or the entire selection in any direction
- Notes are lifted into a preview state. Press Enter to confirm the new position, or any other key to cancel and return them to the original position.
- Moving is blocked when a cell contains hidden notes at an incompatible zoom level (when the current zoom step does not evenly divide the hidden content’s zoom step). In this case, zoom in to a compatible level first. Incompatible zoom indicators are displayed in a different color to signal this.
- When moving horizontally, notes and FX values snap to the next compatible column. Voice columns can only move to other voice columns. FX columns move to FX columns of the same width: VOL and PAN (both 2-character, range 00–7F) are interchangeable, and BEND and FADE (both 4-character) are interchangeable. Moving between narrow and wide FX columns is not allowed.
Chord Mode
When the Chord dropdown is set to anything other than “Off”, each key press inserts a chord voicing instead of a single note. The chord intervals are derived from the currently active scale, so the same key naturally produces major, minor, diminished, or other chord qualities depending on the scale degree. The number of notes placed is limited by the track’s voice count.
Available chord voicings:
| Voicing | Scale degrees |
|---|---|
| Off | Single note (default) |
| Scale | 1, 2, 3, 4, 5, 6, 7 |
| Power | 1, 5, 8va-1, 8va-5 |
| Triad | 1, 5, 8va-1, 8va-3, 8va-5 |
| 1st Inv | 3, 5, 8va-1, 8va-3, 8va-5 |
| 2nd Inv | 5, 8va-1, 8va-3, 8va-5, 15ma-1 |
| Cluster | 1, 2, 3 |
| 6/9 | 1, 3, 5, 6, 9 |
| Shell | 1, 7, 8va-3 |
| Drop 2 | 1, 5, 7, 8va-3 |
| So What | 1, 4, 7, 8va-3, 8va-5 |
| Sus Spread | 1, 5, 8va-1, 8va-4, 15ma-3 |
| 7th Wide | 1, 5, 7, 8va-3, 8va-5 |
| 9th Wide | 1, 5, 7, 8va-3, 15ma-3 |
| Lush 13th | 1, 7, 8va-3, 8va-5, 15ma-3, 15ma-7 |
| Magic Spread | 1, 5, 8va-2, 8va-3, 15ma-1, 15ma-5 |
| Orchestral | 1, 5, 8va-1, 8va-3, 8va-5, 15ma-1, 15ma-3, 15ma-5 |
| Mega Quartal | 1, 4, 7, 8va-3, 8va-6, 15ma-2, 15ma-5, 22da-1 |
Writing / Preview Mode
The pattern editor has two modes, toggled with Tab:
- Writing (default) — notes are written to the pattern when you press note keys.
- Preview — note keys play audio but do not write to the pattern. Cursor movement, selection, editing, and playback still work normally.
The current mode is shown in the footer bar.
Playback
- Enter — start/stop playback from the beginning of the pattern
- Space — start/stop playback from the cursor position
- During playback, the grid highlights the current row and auto-scrolls to follow
- All editing, cursor movement, and selection are disabled during playback
Pattern Arranger
The arranger defines the playback order of your project. Toggle it with the ARRANGER button next to the ZOOM dropdown.
When active, the arranger replaces the pattern editor grid with a block-based view. Each track shows its pattern blocks as colored rectangles — the block height is proportional to the pattern duration (signature × bars).
The SIGNATURE and BARS header controls always edit the currently selected pattern. ZOOM is hidden while the arranger is open. Each track has its own independent arrangement — adding, deleting, or reordering blocks only affects that track.
Patterns
Click + at the bottom of a track column to add a new pattern to that track. New patterns inherit time signature, note value, and measures from the track’s active pattern.
- Click a pattern block — select it and load it into the editor
- Double-click — open the pattern in the editor (exits arranger mode)
Keyboard Controls
| Shortcut | Action |
|---|---|
| ↑ ↓ | Navigate between blocks in current track |
| ← → | Switch between tracks |
| Alt+↑ ↓ | Move selected block up or down |
| Delete | Remove block from arrangement |
Track Editor
Shows the settings for the currently selected track.
Basic Settings
- NAME — set the track name (text field)
- VOICES — set the number of polyphonic voices for this track. Each voice is a column in the pattern editor. Fewer voices means less CPU usage; more voices enable richer chords and polyphony.
- INSTRUMENT — choose between Sampler, Poly Synth, and Chip Synth. Sampler mode lets you load audio samples into a note grid. Poly Synth uses the built-in subtractive analog synthesizer. Chip Synth emulates classic chiptune waveforms.
See the Sampler, Poly Synth, and Chip Synth sections for mode-specific settings.
Sample & Multi Sample
Under active development. The information below is outdated.
Psikat provides two sample-based instrument modes: Sample for single-sample chromatic playback, and Multi Sample for a 21-cell keyboard-mapped multi-sample instrument.
Sample
Set a track’s mode to Sample to load a single audio file and play it chromatically across the keyboard. All note keys pitch the same sample up and down relative to its original key.
- Right-click the empty slot to load a
.wavfile - Once loaded, the waveform editor, loop controls, pitch, and glide controls appear
Pitch & Glide
| Parameter | Description |
|---|---|
| COARSE | Pitch adjustment in semitones |
| FINE | Fine-tune in cents |
| GLIDE | Portamento speed between notes |
Multi Sample
Set a track’s mode to Multi Sample for a 21-cell instrument mapped to the keyboard in a uniform layout:
Q W E R T Y U
A S D F G H J
Z X C V B N M
Each cell can hold an independent sample with its own volume, pan, and pitch settings. The keyboard keys map directly to cells — input modifiers (scale, chord, transpose) are bypassed.
Cell Grid
- Click a cell to select it — if the cell has a loaded sample, it plays back as a preview
- Shift+Click to select multiple cells (for batch loading)
- Right-click for context menu options:
- Load Samples — opens a file browser to load
.wavfiles into empty cells - Clear — removes the sample from the selected cell(s)
- Clear All — removes all loaded samples
- Load Samples — opens a file browser to load
Volume & Pan
Each Multi Sample cell has independent volume and stereo panning. These controls appear when a cell with a loaded sample is selected.
| Parameter | Description |
|---|---|
| LEVEL | Per-cell sample playback volume |
| PAN | Per-cell stereo position (0 = hard left, 0.5 = center, 1 = hard right) |
Pitch
Each cell has independent pitch offset controls.
| Parameter | Description |
|---|---|
| COARSE | Pitch adjustment in semitones |
| FINE | Fine-tune in cents |
Input Restrictions
When a Multi Sample track is selected:
- Scale, chord, arpeggio, octave, and transpose modifiers are disabled and greyed out in the Input Panel
- Only Skip remains active
- Note transposing (semitone/octave shift shortcuts) is disabled to prevent cell misalignment
- Notes entered in other instruments transfer seamlessly — the
audio engine maps pitch to cells using
pitch % 21
Synthesizer
When a track’s mode is set to Synth, it uses a built-in dual-oscillator hybrid synthesizer instead of sample playback. The signal chain is: OSC 1 + OSC 2 → Mix (Sub, Noise, FM) → SVF Filter → Amp, with an LFO and ADSR envelope for modulation, and a stereo chorus effect at the output.
Presets
A PRESET dropdown at the top of the synth controls provides a selection of built-in patches. Selecting a preset overwrites all synth parameters with the preset’s values. After loading a preset you can freely tweak any parameter.
All continuous parameters are presented as horizontal faders that can be dragged, and each shows a numeric readout that can also be typed into directly. Double-click a fader to reset it to its midpoint.
Pitch & Glide
| Parameter | Description |
|---|---|
| GLIDE | Portamento speed. At 0 there is no glide. Higher values produce a slower, more gradual slide |
| RANGE | Octave range: 16’, 8’, or 4’ |
| COARSE | Pitch offset in semitones. Shifts all notes up or down by the specified number of semitones |
| FINE | Fine pitch offset in cents |
OSC 1
The first oscillator — one of the two primary sound sources.
| Parameter | Description |
|---|---|
| WAVE | Waveform shape: SAW, PULSE, TRI, or NOISE |
| DUTY | Pulse width (only audible with the Pulse waveform). 0.5 is a square wave |
| LEVEL | Output level of OSC 1 in the mix |
OSC 2
The second oscillator. Can be detuned relative to OSC 1 for thicker sounds or used as an FM modulation source.
| Parameter | Description |
|---|---|
| WAVE | Waveform shape: SAW, PULSE, TRI, or NOISE |
| DUTY | Pulse width |
| LEVEL | Output level of OSC 2 in the mix |
| COARSE | Pitch offset in semitones relative to OSC 1 (−24 to +24) |
| FINE | Fine pitch offset relative to OSC 1 (−1 to +1 semitones) |
Mix
Controls for additional oscillator sources and inter-oscillator modulation.
| Parameter | Description |
|---|---|
| SUB | Level of the sub-oscillator (one octave below OSC 1) |
| NOISE | Level of white noise mixed into the output |
| FM | Amount of frequency modulation from OSC 2 → OSC 1. Creates metallic, bell-like timbres |
Filter
A state-variable filter (SVF) for tonal shaping.
| Parameter | Description |
|---|---|
| MODE | Filter type: LP (low-pass), BP (band-pass), or HP (high-pass) |
| FREQ | Cutoff frequency. Lower values produce a darker, more muffled sound |
| RES | Resonance. Boosts frequencies around the cutoff |
| ENV | Amount of envelope modulation applied to the cutoff |
| KYBD | Keyboard tracking. At higher values, the cutoff follows the pitch of the note being played, keeping brightness consistent |
Amp
Controls the output volume of the synth voice.
| Parameter | Description |
|---|---|
| LEVEL | Output volume of the synth voice |
| MODE | ENV shapes the volume with the ADSR envelope. GATE holds the volume at full level for the entire duration of the note |
ENV
The ADSR envelope generator. It shapes how a note evolves over time and is used by the filter and optionally the amp.
| Parameter | Description |
|---|---|
| A (Attack) | Time for the envelope to rise from zero to full level after a note is triggered |
| D (Decay) | Time for the envelope to fall from full level to the sustain level |
| S (Sustain) | Level the envelope holds at while the note is held |
| R (Release) | Time for the envelope to fall from the sustain level to zero after the note is released |
LFO
A triangle-wave Low Frequency Oscillator used to modulate other parameters.
| Parameter | Description |
|---|---|
| RATE | LFO speed |
| PITCH | Amount of pitch modulation from the LFO |
| DUTY | Amount of pulse width modulation from the LFO |
| FILTER | Amount of LFO modulation applied to the filter cutoff |
| START | Time (in seconds) before the LFO fades in after a note is triggered. At 0 the LFO is immediately active |
Chorus
A stereo chorus effect applied at the output of the synth voice. Adds width and movement to the sound.
| Setting | Description |
|---|---|
| OFF | No chorus |
| I | Subtle chorus with a slower modulation rate and lighter depth |
| II | Deeper, more dramatic chorus with a faster rate and wider stereo spread |
Mixer
Shows a channel strip for each track, a master strip, and inline master effects.
Channel Strip
Each strip contains (top to bottom):
| Element | Description |
|---|---|
| Channel number | Highlighted when the track is active |
| Oscilloscope | A small real-time waveform display showing the audio output for that channel |
| Pan slider | Drag horizontally to pan left/right. Double-click to reset to center |
| M (Mute) | Mute the channel. Click again to unmute |
| S (Solo) | Solo the channel. Click again to unsolo |
| Volume fader | Drag vertically to adjust volume. A tick mark shows 0 dB. Double-click to reset |
| dB readout | Shows the current volume in dB. Can also be dragged to adjust |
Clicking anywhere on a channel strip selects it as the active track - also selects it in the pattern editor and track editor.
Master Strip
A dedicated strip at the right end of the mixer, labeled MASTER:
| Element | Description |
|---|---|
| Pan slider | Drag horizontally to pan the master output left/right. Double-click to reset to center |
| M (Mute) | Mute the master output. Click again to unmute |
| FX | Ensures the mixer panel is visible. Lit when master effects are enabled |
| Volume fader | Drag vertically to adjust master volume (same as the header dB readout). A tick mark shows 0 dB. Double-click to reset |
| dB readout | Shows the current master volume in dB. Can also be dragged to adjust |
Master Effects
Below the channel strips, three master bus effects are shown inline:
- MASTER EQ — A 9-band graphic equalizer. Click the header to toggle on/off.
- PURRIFIER — A multiband compressor with LOW, MID, HIGH, and WDT knobs. Master bus only. Click the header to toggle on/off.
- MASTER COMPRESSOR — A feed-forward compressor with THR, RAT, ATK, REL, KNEE, and GAIN knobs on one line. Click the header to toggle on/off.
See Effects for full documentation of each effect.
Effects
Per-channel effects are available on every track. The master bus has EQ, Purrifier, and Compressor accessible via the MASTER FX tab in the mixer.
Each effect can be toggled via their header button. When disabled, it is fully bypassed with zero CPU overhead.
Distortion
A multi-mode distortion effect with optional frequency-band targeting.
| Parameter | Values | Default | Description |
|---|---|---|---|
| MODE | DIST, SAT, CRUSH, FOLD | DIST | Distortion algorithm (see below) |
| DRIVE | 0–100% | 0% | Distortion intensity |
| TARGET | ALL, LOW, MID, HIGH | ALL | Frequency band to apply distortion to |
Modes:
- DIST — Hard clipping distortion
- SAT — Tape/tube-style soft saturation (tanh waveshaping)
- CRUSH — Bit crusher (reduces both bit depth and sample rate)
- FOLD — Foldback distortion (wave folding via sine function)
TARGET isolates a frequency band using crossover filters (300 Hz low/mid, 3 kHz mid/high). Only the selected band is distorted; the rest passes through unchanged.
EQ
A 9-band graphic equalizer with vertical faders. Each fader controls a fixed frequency band with ±12 dB gain range. Double-click a fader to reset it to 0 dB (flat).
| Band | Frequency | Type |
|---|---|---|
| 1 | 60 Hz | Low Shelf |
| 2 | 150 Hz | Peaking |
| 3 | 400 Hz | Peaking |
| 4 | 800 Hz | Peaking |
| 5 | 1.5 kHz | Peaking |
| 6 | 3 kHz | Peaking |
| 7 | 5 kHz | Peaking |
| 8 | 8 kHz | Peaking |
| 9 | 12 kHz | High Shelf |
The lowest band (60 Hz) is a low shelf filter that also affects frequencies below it. The highest band (12 kHz) is a high shelf filter that also affects frequencies above it. All other bands are peaking (bell) filters centered at their frequency.
Purrifier
A multiband compressor available on the master bus only. Splits the signal into three frequency bands (below 300 Hz, 300 Hz – 3 kHz, 3 kHz and above) and applies upward and downward compression to each band independently. Quiet details are lifted and peaks are controlled, giving a polished, loud, clear sound similar to OTT-style multiband compression.
| Parameter | Range | Default | Description |
|---|---|---|---|
| LOW | 0–100% | 50% | Compression amount for the low band (below 300 Hz) |
| MID | 0–100% | 50% | Compression amount for the mid band (300 Hz – 3 kHz) |
| HIGH | 0–100% | 50% | Compression amount for the high band (3 kHz and up) |
| WDT | 0–100% | 50% | Stereo width — 50% is unchanged, higher is wider |
The WDT control uses mid/side processing on the mid and high bands to widen or narrow the stereo image. The low band is left untouched for mono-safe bass. This technique is fully mono-compatible — collapsing to mono perfectly cancels any added width.
Compressor
A feed-forward compressor/limiter with soft-knee support.
| Parameter | Range | Default | Description |
|---|---|---|---|
| THR | -40 to 0 dB | -12 dB | Threshold — level above which compression starts |
| RAT | 1:1 to 20:1 | 4:1 | Ratio — amount of gain reduction |
| ATK | 0.1–100 ms | 5 ms | Attack — how fast compression responds |
| REL | 10–500 ms | 100 ms | Release — how fast compression releases |
| KNEE | 0–12 dB | 6 dB | Knee — transition width around the threshold |
| GAIN | 0–24 dB | 0 dB | Makeup gain — compensate for gain reduction |
For limiter-style behavior, set a high ratio (20:1) with a fast attack (0.1 ms).
Delay
A stereo delay with tempo sync, modulation, and feedback filtering.
| Parameter | Range | Default | Description |
|---|---|---|---|
| MIX | 0–100% | 30% | Dry/wet balance |
| RPT | 0–95% | 40% | Feedback — how much of the delayed signal is fed back |
| MOD | 0–100% | 0% | Modulation — pitch drift on each repeat |
| LO | 20–8000 Hz | 20 Hz | High-pass filter on the feedback path |
| HI | 200–20000 Hz | 12 kHz | Low-pass filter on the feedback path |
| TIME | Subdivision list | 1/8 | Tempo-synced subdivision or FREE for manual time |
| MS | 1–1000 ms | 250 ms | Manual delay time (only visible when TIME = FREE) |
| PING-PONG | On/Off | Off | Alternates repeats between L and R channels |
The TIME dropdown offers subdivisions from 1/32 to 1/4, including dotted and triplet variants. Selecting FREE reveals the MS slider for manual delay time in milliseconds.
Keyboard Shortcuts
Under active development. The information below is outdated.
Global
| Shortcut | Action |
|---|---|
| Enter | Play/stop from the beginning of the pattern |
| Space | Play/stop from the cursor position |
| Tab | Toggle Writing / Preview mode |
| Escape | Clear selection, stop playback, or quit |
| Cmd+Z | Undo |
| Cmd+Shift+Z | Redo |
| Cmd+K | Toggle piano keyboard |
| Cmd+I | Toggle instrument panel |
| Cmd+M | Toggle mixer panel |
| Cmd+F | Toggle master FX panel (disabled for now) |
Edit
| Shortcut | Action |
|---|---|
| ↑ ↓ ← → | Move cursor |
| Shift + ↑ ↓ ← → | Select / extend selection |
| Alt + ↑ ↓ ← → | Move note or selection |
| Delete / Backspace | Clear note at cursor or selection |
| Shift + Backspace | Clear all voices on current row in current track |
| * (Backslash) | Insert note-off marker |
| Shift + * | Insert note-off on all voices of current track row |
| Cmd+C | Copy |
| Cmd+X | Cut |
| Cmd+V | Paste |
| Cmd+A | Select all (track first, then whole pattern) |
| Cmd + ↑ | Transpose note(s) up by 1 octave |
| Cmd + ↓ | Transpose note(s) down by 1 octave |
| Cmd + → | Transpose note(s) up by 1 semitone |
| Cmd + ← | Transpose note(s) down by 1 semitone |
| Shift+Cmd + ↑ | Raise input octave by 1 |
| Shift+Cmd + ↓ | Lower input octave by 1 |
| Shift+Cmd + → | Raise input transpose by 1 semitone |
| Shift+Cmd + ← | Lower input transpose by 1 semitone |
| Cmd+0–8 | Set skip value (0–8) |
Arranger
When the Pattern Arranger is open, these shortcuts apply:
| Shortcut | Action |
|---|---|
| ↑ ↓ | Navigate between blocks in current track |
| ← → | Switch between tracks |
| Alt+↑ ↓ | Move selected block up or down |
| Delete | Remove block from arrangement |
Notes
| Row | Keys |
|---|---|
| Lowest | Z X C V B N M , |
| Middle | A S D F G H J K L |
| Highest | Q W E R T Y U I O P |
The 27 note keys span the active scale. The actual pitches depend on the selected scale, octave, and transpose settings.
| Shortcut | Action |
|---|---|
| . | Insert note-off marker at cursor |
| Shift + . | Insert note-off on all voices of current track row |
When a Multi Sample track is selected, scale, chord, octave, and transpose modifiers are bypassed — keys map directly to cells. Note transpose shortcuts (Cmd+Arrows) are also disabled.
Reference Tables
Hex Number Reference
All FX column values in Psikat are entered in hexadecimal (base 16). This table covers the most commonly needed values.
Decimal to Hex (0–127)
| Dec | Hex | Dec | Hex | Dec | Hex | Dec | Hex |
|---|---|---|---|---|---|---|---|
| 0 | 00 | 32 | 20 | 64 | 40 | 96 | 60 |
| 1 | 01 | 33 | 21 | 65 | 41 | 97 | 61 |
| 2 | 02 | 34 | 22 | 66 | 42 | 98 | 62 |
| 3 | 03 | 35 | 23 | 67 | 43 | 99 | 63 |
| 4 | 04 | 36 | 24 | 68 | 44 | 100 | 64 |
| 5 | 05 | 37 | 25 | 69 | 45 | 101 | 65 |
| 6 | 06 | 38 | 26 | 70 | 46 | 102 | 66 |
| 7 | 07 | 39 | 27 | 71 | 47 | 103 | 67 |
| 8 | 08 | 40 | 28 | 72 | 48 | 104 | 68 |
| 9 | 09 | 41 | 29 | 73 | 49 | 105 | 69 |
| 10 | 0A | 42 | 2A | 74 | 4A | 106 | 6A |
| 11 | 0B | 43 | 2B | 75 | 4B | 107 | 6B |
| 12 | 0C | 44 | 2C | 76 | 4C | 108 | 6C |
| 13 | 0D | 45 | 2D | 77 | 4D | 109 | 6D |
| 14 | 0E | 46 | 2E | 78 | 4E | 110 | 6E |
| 15 | 0F | 47 | 2F | 79 | 4F | 111 | 6F |
| 16 | 10 | 48 | 30 | 80 | 50 | 112 | 70 |
| 17 | 11 | 49 | 31 | 81 | 51 | 113 | 71 |
| 18 | 12 | 50 | 32 | 82 | 52 | 114 | 72 |
| 19 | 13 | 51 | 33 | 83 | 53 | 115 | 73 |
| 20 | 14 | 52 | 34 | 84 | 54 | 116 | 74 |
| 21 | 15 | 53 | 35 | 85 | 55 | 117 | 75 |
| 22 | 16 | 54 | 36 | 86 | 56 | 118 | 76 |
| 23 | 17 | 55 | 37 | 87 | 57 | 119 | 77 |
| 24 | 18 | 56 | 38 | 88 | 58 | 120 | 78 |
| 25 | 19 | 57 | 39 | 89 | 59 | 121 | 79 |
| 26 | 1A | 58 | 3A | 90 | 5A | 122 | 7A |
| 27 | 1B | 59 | 3B | 91 | 5B | 123 | 7B |
| 28 | 1C | 60 | 3C | 92 | 5C | 124 | 7C |
| 29 | 1D | 61 | 3D | 93 | 5D | 125 | 7D |
| 30 | 1E | 62 | 3E | 94 | 5E | 126 | 7E |
| 31 | 1F | 63 | 3F | 95 | 5F | 127 | 7F |
Quick Reference
| Value | Hex | Use |
|---|---|---|
| 0 | 00 | Minimum / Silent |
| 32 | 20 | Quarter |
| 64 | 40 | Half / Centre |
| 96 | 60 | Three quarters |
| 100 | 64 | ~78% |
| 127 | 7F | Maximum / Full |
BEND Column Reference
Pitch bend uses quarter tones
(half-semitones). The target byte 40 (hex) = no
bend (centre). Values above 40 bend up; values
below bend down.
Semitone Bend Values
Since 1 semitone = 2 quarter tones, here are the common musical intervals:
| Interval | Quarter tones | Decimal | Hex |
|---|---|---|---|
| −12 semitones (octave down) | −24 | 64 − 24 = 40 | 28 |
| −7 semitones (fifth down) | −14 | 64 − 14 = 50 | 32 |
| −5 semitones (fourth down) | −10 | 64 − 10 = 54 | 36 |
| −3 semitones (minor third down) | −6 | 64 − 6 = 58 | 3A |
| −2 semitones (whole tone down) | −4 | 64 − 4 = 60 | 3C |
| −1 semitone (half step down) | −2 | 64 − 2 = 62 | 3E |
| No bend (centre) | 0 | 64 | 40 |
| +1 semitone (half step up) | +2 | 64 + 2 = 66 | 42 |
| +2 semitones (whole tone up) | +4 | 64 + 4 = 68 | 44 |
| +3 semitones (minor third up) | +6 | 64 + 6 = 70 | 46 |
| +5 semitones (fourth up) | +10 | 64 + 10 = 74 | 4A |
| +7 semitones (fifth up) | +14 | 64 + 14 = 78 | 4E |
| +12 semitones (octave up) | +24 | 64 + 24 = 88 | 58 |
Note: Since bend is in quarter tones, you can also reach pitches between semitones. For example, target
41bends up by one quarter tone — halfway between two adjacent notes.
BEND Examples
| BEND value | Meaning |
|---|---|
0840 |
Bend to centre (no change) over 8 rows — useful as a reset-over-time |
0842 |
Bend up 1 semitone over 8 rows |
1044 |
Bend up a whole tone over 16 rows |
083E |
Bend down 1 semitone over 8 rows |
043C |
Bend down a whole tone over 4 rows |
1058 |
Bend up an octave over 16 rows |
0428 |
Bend down an octave over 4 rows (dramatic drop) |
2041 |
Slow quarter-tone bend up over 32 rows (subtle detuning) |
99 |
Instantly reset pitch bend to centre |
FADE Column Reference
The FADE column uses SSEE format: start
volume → end volume, fading from the current row to the
end of the pattern. Both bytes use 00 = silent,
7F = full volume.
Volume Level Values
| Volume | Hex | Approximate level |
|---|---|---|
| 0% | 00 | Silent |
| 25% | 20 | Quiet |
| 50% | 40 | Half volume |
| 75% | 60 | Loud |
| 100% | 7F | Full volume |
FADE Examples
| FADE value | Meaning |
|---|---|
7F00 |
Fade from full volume to silence (fade out) |
007F |
Fade from silence to full volume (fade in) |
7F40 |
Fade from full to half volume |
407F |
Fade from half to full volume (swell) |
0000 |
Instantly mute (both values are silent, takes effect immediately at pattern end) |
7F7F |
Full volume throughout (no change) |
2060 |
Gradual rise from quiet to loud |
6020 |
Gradual fall from loud to quiet |
99 |
Instantly reset fade multiplier to full volume |
Tip: The fade duration is always from the row where you place the command to the last row of the pattern. Place it earlier for a slower fade, later for a faster one.