MIDI

Ultimately, the entire purpose of this application.

MIDIpad outputs on two virtual MIDI devices that're open the whole time the app is running:

  • MIDIpad Chords - the strummed instrument. MPE by default, with three other configurations; the channel layout is below.
  • MIDIpad Drums - the drums. Four General MIDI percussion notes, on one channel or one per drum with expression - see Drums below.

It sends notes and expression only, with no audio, clock or transport. There's also one input, MIDIpad in, which takes a MIDI clock, its Start and Stop, and the automation CCs listed in App settings - see Following your DAW's clock.

Chords

Chords channels, on the MIDI tab of the Chords panel, picks one of four configurations.

ModeChannelCarries
MPE1Master channel (zone-wide messages)
2 - 7The six strings, lowest to highest - one channel per string
Multi-channel1 - 6The six strings, lowest to highest, each movable to any channel from 1 to 16
Poly aftertouch1Everything
Single channel1Everything

There are three ways to use it in your DAW:

  • As one instrument: treat all the channels as one instrument.
  • With MPE: enable MPE on the receiving track or synth to get each string as an independent voice with its own expression.
  • One track per string: six tracks, each filtered to one channel, one instrument per string, with per-string expression and no MPE support needed. Multi-channel is the mode built for this, and its String channels boxes let you move any string to any channel; strings on the same channel are combined.

MPE details

Under MPE, when the port opens (and whenever the setting returns to MPE), MIDIpad announces a standard MPE lower zone (MPE Configuration Message: RPN 6 on channel 1, seven member channels) followed by pitch-bend sensitivity (RPN 0): ±48 semitones on member channels, ±2 on the master. The other three modes announce nothing.

If your synth connected after the port opened and it's misreading bends, re-select the input or re-open the project, and it'll read the configuration again.

Per-note messages

Under MPE and Multi-channel, each string's channel carries:

MessageMeaning
Note On / Note OffThe pluck and its release, with velocity from how fast you moved
Channel PressureThe string's live Energy - its level as it decays, and whatever a shake adds to it. Sent just before each Note On, so each new note starts at the right level
CC74The string's Timbre as an absolute value. It starts at 64 and goes up from there
Pitch BendReset to centre before every Note On. MIDIpad does not bend pitch

On the two single-channel modes, channel 1 carries:

MessagePoly aftertouchSingle channel
Note On / Note OffEvery string's, with velocityEvery string's, with velocity
Poly Key PressureEach note's Energy, keyed to the note-
Channel Pressure-The loudest string's Energy
CC74The brightest string's TimbreThe brightest string's Timbre
Pitch Bend--

CC74 is an absolute value and doesn't start at 0. A patch that treats CC74 as an additive timbre offset will sound permanently half-open. Map it as a position, which is what an MPE synth expects anyway.

Tilt and keyswitches

These go out on channel 1, and under Multi-channel on every channel a string is using:

MessageWhen
Control Change, CC 1 by defaultTilt, when it's on: 0 with the pad flat, up to 127 at the Tilt engage angle
Note On / Note Off, or a Control ChangeA keyswitch zone, once as the control moves into it

Drums

DrumNoteGM instrument
Kick36Bass Drum 1
Snare38Acoustic Snare
Hi-hat42Closed Hi-Hat
Open hi-hat46Open Hi-Hat

The face buttons and the right stick both play the kick's note, the d-pad and the backbeat both play the snare's, and the hi-hat always uses either the closed or the open note.

Drums channels, on the MIDI tab of the Drums panel, sets how they're sent, with the same options as Chords except Poly aftertouch. MPE - the default - gives each drum its own channel behind a master, announces a three-member zone when the port opens (and whenever the setting returns to MPE), and sends how far you're pushing the control that plays it alongside the notes:

ChannelCarries
1Master channel (zone-wide messages)
2Kick, with its slide and pressure
3Snare, with its slide and pressure
4Hi-hat and open hi-hat, with the hi-hat's pressure and slide
ControlDrumSends
Left stickHi-hatPressure
Left triggerHi-hatSlide (CC74) - how open
Right stickKickSlide and pressure, both
Right triggerSnareSlide and pressure, both

Each value is how far the control is pushed or pulled, from 0 to 127, and is sent for as long as you hold it. Drums with one control send the same value as both slide and pressure.

Multi-channel is the same one-drum-per-channel layout without the master and with nothing announced: the kick on 1, the snare on 2, the hi-hats on 3, each with its slide and pressure. One track per channel, no MPE needed anywhere.

Single channel puts everything on channel 1, notes and velocity only.

On a Sony pad the touchpad is a crossfader on CC 16 unless you change it, channel 1 in every mode: 0 at the left edge to 127 at the right, absolute. Clicking the left, middle or right third sets it to 0, 64 or 127 until you lift your finger. See The crossfader.

Also on channel 1 in every mode, when they're on:

MessageWhat it is
CC 20 · 21 · 22 · 23The Density, Rate, Velocity and Drive signals
CC 1Tilt: 0 with the pad flat, up to 127 at the Tilt engage angle

All of these CC numbers, and the four notes, can be changed. See Drum notes and channels.

Following your DAW's clock

The MIDIpad in port accepts a standard MIDI clock. While one is arriving, Drums follows it, and the Tempo field in the header shows the clock's tempo, with a green dot to show it's following. See Tempo and time signature.

Panic

On quit, and whenever the output settings change, MIDIpad releases everything it has sounding and follows it with All Notes Off on every channel it touched. Instrument → All Notes Off (⌘.) does the same on demand, across both ports. It also sends sustain off (CC64 at 0) on all sixteen channels of the Chords port when the port opens and on every panic, so a held sustain in a clip can't hang the strings.