MIDI Pitch Bend

Pitch Bend is a continuous MIDI message that shifts the pitch of notes up or down in real time, typically sent by a pitch bend wheel, a joystick, or an expression pedal. Unlike note messages, which are quantized to semitones, pitch bend is continuous, enabling smooth slides, vibrato, and microtonal inflections.

The pitch bend value is transmitted as a 14-bit number, giving 16384 discrete steps — fine enough that the steps are inaudible. How many of those steps map to one semitone depends on the Pitch Bend Range (sensitivity) configured at the receiving device.

Pitch Bend Range

0 8192 16383 −8192 0 +8191 bend down bend up
Position Raw value Signed value Bytes (MSB, LSB)
Min 0 −8192 00h  00h
Center 8192 0 40h  00h
Max 16383 +8191 7Fh  7Fh

14-bit resolution (MSB + LSB). Value = 128 × MSB + LSB.

Pitch Bend Sensitivity

Also known as Pitch Bend Range or Pitch Wheel Change.

The MIDI specification supports pitch bend ranges up to ±24 semitones. The MPE specification extends this to ±96 semitones, with ±48 semitones as the default MPE range.

Sensitivity per range

pitch_bend_values_per_semitone = 8192 / pitch_bend_range
Range (semitones) Range (octaves) Values per semitone
±2±1/64096
±4±1/32048
±12±1682.67
±24±2341.33
±48±4170.67
±96±885.33

Instrument and controller configuration

Sensitivity is set manually at the receiving device, or via RPN 00 00.

Setting sensitivity via RPN

Pitch Bend Sensitivity can be configured remotely by sending RPN 00 00 (Registered Parameter Number, MSB 00h, LSB 00h) followed by a Data Entry message. The sequence consists of five Control Change messages on the target channel:

  1. Select the parameter: CC 101 (RPN MSB) and CC 100 (RPN LSB)
  2. Set the value: CC 6 (Data Entry MSB, in semitones) and CC 38 (Data Entry LSB, in cents)
  3. Deselect: CC 101 and CC 100 both set to 7Fh, to prevent stray Data Entry messages from changing the parameter later

Examples below use channel 1 (status byte B0h).

Set range to ±2 semitones (default for most synthesizers):

B0 65 00    CC 101 (RPN MSB)  : 00h     select RPN MSB ─┐
B0 64 00    CC 100 (RPN LSB)  : 00h     select RPN LSB ─┘ RPN 00 00 = Pitch Bend Sensitivity
B0 06 02    CC 6   (Data MSB) : 02h     2 semitones
B0 26 00    CC 38  (Data LSB) : 00h     0 cents
B0 65 7F    CC 101            : 7Fh  ─┐
B0 64 7F    CC 100            : 7Fh  ─┘ deselect parameter

Set range to ±12 semitones (±1 octave):

B0 65 00
B0 64 00
B0 06 0C    CC 6   (Data MSB) : 0Ch = 12 semitones
B0 26 00
B0 65 7F
B0 64 7F

Set range to ±48 semitones (MPE default):

B0 65 00
B0 64 00
B0 06 30    CC 6   (Data MSB) : 30h = 48 semitones
B0 26 00
B0 65 7F
B0 64 7F

To add a cent offset, set Data LSB (CC 38) accordingly: e.g. B0 26 32 (32h = 50 cents). Most devices ignore the cent value and respond only to the semitone MSB, but it should be transmitted for full compliance.

Concrete example: LinnStrument into Hydrasynth

The LinnStrument sends pitch bend when you slide a finger left or right across its grid. The Hydrasynth receives it and shifts the pitch accordingly. Both devices must be set to the same pitch bend range, otherwise slides go out of tune.

One-channel mode (non-MPE)

The LinnStrument defaults to ±2 semitones in one-channel mode. The Hydrasynth pitch bend range is configured per patch in Voice Parameters (page 2).

LinnStrument pitch bend range     : ±2 st
Hydrasynth patch pitch bend range : ±2 st

-> sliding across 2 grid columns = ±2 semitones

To extend the range for wider slides, increase both to the same value. ±12 semitones is a common choice.

MPE mode

In MPE mode (LinnStrument: hold ChPerNote for 1 second), the LinnStrument automatically switches to ±48 semitones. The Hydrasynth MPE per-note pitch bend is also ±48 semitones by default, so no manual matching is required.

LinnStrument pitch bend range : ±48 st  (MPE default)
Hydrasynth pitch bend range   : ±48 st  (MPE default)

-> sliding across  1 grid column  ≈ ±1 semitone
-> sliding across 12 grid columns = ±1 octave
-> sliding across 24 grid columns = ±2 octaves  (full row, large LinnStrument)

With a custom pitch bend range of ±24 semitones (matched to the LinnStrument's 24-column row length):

LinnStrument pitch bend range : ±24 st  (custom)
Hydrasynth pitch bend range   : ±24 st  (custom)

-> full row = maximum range, 341 values per semitone (vs 171 at ±48 st)

Note (Hydrasynth): In MPE mode, the Hydrasynth maintains a separate pitch bend range for the master channel, independent of the per-note member channel range. Check Voice Parameters page 2.