Skip to main content

MIDI and external gear

Meiji Sampler lets you map physical MIDI controls — knobs, faders, pads, keys — to actions inside the app. Once mapped, a MIDI control behaves exactly like pressing the equivalent keyboard shortcut.

MPC musical input, output and timing

On the native MPC, hold [SHIFT] and press [PAD 8] for MIDI CONFIG. Use [DATA] to scroll the fields and [−] / [+] to change them. All routing opt-ins default Off and persist when changed. Choose musical input/output ports explicitly; panel Control Surface ports, duplicate identities and same-endpoint feedback routes are refused. A unique ALSA device can reconnect after its client number changes, retaining its endpoint number. To play an external instrument, assign a sample to a pad, select the output and enable Output. Channel 10/base note 36 maps PAD 1 to note 36 and PAD 16 to note 51. Confirmed live, sequence and SONG audio hits send the hit velocity. Deferred decode/stretch/stem completion sends only after playback starts; empty, cancelled, failed or sequence-masked hits send nothing. Generated MIDI notes use a fixed 50 ms gate, independent of audio duration. This does not add held-sample gates or an empty-pad MIDI-only sequence editor. Input, transport/program messages and Thru are independent choices. Input plays the existing one-shot/loop samples. Programs 0–15 select or cue sequences 1–16. Thru forwards validated channel messages unchanged, preserving channel and velocity; it never forwards panel SysEx or realtime clock/transport. External input does not also generate mapped output, even after count-in or warmup. A Thru-held pitch owns that pitch until release, so an overlapping short generated gate cannot cut it off. Avoid external cable/software feedback loops too. For clock output, set a project BPM and select Master. It sends 24 pulses per quarter, Start on a new Play and Stop when transport stops. [SHIFT+PLAY] pauses and continues a validated saved phase; ordinary Stop clears it. Port/clock changes, faults and lost identity stop timing safely. After reconnect, restart the clock source. Releases and sustain-off/All Notes Off are attempted on stop, replacement and shutdown; cable loss can still require the instrument’s local panic. For external timing, select an input and Follower. A stable 24-interval window must arrive before playback joins the external pulse phase, skipping elapsed notes. Initial acquisition is silent and takes one quarter note (one minute at 1 BPM). Every F8 reanchors the existing audio scheduler; Continue requires an unchanged preserved sequence/scene phase. Unknown/stale phase refuses visibly. Native local Play and manual tempo changes yield to the external owner. Invalid rate, timeout or overflow stops transport; queue overflow needs a configuration change to rearm. This does not provide Song Position Pointer or MTC. Physical USB/TRS drift, jitter, replug and receiver acceptance remain to be measured. Physical SYNC OUT currently inventories read-only candidates and refuses pulse output until its actual interface, polarity and timing are proven. MIDI Clock is not proof that the TS Sync socket works. See the exact MIDI timing and recovery rules and MIDI troubleshooting.

When to use MIDI mapping

Use MIDI mapping when you want to:
  • trigger pads and chop slices from a drum pad controller
  • control loops or scenes from hardware buttons
  • mute, solo, or clear loops hands-free during a live set
  • control transport and recording from a foot switch or pad
  • trigger PerformFX slots from a controller
  • trigger normal keyboard shortcuts from a controller pad
You do not need MIDI mapping to use Meiji Sampler. The keyboard workflow is complete on its own. MIDI mapping adds a physical control layer on top.

The mapping model

Mappings support multiple controls for the same action:
  • One MIDI control maps to at most one action.
  • Multiple MIDI controls can map to one action, including the same keyboard key. For example, two controllers can both trigger Pad 1 without replacing each other.
If you move a control that is already mapped, Meiji Sampler selects the existing mapping row and shows already mapped. Press [ENTER] on that row to edit the mapping. Choosing an action assigned to another control adds a mapping without changing the other control. Settings > MIDI > Mapping lists one row per control, grouped by action. Each row keeps its own behavior, threshold, and invert settings. Press [DEL] to remove only the selected control’s mapping. The action picker shows the assigned control when there is one, or a count such as [2 controls] when several share the action. Manual MIDI Learn mappings apply to every device sending the same channel, message type, and number. Controllers sending an identical control identity share that mapping; they do not need separate rows. Device-specific automap assignments remain scoped to their device and take precedence over a matching global mapping. Mappings are saved to your settings file and persist across sessions.

