From c4602603b4a229ab7d017f0733a9b771179b4319 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 10 Jul 2016 11:29:57 -0400 Subject: push2: make octave buttons actually work, with shift-press to reset to zero --- libs/surfaces/push2/buttons.cc | 12 ++++++++++-- libs/surfaces/push2/push2.cc | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'libs') diff --git a/libs/surfaces/push2/buttons.cc b/libs/surfaces/push2/buttons.cc index fe9e3322f4..316353f764 100644 --- a/libs/surfaces/push2/buttons.cc +++ b/libs/surfaces/push2/buttons.cc @@ -503,20 +503,28 @@ Push2::start_press_timeout (Button& button, ButtonID id) void Push2::button_octave_down () { + if (_modifier_state & ModShift) { + octave_shift = 0; + return; + } + int os = (max (-4, octave_shift - 1)); if (os != octave_shift) { octave_shift = os; - build_pad_table (); } } void Push2::button_octave_up () { + if (_modifier_state & ModShift) { + octave_shift = 0; + return; + } + int os = (min (4, octave_shift + 1)); if (os != octave_shift) { octave_shift = os; - build_pad_table (); } } diff --git a/libs/surfaces/push2/push2.cc b/libs/surfaces/push2/push2.cc index 2cd2091f02..a293c58c64 100644 --- a/libs/surfaces/push2/push2.cc +++ b/libs/surfaces/push2/push2.cc @@ -1256,7 +1256,7 @@ Push2::pad_filter (MidiBuffer& in, MidiBuffer& out) const Pad const * pad = nni->second; /* shift for output to the shadow port */ if (pad->filtered >= 0) { - (*ev).set_note (pad->filtered); + (*ev).set_note (pad->filtered + (octave_shift*12)); out.push_back (*ev); /* shift back so that the pads light correctly */ (*ev).set_note (n); -- cgit v1.2.3