MIDI Pitch Bend: Why Is the Next Clip Out of Tune?
A MIDI note can have the correct note number and still play bent if its channel retains an earlier pitch-bend value. Check the bend state before transposing the notes. On a duplicate, put an explicit center value on the receiving channel before the next note starts, then test again. Whether a host resets this state automatically depends on its settings and playback behavior.
After converting audio to a MIDI draft, a later phrase sounding wrong does not by itself prove that every detected pitch is wrong. This page separates note data from channel state. Four downloadable files keep the same two notes while changing where a reset message is placed. They are constructed event-stream examples, not recordings of a faulty controller or measurements of a particular instrument.
Two meanings of zero
In a raw MIDI 1.0 pitch-bend message, the center is 8192 in the unsigned 0–16383 range. Some software displays the same center as 0 in a signed −8192–8191 range. Raw unsigned zero is the downward endpoint, not the center. Check the convention before typing a value into an editor.
The UC Irvine explanation of pitch-bend messages describes the byte order: status, least significant data byte, then most significant data byte. For channel 1, a raw center message is E0 00 40 in hexadecimal: 0 + 64 × 128 = 8192. Apple's Logic Pro event reference distinguishes the two data bytes and its signed 14-bit display. An editor's displayed zero and a raw data byte of zero are different things.
Inspect state at the next note, not just the end of the file
Our test starts channel 1 at center, then sends E0 00 60: unsigned 12288, signed +4096. It plays note 60 at tick 0 and releases it at tick 240. Note 64 starts at tick 480 and ends at tick 720. All files use 480 ticks per quarter note, 120 BPM, and velocity 80 for both note-on messages.
The inspection model retains each channel's last received bend value until another bend message changes it. It does not add host-generated resets, chase messages, device tuning, or MPE processing. Releasing a note changes its note state; our model does not treat note-off as a pitch-bend reset.
| Fixture | Extra message | Channel 1 unsigned bend | Signed display |
|---|---|---|---|
| No reset | None | 12288 | +4096 |
| Reset before next note | E0 00 40 at tick 480, before note-on | 8192 | 0 |
| Reset wrong channel | E1 00 40 at tick 480 | 12288 | +4096 |
| Reset after next note | E0 00 40 at tick 960 | 12288 | +4096 |
Three details explain the differences. First, both notes use channel 1. E1 addresses channel 2, so the third fixture leaves channel 1 unchanged. A reset on the wrong channel can look present in a combined event list while failing to establish the intended starting state.
Second, events sharing a tick still have an order in the file. In the second fixture, the center message is written before note-on at tick 480. The parser observes center before that note begins. This does not test how every host schedules simultaneous events after importing a file; inspect the receiver's actual event stream when that distinction matters.
Third, the fourth fixture eventually ends at center, but its second note began at +4096. A final-state check alone would miss that difference. If playback jumps away before a tail reset is delivered, that tail cannot establish the next passage's starting state. A reset at the receiving passage's beginning addresses a different moment.
Download and reproduce
- No-reset MIDI
- Reset before next note
- Reset on the wrong channel
- Reset after the next note
- Python generation and inspection script
- Event trace, results and SHA-256 hashes and eight note observations as CSV
Save the script in an empty directory and run python experiment.py with Python 3. It needs no third-party packages. It creates four Format 0 MIDI files, parses their bytes, and writes the JSON and CSV observations. Files with those names are replaced. The script asserts the four second-note bend states and checks that the note-number pair stays 60/64 throughout. The fixtures contain no running status or external audio.
Use the result as a diagnostic, not a universal reset recipe
- Preserve the original. Duplicate the clip or file. Confirm which instrument and MIDI channel receive the phrase.
- Inspect the incoming bend data. Look before the first affected note. A note-number view alone cannot show retained bend state. If notes themselves are wrong, edit those separately.
- Establish center before the affected note. Use the editor's documented center convention on the correct channel. Preserve intentional bends later in the phrase.
- Compare a continuous run with your actual transition. Test the same jump or clip launch that exposed the problem. A reset heard during a full playthrough may be skipped during another route.
- Check host behavior and incoming hardware. A host may already supply an automatic reset. A controller can also send new unwanted bend messages after your explicit reset. Observe the event stream instead of repeatedly transposing the notes.
Ableton's support guidance documents this carry-over problem and recommends a reset breakpoint at the next clip's start. It notes that an end breakpoint relies on playback reaching it. Live's MIDI Envelope Auto-Reset option, introduced in 11.1, changes behavior for certain message types; defaults differ between new and older Sets. Check your Set rather than assuming these fixtures predict Live's current output. The same support page recommends investigating unwanted controller data when no automation explains the bend.
What these files cannot tell you
The receiving instrument determines how far a bend value moves the sound. +4096 is a controller value, not a fixed number of semitones for every patch. These files do not set bend sensitivity and make no frequency, tuning-accuracy or audio-quality claim. They also do not measure host import, automatic resets, event chasing, plugin envelopes or device-specific handling.
These examples concern ordinary MIDI 1.0 channel pitch bend. Do not apply the single-channel model uncritically to per-note expression or an MPE routing setup. Nor does changing bend state repair onset timing: quantization changes different event properties. For a file that will not open, begin with the MIDI file checks instead.
Experiment generated and checked October 23, 2026. Constructed MIDI byte/state inspection; no DAW playback or audio-to-MIDI model benchmark.