MIDI Settings

Press [TAB] to access Settings, then expand MIDI in the sidebar.
  • Mapping: the MIDI learn workflow for creating and managing mappings
  • Devices: detected input devices, manual rescan, and device-scoped automap
  • Transport: MIDI transport response
  • Monitor: a live display of all incoming MIDI events

Connect a device during a session

After connecting or reconnecting a USB MIDI controller, open Settings → MIDI → Devices and press [R] to activate [RESCAN]. The shortcut works from either pane. Discovery runs in the background while existing input connections stay active. Repeated presses share the current scan. When the scan finishes, the device list updates and new inputs are available to MIDI Mapping and Monitor without restarting. Disconnected inputs disappear from the list; saved mappings remain unchanged. Select a device and press [ENTER] or [A] for automap. The empty list shows No MIDI input devices found. followed by Press [r] to rescan MIDI devices. If a scan reports unavailable inputs, check the USB connection and other software using the controller, then rescan. See MIDI and sync problems.

Creating a mapping

The Mappings sub-view opens in the Listening phase. This is a two-column layout showing existing mappings (Trigger on the left, Function on the right) with an animated spinner prompting you to move a control.

Step 1: Move a control on your MIDI device

Turn a knob, push a fader, or press a pad on your connected MIDI controller. Meiji Sampler detects the control and transitions to the Assigning phase. If the control you moved already has a mapping, Meiji Sampler stays in the Listening phase, selects that mapping row, and briefly shows already mapped. Press Enter on the selected row to edit it, or move a different unmapped control to create a new mapping.

Step 2: Choose an action from the menu

The Assigning phase shows a hierarchical menu on the right side. Navigate with Up and Down, drill into categories with Enter, and go back with Esc. The top-level categories are: Drill into a category, then a slot, then an action. For example: Loops > Loop 3 > Mute. The Perform category lists every fixed Bank A slot first, then every fixed Bank B slot, then named FX Library presets. Use bank-specific slot entries when you want a controller pad to target the same PerformFX slot no matter which bank is currently selected on screen. Use FX Library: <preset name> entries when you want a controller pad to trigger that built-in or custom library item directly with its current preset settings. Leaf items in the menu show [ENTER] and [MIDI] hints when highlighted. Press [ENTER] to assign the highlighted action, or move the same MIDI control again to assign it from the controller. Leaf items also show any existing MIDI mapping dimmed next to them, so you can see what is already assigned.

Mapping a keypress

Choose Keypress, then press the keyboard key you want the MIDI control to replay. For example, map a controller pad to 1, b, [M], r, p, [SPACE], [ESC], or a function key. When you trigger that MIDI control later, Meiji Sampler sends the captured key through the normal keyboard handler. The result is context-sensitive in the same way as the real keypress. Letter keys are case-preserved, so [m] and [M] can map to different shortcuts. Esc is captured as [ESC] in keypress capture; press Ctrl+Esc if you need to cancel keypress capture instead. Modifier combinations such as Ctrl+S and Shift+1 are not part of this version.

Step 3: Confirm

Press [ENTER] on a leaf action to assign the mapping. You can also press or move the same MIDI control a second time while the leaf action is highlighted. Other controls assigned to that action stay mapped. After saving, the Listening list selects the row for the control you just assigned.

Step 4: Choose how the control fires the action (CC only)

When you map a CC control (a knob or fader) to an action that can hold state — a loop slot, mixer mute, transport, scene slot, PerformFX slot, or PerformFX FX Library preset — Meiji Sampler shows a Behavior step before saving. Two modes are available:
  • Gate (default for faders mapped to play/stop-style actions). High value turns the action on, low value turns it off. A fader mapped to Loop 1 as Gate plays the loop when you push the fader up and stops it when you pull it down. A CC mapped to a PerformFX Hold slot holds the effect while the value stays high and releases it when the value falls below the threshold.
  • Trigger. Fires once each time the value crosses upward through the threshold. Use this for one-shots like pads or scene cues, or when you want a fader to act like a button.
