MIDI
MIDI stands for Musical Instrument Digital Interface. It allows devices such as computers, synthesizers, effects and drum machines to exchange performance and control messages.
The P-1 can play multichannel Type 0 MIDI files alongside audio. MIDI carries instructions rather than sound, so connected equipment can be configured to respond only to the channels intended for it.
The Idoru software recognises MIDI files with the .mid extension. If your file uses .midi, rename the extension to .mid before importing it.
MIDI exported from Ableton Live
Section titled “MIDI exported from Ableton Live”Ableton Live exports MIDI with some limitations, including single-channel files and a fixed 120 BPM export in some workflows. Use a tool such as Reaper to combine individual clips, retain multiple channels and set the intended tempo before exporting a Type 0 MIDI file.
MIDI BPM
Section titled “MIDI BPM”Changing the song BPM on the P-1 does not change MIDI-file playback speed. A MIDI file contains its own tempo data, which the P-1 follows during playback. The song BPM is used before playback for the visual metronome.
MIDI clock
Section titled “MIDI clock”MIDI clock keeps connected devices in time. With Send MIDI Clock enabled, the P-1 sends a Start message when playback begins and then sends clock messages at regular intervals. Pause or stop sends Stop, and resuming a paused song sends Continue.
- For an audio-only song, firmware v3.27 generates MIDI clock from the song BPM.
- For a song containing a MIDI file, the P-1 follows the tempo embedded in that file during playback.
- Enable or disable outgoing clock under Settings → MIDI Settings → Send MIDI Clock.
- Enable incoming Start, Continue and Stop control under Settings → MIDI Settings → Receive MIDI Clock.
Controlling the P-1 via MIDI
Section titled “Controlling the P-1 via MIDI”Connect your controller or other MIDI source to the P-1 MIDI input. The remote-control channel is configurable under Settings → MIDI Settings → MIDI In Channel and defaults to channel 15. The controls below are normal incoming MIDI controls; internal P1 Sync messages are separate.
Setlist and song positions are numbered from 1. Firmware v3.27 supports setlist positions 1–10 and song positions 1–100; invalid combinations, including 0, are ignored. MIDI octave labels vary between controllers, so use the note number as the definitive reference.
Song and setlist selection
Section titled “Song and setlist selection”| MIDI message | Value | Action |
|---|---|---|
| CC 0 – Bank Select | Setlist position | Arms a setlist for the next CC 19, CC 20 or Program Change message. Nothing changes immediately. |
| CC 18 – Setlist Select | Setlist position | Immediately selects the setlist and defaults to song 1 without playing. |
| CC 19 – Select Song Without Playing | Song position | Selects a song in the current or armed setlist without starting playback. |
| CC 20 – Select and Play Song | Song position | Selects a song in the current or armed setlist and starts playback. |
| Program Change | Song position | Selects a song in the current or armed setlist and starts playback. |
| CC 21 – Previous Song | 127 | Moves the browse selection to the previous song. |
| CC 22 – Next Song | 127 | Moves the browse selection to the next song. |
To select setlist 2, song 10 with one controller button:
- Send CC 0 value 2, followed by CC 19 value 10 to select without playing.
- Send CC 0 value 2, followed by CC 20 value 10 to select and play.
- Send CC 0 value 2, followed by Program Change 10 to select and play using Program Change.
For cross-setlist selection without playing, CC 0 followed by CC 19 is recommended. CC 18 followed by CC 19 can be configured, but CC 18 immediately selects song 1 before CC 19 arrives. This can be less reliable while a setlist is loading or playback is transitioning.
Transport CC controls
Section titled “Transport CC controls”CC 23–26 are triggered using value 127.
| MIDI message | Action |
|---|---|
| CC 23 – Play / Pause | Starts playback when idle, pauses when playing, or resumes when paused. |
| CC 24 – Stop | Stops playback and returns the player to idle. |
| CC 25 – Forward Scrub | Toggles forward scrubbing on or off; send CC 25 again to end. |
| CC 26 – Backward Scrub | Toggles backward scrubbing on or off; send CC 26 again to end. |
| CC 28 – Virtual PLAY footswitch | Values 1–127 press the switch and value 0 releases it. Short and long presses follow the selected Control System. |
MIDI Note controls
Section titled “MIDI Note controls”Most actions occur on Note On. Note Off is required to end note-controlled scrubbing and to release the virtual PLAY footswitch.
| Note number | Common label | Note On action | Note Off action |
|---|---|---|---|
| 24 | C1 | Previous song | Ignored |
| 26 | D1 | Next song | Ignored |
| 28 | E1 | Play, pause or resume | Ignored |
| 29 | F1 | Stop | Ignored |
| 31 | G1 | Previous setlist, wrapping from first to last | Ignored |
| 33 | A1 | Next setlist, wrapping from last to first | Ignored |
| 35 | B1 | Exit: returns the selection to the currently playing song, or song 1 when idle | Ignored |
| 36 | C2 | Begins forward scrubbing | Ends forward scrubbing |
| 37 | C♯2 | Begins backward scrubbing | Ends backward scrubbing |
| 38 | D2 | Presses the virtual PLAY footswitch | Releases the virtual PLAY footswitch |
For momentary scrubbing, configure the controller to send Note On 36 or 37 when pressed and a genuine Note Off message (0x80) for the same note when released. Some controllers send Note On with velocity 0 instead; the current P-1 parser does not interpret that as the scrub-release command. While scrubbing, most other incoming MIDI commands are ignored until scrubbing ends.
Output-level controls
Section titled “Output-level controls”| MIDI message | Controlled level |
|---|---|
| CC 9 | Headphone output |
| CC 85 | Output 1 |
| CC 86 | Output 2 |
| CC 87 | Output 3 |
| CC 88 | Output 4 |
| CC 89 | Output 5 |
| CC 90 | Output 6 |
Values 0–100 set the corresponding level. Values 101–127 are limited to 100. Linked stereo outputs move together. MIDI level changes affect the current session only and are not saved to the song or setlist.
Incoming real-time transport
Section titled “Incoming real-time transport”These messages only have an effect when Receive MIDI Clock is enabled.
| MIDI message | Hex value | Action |
|---|---|---|
| Start | FA | Starts playback when idle. When paused, restarts the browsed song from the beginning. |
| Continue | FB | Resumes when paused or starts playback when idle. |
| Stop | FC | Pauses playback when currently playing. |
Incoming MIDI Clock timing messages (F8) and Song Position Pointer (F2) are currently ignored.
Devices to control the P-1
Section titled “Devices to control the P-1”You can use any MIDI controller, app, instrument or sequencer that can send the messages above.
P1 Sync
Section titled “P1 Sync”P1 Sync links two P-1 units so one can mirror the other. Its internal traffic uses MIDI channel 16. When P1 Sync is set to Follower, channel 16 is reserved and cannot also be used for normal MIDI remote control. See P1 Sync for setup and operating details.
Sending MIDI System Exclusive messages from the P-1 is not currently supported.