MIDI

Ultimately, the entire purpose of this application.

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

  • MIDIpad Chords - the strummed instrument, playing the strings or the Arp. MPE by default, or Single channel; the channel layout is below.
  • MIDIpad Drums - the drums, with the notes of the drum library you pick, on one channel or one per drum - see Drums below.
  • MIDIpad Bass - the bass that follows Chords - see Bass below.
  • MIDIpad Progression - the chords you play as block chords on the beat - see Progression below.

It sends notes and expression only, with no audio, clock or transport. There's also one input, MIDIpad Sync, which takes a MIDI clock and its Start, Continue and Stop - see Following your DAW's clock. It also takes notes on channel 1, and three hollow dots above a wedge on the chord wheel mark the chord they make. It expects block chords, like the ones MIDIpad Progression sends, so anything else may mark the wrong chord. Notes on other channels are ignored.

Channels

Instrument → Output, or Channels in Settings → App Settings, picks one of two configurations for Chords, Drums, Bass and Progression at once: MPE, the default, or Single channel. Changing it releases everything that's sounding first.

Chords

ModeChannelCarries
MPE1Master channel (zone-wide messages)
2 - 16Each note on a channel of its own
Single channel1Everything

The Arp plays on the same channels as the strings.

There are two 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 note as an independent voice with its own expression.

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, fifteen member channels) followed by pitch-bend sensitivity (RPN 0): ±48 semitones on member channels, ±2 on the master. Single channel announces nothing.

If your synth connected after the port opened and it's misreading bends, set Instrument → Output to another mode and back to MPE, and MIDIpad sends the configuration again.

Per-note messages

Under MPE, each note'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

Under Single channel, channel 1 carries every string's Note On and Note Off with velocity, one Channel Pressure that follows the loudest string's Energy, and one CC74 that follows the brightest string's Timbre.

Velocity, pressure and CC74 are fitted into the Velocity range in the instrument controls and the Pressure and Slide ranges in Settings → App Settings. Out of the box, velocity runs from 1 to 127, pressure from 0 to 127, and CC74 from 64 to 127.

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 sustain pedal

These go out on channel 1:

MessageWhen
CC11 (Expression)Tilt Sideways, when it's on: 0 up to the Tilt engage angle, rising to 127 at the Tilt range angle. Under Bipolar, 64 with the pad level, rising to 127 one way and falling to 0 the other
CC1 (mod wheel)Tilt Toward, when it's on, the same way
CC64The sustain pedal, when it's on: 127 down and 0 up

Drums

The notes come from the Keymap. With the default, General MIDI:

DrumNoteGM instrument
Kick36Bass Drum 1
Snare38Acoustic Snare
Closed hi-hat42Closed Hi-Hat
Pedal hi-hat44Pedal Hi-Hat
Open hi-hat46Open Hi-Hat
Left crash49Crash Cymbal 1
Right crash57Crash Cymbal 2
China52Chinese Cymbal
Ride51, bell 53, edge 59Ride Cymbal 1, Ride Bell, Ride Cymbal 2
Toms, high to low48, 47, 43, 41Hi-Mid Tom, Low-Mid Tom, High Floor Tom, Low Floor Tom

MPE - the default - gives each drum its own channel behind a master, and announces an eleven-member zone when the port opens (and whenever the setting returns to MPE):

ChannelCarries
1Master channel (zone-wide messages)
2Kick
3Snare
4Hi-hat, closed and pedal
5Open hi-hat
6Left crash
7Right crash and china
8Ride
9Rack tom 1
10Rack tom 2
11Floor tom 1
12Floor tom 2

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

Drums doesn't use channel 10, so set a drum track to listen on all channels.

Drums sends notes and velocity in every mode. With its tilt CCs on, it also sends CC11 and CC1 on channel 1, the same way as Chords, except with the EZdrummer 3, Addictive Drums 2 and Steven Slate Drums 5 keymaps.

Bass

Under MPE, MIDIpad Bass announces an MPE lower zone when it opens, the same way as Chords, with one member channel.

ChannelCarries
1Master channel
2The bass

Under Single channel, everything is on channel 1.

Each note carries channel pressure and CC74 from the strings, like a Chords string, fitted by the Pressure and Slide ranges. The Bass sends the Chords tilt CCs on its master channel when its Tilt CCs setting is on.

Progression

While the Progression is on, MIDIpad Progression sends each chord's notes together on a beat, and they end together at the next chord change. Velocity follows the Chords Velocity range.

ModeChannelCarries
MPE1Master channel
2 - 16Each note on a channel of its own
Single channel1Everything

Under MPE, it announces an MPE lower zone with fifteen member channels, the same way as Chords, before the first chord it sends. Each note carries channel pressure and CC74 from the string playing that note, or the nearest string when none does, fitted by the Pressure and Slide ranges, and pitch bend is reset to centre before each Note On. Under Single channel, one channel pressure follows the loudest note and one CC74 the brightest.

It sends no sustain pedal. With its Tilt CCs setting on, it also sends the Chords tilt CCs on channel 1.

Following your DAW's clock

The MIDIpad Sync port accepts a standard MIDI clock, with Start, Continue, Stop and Song Position Pointer. While a clock is arriving and your DAW is playing, Chords, Arp, Bass and Drums follow its tempo and position, and the Tempo field shows the clock's tempo, with a green dot to show it's following. When your DAW stops, the ringing strings and the Arp stop too. 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, on every port. 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. The Drums port sends channel pressure 0 on all sixteen channels at the same times, so a drum instrument can't hold on to an old pressure value.