Back to All Articles

MIDI Pitch Bend

Note: work in progress. Page content incomplete.

MIDI Pitch Bend range:

       bend down    center      bend up
    0 |<----------- |8192| ----------->| 16384
-8192                   0                 8191   

Pitch Bend sensitivity

https://rolisupport.freshdesk.com/support/solutions/articles/36000028378-setting-the-ideal-pitch-bend-range http://www.2writers.com/eddie/TutNrpn.htm http://www.dosguys.com/RA-guitar/!!Pitch Bend Sensitivity, Bend Range, SysEx--Chart.htm

(a.k.a. Pitch Bend Range)

http://www.moforte.com/geoShredAssets2.0/help/pitchBendRange.html http://www.moforte.com/geoShredAssets2.0/help/midi.html

The MIDI Specification supports pitch bend ranges up to 24 max, and the current MPE proposal extends this to 96 meaning +/- 96 semitones

Pitch Wheel Change (aka pitch bend) is a 14 bit controller, with values ranging from 0 to 16383. It is treated like an signed 14 bit integer. No pitch bend means pitch bend = 8192, the smallest pitch bend is 0 and the largest is 16383.

pitchBendValuesPerSemitone = 8192/Pitch Bend Range

The sender and receiver will both use pitchBendValuesPerSemitone based on this calculation.

The MPE proposal calls out 48 as the default Pitch Bend Range. The Geo Shred MIDI preset Record-Playback uses this range as well since its channel mode is MPE

Sensitivity of Pitch Bend Change is selected in the receiver. It can also be set by the receiver or transmitted via Registered Parameter number 00 00.

Pitch Bend Sensitivity is defined as Registered Parameter Number 00 00. The MSB of Data Entry represents the sensitivity in semitones and the LSB of Data Entry represents the sensitivity in cents.

For example, a value of MSB=01, LSB=00 means +/- one semitone (a total range of two semitones).

Pitch Bend sensitivity is set manually at the receiving device, or by use of the Registered Parameter Number (RPN) 00 00 controller message.

Pitch Bend Sensitivity is configured with RPN 00,00 :

Pitch bend calculation

Min = -8192
Center = 0
Max = 8191

                                  8192
pitchBendValuesPerSemitone = ----------------
                             Pitch Bend Range


                                    rangeOfWhammySlider
bendInSemitones = bendInSemitones * -------------------
                                      pitchBendRange

Example 1:

range = 12

This means +/- 12 semitones = +/-1 octave

                             8192
pitchBendValuesPerSemitone = ---- = 682.67
                              12

Bending 1 octave up or down would modulate the value by +8191 or -8191.

Exemple 2:

range = 48

This means +/-48 semitones = +/-4 octaves

                             8192
pitchBendValuesPerSemitone = ---- = 170.67
                              48

Bending 1 octave up or down would modulate the value by +2048 or -2048.

© StudioCode.dev - Made with 11ty and tailwindcss.