Documentation Index
Fetch the complete documentation index at: https://docs.sampler.meiji.industries/llms.txt
Use this file to discover all available pages before exploring further.
MIDI implementation
Meiji Sampler’s MIDI surface covers control mapping, a live monitor, and optional transport response.
Control identification
Each MIDI control is uniquely identified by three properties:
| Property | Range | Description |
|---|
| Channel | 1-16 | MIDI channel |
| Message type | CC or Note | ControlChange or NoteOn |
| Number | 0-127 | CC number or note number |
A CC on channel 1 number 60 and a Note on channel 1 number 60 are treated as two separate controls.
Mapping behavior
Mappings are one-to-one in both directions:
- One control maps to at most one action.
- One action maps to at most one control.
When you assign a control that already has a mapping, the old action is replaced. When you assign an action that is already mapped to a different control, the old control’s mapping is removed. Both cases show a confirmation dialog before replacing.
Mappings are persisted in the settings file and survive app restarts.
Mappable actions
Transport
| Action | Description |
|---|
| Play/Stop | Follow the focused row’s Space behavior. Pads stops pad or preview audio first, Loops starts cued or armed transport unless loops are already playing, and Scenes uses the selected scene’s play/cue/stop flow. |
| Record/Overdub | Toggle recording or punch into overdub on the currently selected loop slot. |
Pads
| Action | Description |
|---|
| Pad 1-0 | Trigger the pad sample. If no sample is assigned, opens the source selection modal. Also selects the channel. |
| Pad N Chop 1-0 | Trigger a specific chop slice on the pad. Enters chop mode and plays from the chop marker. |
Pad slots use display numbering 1-9 then 0 (matching the keyboard number row).
Loops
| Action | Description |
|---|
| Loop 1-0 Trigger | Same behavior as pressing the slot’s number key on the loops row. Empty slots arm, idle stopped slots cue, idle cued slots stop, playing slots queue STOP+, and STOP+ slots stop immediately. |
| Loop 1-0 Mute | Toggle mute on the loop slot. If any layers are muted, unmutes all first. |
| Loop 1-0 Solo | Toggle solo on the loop slot. If already soloed, un-solos all. |
| Loop 1-0 Undo | Undo the most recent loop edit. Note: undo is global, not scoped to the targeted slot. The slot number controls which slot gets UI focus. |
| Loop 1-0 Clear | Clear all recorded content from the loop slot. |
Scenes
| Action | Description |
|---|
| Scene 1-0 Trigger | Activate the scene (same behavior as pressing the slot’s number key on the scenes row). |
| Scene 1-0 Cue | Cue the scene using the Space-style scene behavior. |
| Scene Stop | Stop the currently active scene. If a stop is already queued, executes immediately. |
Mixer
| Action | Description |
|---|
| Channel 1-0 Mute | Toggle mute on a mixer channel. |
These actions are available when the PerformFX feature is enabled.
| Action | Description |
|---|
| FX Slot 1-N | Trigger the PerformFX binding at the given slot position. |
| Bank Toggle | Switch between PerformFX banks. |
| Kill All FX | Kill all active PerformFX effects. |
MIDI learn flow phases
The learn flow has four phases:
| Phase | What happens |
|---|
| Listening | Waiting for a MIDI control movement. Shows existing mappings. |
| Confirm Reassign | The moved control already has a mapping. Enter to proceed, Esc to cancel. |
| Assigning | Hierarchical menu for choosing an action. Navigate with Up/Down/Enter/Esc. |
| Confirm Overwrite | The chosen action is already mapped to a different control. Enter to replace, Esc to go back. |
MIDI tab shortcuts
Mappings sub-view (Listening phase)
| Key | Action |
|---|
Up and Down | Navigate mapping list |
Enter | Edit selected mapping |
Delete or Backspace | Remove selected mapping |
Esc | Leave MIDI tab |
Mappings sub-view (Assigning phase)
| Key | Action |
|---|
Up and Down | Navigate menu |
Enter | Drill into category or confirm action |
Esc | Go up one menu level, or return to Listening from the top level |
Delete or Backspace | Remove this control’s mapping and return to Listening |
Shift+Delete | Clear all mappings and return to Listening |
Sub-tab navigation
| Key | Action |
|---|
Left and Right | Switch between Mappings and Monitor sub-views |
MIDI transport
The settings include a transport_enabled toggle. When disabled, transport messages are visible in the monitor but do not trigger transport behavior.
Monitor coverage
The MIDI monitor displays all incoming MIDI events, not just mapping-eligible ones.
Visible message types:
- Note Off, Note On, Poly Pressure
- Control Change, Program Change, Channel Pressure, Pitch Bend
- Clock, Start, Stop, Continue
- Active Sensing, SysEx, Unknown
Clock and Active Sensing generate high message volume and can flood the display. Use monitor filters to suppress them unless diagnosing a sync problem.
Route allowlist
MIDI mappings only fire on routes where triggering a mapped action is safe. The allowlist is:
| Route | MIDI allowed | Reason |
|---|
| Pads row | yes | main sampler view |
| Loops row | yes | main sampler view |
| Scenes row | yes | main sampler view |
| Channel Detail | yes | channel overlay — no unsaved state |
| Channel Chop | yes | chop overlay — no unsaved state |
| Help overlay | yes | read-only; note that pad actions dismiss Help |
| All other modals | no | stateful UI could be silently dismissed |
| All other views | no | stateful UI could be silently dismissed |
New modal or view variants added to the codebase are blocked by default. New Channel variants require an explicit allow or block decision at compile time.
If a MIDI mapping does nothing, check whether the current view is on this allowlist. See MIDI And Sync Problems for more.
Current caution
The public marketing copy still describes MIDI controller support as emerging. Use this page as the implementation reference, not as a promise of broader DAW-style MIDI coverage.
Related pages