-
Notifications
You must be signed in to change notification settings - Fork 0
Interface Instrument Creation
The instrument management interface is the central hub for registering, configuring, and fine-tuning every MIDI device connected to Général Midi Boop.

Source files: public/js/features/InstrumentManagementPage.js, public/js/features/InstrumentSettingsModal.js, public/js/features/InstrumentCapabilitiesModal.js.
Devices appear automatically when connected:
| Transport | How it appears |
|---|---|
| USB | Detected on plug-in via OS MIDI enumeration |
| Bluetooth LE | Requires BLE scanning (button in the device panel) |
| RTP-MIDI / Network | Requires Network scanning or manual IP entry |
| Serial UART | Auto-detected on configured UART ports |
If a device supports the GMBoop SysEx identity protocol it is automatically named and pre-configured on first connection — see Instrument-Developer-Guide.
Each device card shows:
- Display name (editable)
- Connection type badge
- Enable / disable toggle
- Active MIDI channels
- Compatibility score (from the last Auto-Assignment run)
Click the card to open the full settings modal.
| Field | Description |
|---|---|
| Display name | Free-text label shown everywhere in the UI |
| MIDI channel(s) | Which channels 1–16 this instrument listens on |
| Enable / disable | Excluded instruments are skipped during playback and auto-assignment |
Click "Edit capabilities" to open the Capabilities sub-modal:
| Field | Description |
|---|---|
| Instrument type | GM family (piano, guitar, bass, drums, …) — drives UI and adaptation logic |
| Sub-type | Specific voice within the family (e.g. acoustic grand, nylon guitar) |
| GM program | General MIDI program number 0–127 (0x7F = not applicable for drums) |
| Note selection mode | Range — contiguous from min to max; Discrete — explicit note list |
| Note range min / max | Lowest and highest playable MIDI note (0–127) |
| Polyphony | Maximum simultaneous notes the instrument can produce |
| Supported CCs | Control Change numbers the device responds to |
These values determine how MIDI files are adapted to the instrument. When the device sends a Block 6 SysEx response they are filled automatically (capabilities_source = 'sysex').
| Field | Description |
|---|---|
| Sync delay (ms) | Per-instrument playback offset applied automatically |
| Auto-calibrate | Opens the [[Interface-Microphone |
The system subtracts sync_delay from the note schedule so every device produces sound at the right moment regardless of its internal processing time.
For instruments of type guitar, bass, strings, or ethnic string types, an extra panel unlocks:
| Field | Description |
|---|---|
| Number of strings | Physical string count (1–6) |
| Number of frets | Fret count (0 = fretless) |
| Tuning | Open-string MIDI notes, lowest to highest |
| Capo fret | Capo position (0 = no capo) |
| Is fretless | Enables continuous pitch model |
| CC string / fret | CC numbers used to command string and fret selection on the hardware |
19 standard tuning presets are provided (guitar, bass, violin, ukulele, mandolin, …). When the device sends a Block 7 SysEx response this panel is filled automatically.
For automated pianos and motorised string instruments, the "Hand position" section enables the hand-planning subsystem. Full documentation: Interface-Hand-Management.
A single physical device (e.g. a Teensy with piano keys on channel 0 and a drum pad on channel 9) can host multiple virtual instruments. Use the "Add instrument" button inside the device card to register additional instruments on different channels. Block 5 SysEx auto-discovery populates this list automatically.
- A red badge on a device card means a required field (e.g. note range) is missing.
- The auto-assignment compatibility score turns orange below 70 and red below 40.
- Instruments with
enable = falseare grayed out and ignored by the playback engine.
- Hardware-Integration — transport-level connection instructions
- Auto-Assignment — use instrument capabilities to route channels automatically
- Interface-Hand-Management — configure hand-position planning
- Instrument-Developer-Guide — build a device that auto-configures via SysEx
Général Midi Boop · MIT License · Sources tracked in wiki/ — edits synced on push to main.
Getting Started
Interface — Pages & Modals
- Interface-Main-Page
- Interface-Instrument-Creation
- Interface-Virtual-Piano
- Interface-Loop-Manager
- Interface-Lighting-Control
- Interface-Playlist
- Interface-Microphone
- Interface-Settings
- Interface-Hand-Management
Core Concepts
Reference
Operations
Community