Build your own MIDI circuits
Frequently Asked Questions.
MIDI & Music
MIDI and Music Information
MIDI Pitch Bend


Pitch Bend


The Pitch Bend Change message is normally sent from a keyboard instrument in response to changes in position of the pitch bend wheel. The pitch bend information is used to modify the pitch of sounds being played on a given Channel. The Pitch Bend message includes two data bytes to specify the pitch bend value. Two bytes are required to allow fine enough resolution to make pitch changes resulting from movement of the pitch bend wheel seem to occur in a continuous manner rather than in steps.


The two bytes of the pitch bend message form a 14 bit number, 0 to 16383. The value 8192 (sent, LSB first, as 0x00 0x40), is centered, or "no pitch bend." The value 0 (0x00 0x00) means, "bend as low as possible," and, similarly, 16383 (0x7F 0x7F) is to "bend as high as possible." The exact range of the pitch bend is specific to the synthesizer. 




Realtime Parameter Number (RPN) Settings:

These messages specify which parameter is to be set by the following controller 6 (MSB) and 38 (LSB) data messages. 
For that reason, it is important to send a RPN reset message after use, so that any 'stray' data messages 
later in the song do not have undesirable effects.
Bn means a channel controller message on channel n, where n is 0 to F for channels 1 to 16.


Pitch Bend Range: 


RPN LSB = 0: Bn 64 00 
RPN MSB = 0: Bn 65 00 
Data MSB: Bn 06 mm (mm sets bend range in semitones. mm can be from 00 to 18 for 0 to 24 (+/- 12) semitones both up and down) 
Data LSB=0 (usually not required): Bn 26 00


So to set Pitch Bend Range to +/- 12 semitones:

HEX        ;  DECIMAL

Bn 65 00 ; 101  00 MSB

Bn 64 00 ; 100 00 LSB

Bn 06 18 ; 06 24 MSB

Bn 26 00 ; 38 00 LSB


RPN & NRPN Reset:

RPN LSB = 7F: Bn 64 7F 
RPN MSB = 7F: Bn 65 7F 

Send this alone (no data messages) immediately after all other RPN and NRPN messages have been sent.