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
| 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/6 | 4096 | default for most synthesizers |
| ±4 | ±1/3 | 2048 | |
| ±12 | ±1 | 682.67 | |
| ±24 | ±2 | 341.33 | |
| ±48 | ±4 | 170.67 | default for MPE |
| ±96 | ±8 | 85.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 always consists
of five Control Change messages on the target channel:
- Select the parameter with CC 101 (RPN MSB) and CC 100 (RPN LSB) (2 messages)
- Set the value with CC 6 (Data Entry MSB, in semitones) and CC 38 (Data Entry LSB, in cents) (2 messages)
- Then immediately deselect the active RPN with CC 101 + CC 100 both set to
7Fhto prevent stray Data Entry messages from accidentally changing the parameter later.
For all examples below, messages are sent on 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, common for one-channel expressive play):
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, for example ±2 semitones and 50 cents, set the Data LSB (CC 38)
accordingly: B0 26 32 (32h = 50).
Most devices ignore the cent value and respond only to the semitone MSB, but it should be transmitted regardless 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 of the playing voice 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, matching the expectation of most standard synthesizer presets. The Hydrasynth pitch bend range is configured per patch in Voice Parameters (page 2), and must be set to the same value.
LinnStrument pitch bend range : ±2 st
Hydrasynth patch pitch bend range : ±2 st
-> sliding across 2 grid columns = ±2 semitones
This is safe for compatibility but limits slides to a single whole tone in either direction. To extend the range for wider slides, increase both settings to the same value. ±12 semitones is a common choice for one-channel play.
MPE mode
In MPE mode (LinnStrument: hold ChPerNote for 1 second), the LinnStrument automatically switches to ±48 semitones, the MPE default. The Hydrasynth MPE per-note pitch bend is also ±48 semitones by default, so no manual matching is required when both devices use their MPE defaults.
With default MPE pitch bend range :
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 octaves
-> sliding across 24 grid columns = ±2 octaves (full row of the large LinnStrument)
With a custom pitch bend range matched to the LinnStrument row length :
The length of each row in the large LinnStrument model is 24 grid columns.
LinnStrument pitch bend range : ±24 st (custom)
Hydrasynth pitch bend range : ±24 st (custom)
-> sliding across 1 grid column ≈ ±1 semitone
-> sliding across 12 grid columns = ±1 octaves
-> sliding across 24 grid columns = ±2 octaves (full row = maximum range)
The key difference: with the default MPE range of ±48 semitones, a full LinnStrument row covers only half the available pitch bend range, leaving headroom for wider slides beyond the row boundary. With a custom range of ±24 semitones, the full row uses the entire range, one column maps exactly to one semitone, and sliding off the row end reaches the maximum bend value, and the pitch resolution doubles (341 values per semitone instead of 171), resulting in smoother, more precise slides.
Note (Hydrasynth): In MPE mode, the Hydrasynth maintains a separate pitch bend range for the master channel (global bend, e.g. from the pitch wheel), independent of the per-note member channel range configured above. Check Voice Parameters page 2 for its value.