A browser-based TR-8 companion: 11-track step sequencer, per-track synthesis, full MIDI I/O on configurable channels, MIDI clock sync, MIDI REC mode, and a persistent pattern library — designed to compose, store and transfer patterns directly to the Roland TR-8.
V1 · 2026 · Web Audio API · Web MIDI API · chilango.cl/SBI
Requirements
Browser: Google Chrome or Microsoft Edge. Both support the Web MIDI API. Firefox and Safari do not — the sequencer and audio still work, but no MIDI.
Audio: No additional hardware needed. All sounds are synthesized in real time via the Web Audio API — no samples, no downloads.
MIDI (optional): A USB-MIDI interface to connect the Roland TR-8 or any other MIDI gear.
Note
The first time you open HTR8ML with a MIDI device connected, Chrome will request MIDI access permission. Click Allow — without this, the MIDI port dropdowns will stay empty.
Interface overview
Block
Description
MIDI panel
Port selectors (In/Out), configurable MIDI channels for both In and Out, clock mode buttons, and connection status.
Pattern Library
Save, load, update, delete and search patterns. Export/import as JSON. Persists between sessions.
11 rows (one per TR-8 instrument), each with a knob panel + volume slider on the left and 32 steps on the right.
🥁 Sequencer & pads
Click any pad to toggle it on or off. Active pads light up in amber. The currently playing step flashes brighter.
The grid has 32 steps (two 16-step bars). Steps 17–32 are shown slightly dimmer to distinguish them from the first bar.
Every 4 steps (one beat) has a marked left border to help you keep your place visually.
⏱ Transport controls
Control
Function
▶ Play / ❚❚ Pause
Starts or stops playback. Also sends MIDI Start/Stop if clock mode is "Send". Spacebar works as a shortcut.
✕ Clear
Erases all active steps on all 11 tracks.
⧉ Dup 16→32
Copies steps 1–16 into steps 17–32, doubling the pattern length.
🔁 Loop: ON/OFF
When ON, the pattern loops continuously. When OFF, it plays once and stops — ideal for recording into the TR-8.
⏺ MIDI REC
Enables real-time MIDI step recording. See MIDI REC mode.
BPM
Sets tempo from 60 to 180 BPM. Disabled when clock mode is "Receive".
🎚 The 11 tracks
HTR8ML mirrors the exact 11-instrument layout of the Roland TR-8, using the same General MIDI note numbers. All sounds are synthesized — no samples.
Track
Full name
Note
Synthesis
BD
Bass Drum
36
Sine oscillator with fast pitch drop
SD
Snare Drum
38
Band-filtered noise + triangle tone layer
LT
Low Tom
43
Sine oscillator with pitch drop (low)
MT
Mid Tom
47
Sine oscillator with pitch drop (mid)
HT
Hi Tom
50
Sine oscillator with pitch drop (high)
RS
Rim Shot
37
Square wave click + high-pass noise burst
HC
Hand Clap
39
Three staggered layers of band-filtered noise
CH
Closed Hi-Hat
42
High-pass noise, short decay. Cuts the open HH.
OH
Open Hi-Hat
46
High-pass noise, long decay. Cut by closed HH.
CC
Crash Cymbal
49
Bright high-pass noise with peaking EQ, slow fade
RC
Ride Cymbal
51
Four detuned sine partials + subtle noise tail
Hi-Hat auto-mute
Triggering CH instantly cuts any ringing OH, and vice versa — just like a real hi-hat choke mechanism.
🎛 Knobs: Tune, Dur, Atk
Knob
Range
Scale
Effect
Tune
0.25x – 2x
Linear
Multiplies the sound's base frequency — pitch up or down.
Dur
20 ms – 1500 ms
Linear
Total duration of the sound envelope.
Atk
1 ms – 80 ms
Logarithmic
Time to reach peak volume from silence. Log scale for natural feel.
Drag up/down to adjust. Sensitivity is scaled to each knob's range.
Double-click to reset to the default value for that track.
Each knob shows its current value and its assigned CC number below.
Moving a knob sends the corresponding CC to the MIDI output in real time.
🔊 Per-track volume
Below the knobs on each track is a horizontal volume slider (0–100%), controlling that track's output level independently. A Master volume slider at the bottom scales all tracks together.
🔌 MIDI connection & channels
Connect your USB-MIDI interface (and Roland TR-8) before opening the page.
Open HTR8ML in Chrome or Edge and grant MIDI access when prompted.
Select your Input and Output ports from the dropdowns.
Set Ch In to match the channel your external device transmits on (default: 10).
Set Ch Out to match the channel your external device receives on (default: 10).
Important
MIDI In and Out channels are independently configurable (1–16 each). HTR8ML works with any device regardless of MIDI channel — not just channel 10.
🎹 MIDI notes
HTR8ML uses the exact note mapping of the Roland TR-8 (General MIDI percussion standard).
Input: Any Note On on the configured In channel triggers that track's synthesized sound — and if MIDI REC is active, writes it into the current step.
Output: Each active step sends a Note On/Off on the configured Out channel, so the TR-8 or any connected sound module plays in sync.
🎚 Control Change (CC)
All three knobs (Tune, Dur, Atk) for each track are mapped to MIDI CC numbers starting at CC 16:
Track
Tune CC
Dur CC
Atk CC
BD
16
17
18
SD
19
20
21
LT
22
23
24
MT
25
26
27
HT
28
29
30
RS
31
32
33
HC
34
35
36
CH
37
38
39
OH
40
41
42
CC
43
44
45
RC
46
47
48
Input: Incoming CC on the In channel updates the corresponding knob on screen and affects the sound in real time.
Output: Moving a knob sends the CC (0–127) to the output port immediately.
⏱ MIDI Clock
Mode
Behavior
Interno
HTR8ML uses its own BPM. No clock messages sent or received.
Enviar
HTR8ML is the clock master. Sends 24 ppqn + Start/Stop to the output port.
Recibir (TR-8 master)
HTR8ML follows an external clock. BPM slider disabled. Incoming Start/Stop controls playback. Recommended when TR-8 is your master clock.
Important
Switching clock mode while playing automatically stops the sequencer. Press Play again after switching.
⏺ MIDI REC mode
MIDI REC lets you program patterns by playing a pad controller or the TR-8 pads in real time while the sequencer runs.
Press ▶ Play (Loop ON recommended for multiple passes).
Press ⏺ MIDI REC — the button turns red.
Play notes on your controller on the configured In channel. Each Note On writes a step into the current sequencer position for the matching track.
Pads light up in the grid as you record.
Press ⏺ MIDI REC again to stop recording.
Tip
MIDI REC works in all clock modes, including "Recibir" with the TR-8 as master.
Note
MIDI REC only adds steps — it does not erase existing ones. Press ✕ Clear before recording to start fresh.
📂 Pattern Library
The library stores your patterns persistently between sessions (browser storage). Each pattern saves the full 32-step grid, BPM, and all knob and volume settings.
Saving
Type a name and press 💾 Guardar to save as new, or ↺ Update on an existing entry to overwrite it.
Loading
Click ▶ Cargar. Restores the full grid, BPM and all knob settings. The active pattern is highlighted in amber.
Export / Import
⬇ Export — downloads the entire library as htr8ml_library.json.
⬆ Import — merges a JSON file into the current library. Duplicate IDs are skipped.
First launch
On first launch, HTR8ML automatically populates the library with four example patterns: Rock básico, Hip-hop, Funk and Latino — each with a suggested BPM.
🎛 TR-8 workflow: composing and transferring patterns
Recommended setup
TR-8 MIDI Out → interface → HTR8ML MIDI In
HTR8ML MIDI Out → interface → TR-8 MIDI In
Clock mode: Recibir (TR-8 master)
Ch In and Ch Out: both 10 (TR-8 default)
Composing
Set clock to Interno and compose freely using the step grid.
Use ⏺ MIDI REC + Play to record steps by playing the TR-8 pads or any MIDI controller.
Name and save the pattern to the library.
Transferring a pattern to the TR-8
Load the pattern from the library.
Set Loop: OFF — the sequencer will play exactly one pass and stop.
Set clock to Recibir (TR-8 master).
On the TR-8: select the destination pattern slot and enter TR-REC mode.
Press Play on the TR-8 — it sends clock start, HTR8ML begins transmitting Note On messages step by step.
After one full cycle, HTR8ML stops automatically.
Press Stop on the TR-8 to exit REC mode. The pattern is now stored in the TR-8's memory.
Key detail
The TR-8 does not support SysEx — there is no way to dump or restore its internal patterns digitally. HTR8ML works around this by acting as a real-time MIDI sequencer that "plays" the pattern into the TR-8's TR-REC mode, exactly as if you were playing it manually on the pads.
Tip
After transferring, disconnect HTR8ML and the TR-8 runs the pattern standalone. Build an entire repertoire in the library and load them into the TR-8 one by one before a session or gig.
🛟 Troubleshooting
No MIDI devices in the dropdowns
Make sure you clicked Allow when Chrome asked for MIDI access.
Connect your interface before opening or reloading the page.
Confirm you are using Chrome or Edge — Firefox and Safari don't support Web MIDI.
TR-8 not playing in sync
Only one device should be the clock master at a time.
Check that Ch Out in HTR8ML matches the channel the TR-8 listens on.
MIDI REC not writing steps
Confirm the sequencer is running (Play pressed) before activating MIDI REC.
Check that Ch In matches the channel your controller is transmitting on.
Knobs not responding to incoming CC
Confirm your controller is sending on the same channel set in Ch In.