launchpad pro: use "first fader" concept from lpx

we control the CC number sent by launchpad faders, and 0x20 is too large
because it causes the faders to overlap with some of the CC values
sent by RHS pads. Parametize the first fader and use it everywhere
This commit is contained in:
Paul Davis 2023-11-06 12:33:36 -07:00
parent 144756e602
commit 58652f6268

View file

@ -78,6 +78,7 @@ using namespace Gtkmm2ext;
#define NOVATION 0x1235
#define LAUNCHPADPROMK3 0x0123
static const std::vector<MIDI::byte> sysex_header ({ 0xf0, 0x00, 0x20, 0x29, 0x2, 0xe });
static int first_fader = 0x9;
const LaunchPadPro::PadID LaunchPadPro::all_pad_ids[] = {
Shift, Left, Right, Session, Note, Chord, Custom, Sequencer, Projects,
@ -731,7 +732,7 @@ LaunchPadPro::handle_midi_controller_message (MIDI::Parser&, MIDI::EventTwoBytes
if (_current_layout == Fader) {
/* Trap fader move messages and act on them */
if (ev->controller_number >= 0x20 && ev->controller_number < 0x28) {
if (ev->controller_number >= first_fader && ev->controller_number < first_fader+8) {
fader_move (ev->controller_number, ev->value);
return;
}
@ -1935,7 +1936,7 @@ LaunchPadPro::setup_faders (FaderBank bank)
msg.push_back (0); /* unipolar */
break;
}
msg.push_back (0x20+n); /* CC number */
msg.push_back (first_fader+n); /* CC number */
msg.push_back (random() % 127); /* color */
}
@ -1954,7 +1955,7 @@ LaunchPadPro::fader_move (int cc, int val)
r = std::dynamic_pointer_cast<Route> (session->selection().first_selected_stripable());
break;
default:
r = session->get_remote_nth_route (scroll_x_offset + (cc - 0x20));
r = session->get_remote_nth_route (scroll_x_offset + (cc - first_fader));
break;
}
@ -1978,7 +1979,7 @@ LaunchPadPro::fader_move (int cc, int val)
}
break;
case SendFaders:
ac = r->send_level_controllable (scroll_x_offset + (cc - 0x20));
ac = r->send_level_controllable (scroll_x_offset + (cc - first_fader));
if (ac) {
session->set_control (ac, ARDOUR::slider_position_to_gain_with_max (val/127.0, ARDOUR::Config->get_max_gain()), PBD::Controllable::NoGroup);
}
@ -2012,7 +2013,7 @@ LaunchPadPro::map_faders ()
std::shared_ptr<AutomationControl> ac;
msg[1] = 0x20 + n;
msg[1] = first_fader + n;
if (!r) {
switch (current_fader_bank) {
@ -2075,7 +2076,7 @@ LaunchPadPro::automation_control_change (int n, std::weak_ptr<AutomationControl>
MIDI::byte msg[3];
msg[0] = 0xb4;
msg[1] = 0x20 + n;
msg[1] = first_fader + n;
switch (current_fader_bank) {
case VolumeFaders: