What we can establish
A user reported successful live USB MIDI playback with a TD-3 while memory writing still failed. That report establishes a useful diagnostic split; it does not establish the cause of every transfer failure or a successful fix on that device.
The writer tests compare encoded bytes with an independently constructed packet, interpret its note pool, and exercise backup, confirmation, write, read-back and restore with simulated MIDI ports. They cover rests, accents, slides, bank boundaries, triplet mismatches and invalid input. They are software tests, not a physical TD-3 recording. We have not published a successful physical-device write and listening record for this release; direct writing remains experimental.
Why a verified write could previously play the wrong notes
TD-3 memory separates timing from its note pool. A rest occupies a timing step but no pitch, accent or slide entry. The previous writer left gaps in that pool, so notes after rests shifted; its decoder repeated the same mistake and could report a match. Version 2026.09.28.2 packs the sounding notes together and checks them against the visible timeline. It also resets the destination to sixteen straight steps instead of inheriting its old triplet setting.
The grid’s ○ is an outgoing legato connection: its own pitch still sounds. The writer now preserves that pitch and enables slide when the next step contains a note, matching the live MIDI connection rule, including the loop boundary. It does not translate ○ into TD-3 tie timing, which advances the pitch pool differently. An isolated ○ before a rest uses the hardware’s normal gate; its exact duration is not stored by this transfer format.
The two signal paths
| Path | What crosses USB | What success proves | What it does not prove |
|---|---|---|---|
| Live MIDI | Note on/off, velocity, clock and optional transport | The browser output and receive channel reach the synth engine | That TD-3 pattern memory can be read or written |
| Direct pattern transfer | Device-specific SysEx read/write messages | The selected slot can be backed up, encoded, written and read back | That the hardware patch will sound identical to the browser synth |
If live notes work but VERIFY USB / SYSEX fails, do not change the bass channel first. Channel matching belongs to live notes; memory transfer depends on the bidirectional SysEx port pair and a valid device reply.
The safe write sequence used by 303box
- Stop browser and MIDI playback so note traffic cannot overlap the transaction.
- Open the selected TD-3 MIDI input and output pair.
- Request device information. A timeout here is recorded, not mislabelled as an incompatible synth.
- Read the exact group, section and pattern slot selected on screen.
- Validate the reply and keep the original 123-byte pattern payload as a browser backup.
- Encode the sixteen steps only after every active pitch passes the memory-range check.
- Ask for explicit confirmation before sending the write message.
- Wait for memory commit, read the same slot again and compare the result.
BACKUP + WRITE takes longer than live playback because it is deliberately a read-before-write and read-after-write transaction, not a blind dump.
Why Base Octave 4 and 5 behave differently
For live MIDI, 303box maps C in Base Octaves 1–5 to standard MIDI note numbers 24, 36, 48, 60 and 72. Those values are sent directly without rewriting the browser’s MIDI output function.
| 303box octave | C sent live | Live playback | Direct TD-3 memory write |
|---|---|---|---|
| 1 | 24 | Sent as MIDI | Within the encoder range |
| 2 | 36 | Sent as MIDI | Within the encoder range |
| 3 | 48 | Sent as MIDI | Within the encoder range |
| 4 | 60 | Sent as normal MIDI | Outside the documented pattern field |
| 5 | 72 | Sent as normal MIDI | Outside the documented pattern field |
The reverse-engineered pattern format describes a stored pitch field of 0x00–0x2F, offset one octave below normal MIDI numbering. The old encoder silently clamped higher notes to 0x2F, making different high notes collapse onto one pitch. 303box now refuses that unsafe write and lists the steps that must be lowered. Nothing is written when this range check fails.
A reproducible sixteen-step transfer test
Use one controlled pattern before testing a complex line. Set Base Octave 2, enter the following active steps and leave the others as rests.
| Step | Note | Octave | Gate | Expression | Reason |
|---|---|---|---|---|---|
| 1 | C | 2 | Trigger | Accent | Clear start marker |
| 4 | G | 2 | Trigger | None | Audible pitch contrast |
| 7 | C | 3 | Trigger | Slide | Single octave transition |
| 8 | D# | 3 | Trigger | None | Slide destination |
| 11 | A# | 2 | Trigger | Accent | Second strong marker |
| 15 | G | 2 | Trigger | None | End-of-bar check |
First listen in BROWSER mode. Then use BROWSER + MIDI and confirm that the TD-3 follows the same pitch order. Finally run TEST READ (NO WRITE), VERIFY USB / SYSEX and BACKUP + WRITE. Changing only one layer at a time makes the first failing checkpoint visible.
Failure messages and the next useful action
| Status | Meaning | Next action |
|---|---|---|
| USB MIDI pair not found | The browser exposes no matching input/output pair | Reconnect USB, close other MIDI software, reload and select the new output |
| Product-name query timed out | The optional friendly-name reply did not arrive | Allow the exact pattern-read compatibility probe to continue |
| Hardware explicitly identifies as another product | A real reply contradicts the TD-3 profile | Stop and select the correct physical output |
| Pattern read timed out | Bidirectional SysEx did not complete | Check the input side and whether another application owns the port |
| Octave range warning | Active steps cannot be represented safely in TD-3 memory | Lower the listed steps to octaves 1–3; live MIDI may remain higher |
| Read-back mismatch | The committed slot differs from the encoded pattern | Restore the saved backup and do not repeat the write blindly |
Why the TD-3 does not sound identical to the browser
Pitch order can match while timbre does not. The browser preview and TD-3 use different synthesis paths. On the hardware, waveform, cutoff, resonance, envelope modulation, decay, accent response, tuning, distortion and the audio chain determine the result. Treat the browser as a structural audition of notes, rests and phrasing—not as a promise to reproduce the exact analog patch.
For a fair comparison, disable browser delay and distortion, use a simple TD-3 patch, compare one bar at the same tempo and listen first for note order and rests. Judge filter character only after the sequence itself matches.
Scope, limitations and sources
For a reviewable device test, record the date, exact model and firmware, browser and operating system, selected ports, group/section/slot, backup result and read-back comparison. Mark an unperformed step as “not tested.” An encoder accepting a note does not prove that a device stored it or sounded it correctly.
Firmware, port naming and browser permissions can differ. Use a disposable slot and keep a separate device backup. The direct-write protocol is reverse-engineered; the sources below describe different parts of the workflow.
- Behringer TD-3 Quick Start Guide — manufacturer USB/MIDI context.
- TD-3 MIDI implementation notes — independent reverse-engineered pattern fields.
- 303box writer tests — software validation with simulated replies.
- 303box MIDI & Hardware Guide — browser permissions, ports and channel matching.