Both modes have:
  • Threshold — the value that separates “high” from “low” (default 64). Press Left and Right to adjust by 1; hold Shift to step by 10.
  • Invert — flip which end is “on” and which is “off”. Press I to toggle. Useful for faders that you want to control upside-down.
Press Enter to save the behavior. Press Esc to back up to the action picker. Press G or T to switch between Gate and Trigger directly. For Note triggers, Keypress targets, and one-shot CC targets (pads, scene cues, kill-all, etc.), the Behavior step is skipped because there is only one sensible behavior: fire once on rising edge. Note releases are still forwarded, so a pad controller mapped to a PerformFX Hold slot releases the effect when you lift the pad. You can still customize threshold or invert later by pressing B on the mapping in the list.

Step 5: See it on the list

After assignment, the status bar confirms the mapping (for example, CC 21 ch 1 -> Loop 3 Mute [GATE@64]) and the view returns to Listening, ready for the next mapping. The Behavior is shown as a small chip in the Trigger column next to the control name ([GATE@64], [GATE@90 INV], [TRIG@64], etc.). Notes and legacy mappings show no chip. For trigger actions, the next assignment auto-advances to the next matching target. Pad trigger 1 advances to Pad trigger 2, Loop trigger 1 advances to Loop trigger 2, Scene trigger 1 advances to Scene trigger 2, and Pad Chop 1 advances to the next chop on the same pad. The final target stays selected when there is no next slot. This makes batch pad setup fast: choose the first hardware pad, select Pads > Pad 1 > Play Sample, then press that hardware pad again to confirm. After that, double-tap each next hardware pad to map Pad 2, Pad 3, and so on through Pad 0.

Editing an existing mapping

In the Listening phase, use Up and Down to highlight an existing mapping in the list, then press Enter to reassign it. The Assigning menu opens with the current action’s category pre-selected. Press B on an existing mapping to jump straight to the Behavior step for that mapping — change Gate/Trigger, threshold, or invert without re-picking the action.

Deleting mappings

Delete a single mapping

In the Listening phase, highlight a mapping with Up and Down, then press Delete or Backspace to remove it. You can also delete during the Assigning phase: press Delete or Backspace to remove the mapping for the control you just moved and return to Listening.

Clear all mappings

During the Assigning phase, press Shift+Delete to remove every mapping at once. This returns to Listening with an empty mapping list.

Leaving the MIDI tab

Press Esc from the Listening phase to close the MIDI tab and return to the Create tab.

External routing

To route audio between Meiji Sampler and a DAW, use a loopback driver:
  • BlackHole (macOS)
  • Soundflower (macOS)

Where MIDI mappings work

Direct app-action mappings respond in the main sampler views and in channel overlays:
  • Pads, Loops, Scenes rows: direct mappings fire normally
  • Channel Detail and Chop views: direct mappings continue to work while you inspect a channel or chop a sample, so you can trigger pads or control transport without leaving the overlay
  • Help overlay: direct mappings still fire (note: triggering a pad action dismisses Help as a side-effect)
Direct app-action mappings are blocked in stateful modals and views (Settings, Bounce, Trim, MIDI Learn, Search, etc.) to prevent mapped actions from silently dismissing work-in-progress UI. Keypress mappings are different. After the MIDI control is resolved, Meiji Sampler sends the captured key through the normal keyboard handler. That means a mapped 1, Space, r, or function key follows the active context, including the Trim/chop editor. The MIDI Mapping assignment page still blocks mapped-controller actions while it is learning a control.

DJ hardware and PerformFX

The bundled DDJ-REV7 profile routes deck A to hardware channels 1/2 and deck B to 3/4. PerformFX stays in Meiji Sampler before those output pairs: commands are mirrored to one synchronized effect bus per deck, while the focused deck supplies the live post-pitch BPM and signed beatgrid position for effect timing. The controller’s physical EQ, channel faders, crossfader, microphone or auxiliary inputs, and master section remain downstream and are not software PerformFX targets.

Good use cases today

  • trigger pads from a controller
  • trigger keyboard shortcuts from controller pads
  • control loops or scenes from hardware
  • keep triggering mapped pads while inspecting Channel Detail or chopping a sample
  • monitor incoming MIDI while setting mappings
  • let external transport messages control session playback when explicitly enabled