| Function | Transmitted | Recognized | Remarks |
|---|---|---|---|
| Basic Channel | |||
| Default | 1 | 1 | MPE: manager ch 1 |
| Changed | 1–16 | 1–16 | |
| Mode | |||
| Default | Mode 3 | Mode 3 | |
| Messages | × | Mode 3, 4 | Mode 4 = MPE |
| Altered | |||
| Note Number | |||
| True Voice | × | 0–127 | |
| 24–108 | Musically useful range | ||
| Velocity | |||
| Note On | × | ○ | VCA gain + filter offset |
| Note Off | × | ○ | MPE lift velocity |
| After Touch | |||
| Key's (poly) | × | ○ | Per-note: filter, VCA, osc mode |
| Ch's (channel) | × | ○ | Configurable target |
| Pitch Bend | × | ○ | Per-ch in MPE; SC clock ratio |
| Control Change | |||
| 1 Mod Wheel | × | ○ | LFO depth |
| 7 Volume | × | ○ | |
| 10 Pan | × | ○ | 64 = center |
| 64 Sustain | × | ○ | On manager ch (MPE) |
| 71 Resonance | × | ○ | SC block capacitor ratio |
| 74 Brightness / Slide | × | ○ | MPE: osc mode morph |
| 91 Reverb Send | × | ○ | If external FX present |
| 120 All Sound Off | × | ○ | Immediate silence |
| 123 All Notes Off | × | ○ | Respects sustain pedal |
| Program Change | × | ○ | Stored presets |
| System Exclusive | ○ | ○ | Mfr ID: 0x7D (dev) / TBD |
| System Common | |||
| Song Position | × | × | |
| Song Select | × | × | |
| Tune Request | × | × | |
| System Real Time | |||
| Clock | × | ○ | LFO sync to external clock |
| Start / Stop | × | ○ | Sequencer transport |
| Aux Messages | |||
| Local On/Off | × | × | No internal keyboard |
| All Notes Off | × | ○ | CC 123 |
| Active Sensing | × | ○ | Monitors for 300 ms timeout |
| System Reset | × | ○ | Returns to power-on state |
| Identity Reply | ○ | × | Universal SysEx (Phase 1+) |
| Command | Byte | Direction | Description |
|---|---|---|---|
| Version Query | 01 | Host → Timbre | Request firmware version |
| Version Reply | 02 | Timbre → Host | ASCII version string |
| Patch Dump Req | 10 | Host → Timbre | Request stored patch |
| Patch Dump | 11 | Either | Complete patch state |
| Patch Load | 12 | Host → Timbre | Write patch to storage |
| Param Get | 20 | Host → Timbre | Query single parameter |
| Param Set | 21 | Host → Timbre | Set single parameter |
| Param Reply | 22 | Timbre → Host | Response to Param Get |
| Voice Arch Query | 30 | Host → Timbre | Query voice topology |
| Voice Arch Reply | 31 | Timbre → Host | SC block config map |
| Diag Reg Read | 40 | Host → Timbre | Read PSoC register |
| Diag Reg Reply | 41 | Timbre → Host | Register contents |
| Diag Reg Write | 42 | Host → Timbre | Write PSoC register |
| Descriptor | Value | Notes |
|---|---|---|
| idVendor | 0x303A | Espressif Systems (dev); production PID via allocation |
| idProduct | TBD | Phase 3 |
| iManufacturer | "Tonifex" | |
| iProduct | "Timbre" | Appears in DAW MIDI preferences |
| bcdDevice | YYMM | Date-based firmware version |
| bDeviceClass | 0x01 Audio | |
| bDeviceSubClass | 0x03 MIDI Streaming | Class-compliant, no driver |
| Configuration | Manager | Members | Use Case |
|---|---|---|---|
| Full lower zone (default) | Ch 1 | 2–16 (15) | Single controller, full MPE |
| Split — lower + upper | 1, 16 | 2–8, 9–15 | Two controllers / split |
| Lower zone — reduced | Ch 1 | 2–5 (4) | Phase 2 prototype |
| Standard MIDI | — | 1–16 | Legacy / multi-timbral |
| Default MCM Sequence (Lower Zone, 15 members) | |
|---|---|
B0 65 00 | CC#101 = 0 (RPN MSB) on ch 1 |
B0 64 06 | CC#100 = 6 (RPN LSB) on ch 1 |
B0 06 0F | CC#6 = 15 (Data Entry) on ch 1 |
| Stage | USB | DIN | Notes |
|---|---|---|---|
| Transport | ≤1 ms | ~1 ms | USB host poll / DIN serial |
| ESP32 MIDI parse | ~50 µs | ~50 µs | Running buffer, channel routing |
| Voice allocation | ~10 µs | ~10 µs | Round-robin / lowest-available |
| I2C write | ~200 µs | ~200 µs | 8 bytes @ 400 kHz Fast Mode |
| PSoC register apply | <12 µs | <12 µs | Analog block config propagation |
| SC settling | ~100 µs | ~100 µs | Switched-cap filter steady state |
| Total (single voice) | ~1.3 ms | ~1.4 ms | Well under 3 ms threshold |