From 0a5665ae160db6c861a2788ceac467fa4b356099 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Sun, 26 Jan 2014 14:07:15 +0100 Subject: [PATCH] InstrumentTrack: send RPN update in updatePitchRange() When changing the pitch range all we can do for MIDI is to update the MIDI pitch bend sensitivity RPN even though this is only supported by some MIDI instruments. Closes #129. --- src/tracks/InstrumentTrack.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/tracks/InstrumentTrack.cpp b/src/tracks/InstrumentTrack.cpp index 6072c42d5..7a309c93b 100644 --- a/src/tracks/InstrumentTrack.cpp +++ b/src/tracks/InstrumentTrack.cpp @@ -543,7 +543,13 @@ void InstrumentTrack::updatePitch() void InstrumentTrack::updatePitchRange() { const int r = m_pitchRangeModel.value(); - m_pitchModel.setRange( -100 * r, 100 * r ); + m_pitchModel.setRange( -MinPitchDefault * r, MaxPitchDefault * r ); + + processOutEvent( MidiEvent( MidiControlChange, midiPort()->realOutputChannel(), + MidiControllerRegisteredParameterNumberLSB, MidiPitchBendSensitivityRPN & 0x7F ) ); + processOutEvent( MidiEvent( MidiControlChange, midiPort()->realOutputChannel(), + MidiControllerRegisteredParameterNumberMSB, ( MidiPitchBendSensitivityRPN >> 8 ) & 0x7F ) ); + processOutEvent( MidiEvent( MidiControlChange, midiPort()->realOutputChannel(), MidiControllerDataEntry, midiPitchRange() ) ); }