-
Notifications
You must be signed in to change notification settings - Fork 164
Description
Hello, I would like to add the transpose function to each note. I can't manage CHANGE_CHANNEL and transpose at the same time.
#include <Control_Surface.h>
HardwareSerialMIDI_Interface midi_ser {Serial1};
CD74HC4067 M1 = { 6, {2, 3, 4, 5} };
CD74HC4067 M2 = { 7, {2, 3, 4, 5} };
CD74HC4067 M3 = { 8, {2, 3, 4, 5} };
CD74HC4067 M4 = { 9, {2, 3, 4, 5} };
CD74HC4067 M5 = { A1, {2, 3, 4, 5} };
CD74HC4067 M6 = { A2, {2, 3, 4, 5} };
///MIDI CHANNEL//
Bank<8> bank(1);
ManyButtonsSelector<8> programSelector = {
bank,
{{M3.pin(7), M3.pin(6), M3.pin(5), M3.pin(4), M3.pin(3), M3.pin(2), M3.pin(1), M3.pin(0)}},
};
//OCTAVE SELECT//
Transposer<-2, +2> transposer {12};
IncrementDecrementSelector<transposer.getNumberOfBanks()> selector {
transposer,
{M1.pin(1), M1.pin(2)},
Wrap::Clamp,
};
Bankable::NoteButton buttons[] {
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(15), 48}, //C
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(14), 49}, //C#
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(13), 50}, //D
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(12), 51}, //D#
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(11), 52}, //E
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(10), 53}, //F
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(9), 54}, //F#
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(8), 55}, //G
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(7), 56}, //G#
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(6), 57}, //A
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(5), 58}, //A#
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(4), 59}, //B
{{bank, BankType::CHANGE_CHANNEL}, M1.pin(3), 60}, //C
{{bank, BankType::CHANGE_CHANNEL}, M2.pin(15), 61}, //C#
{{bank, BankType::CHANGE_CHANNEL}, M2.pin(14), 62}, //D
{{bank, BankType::CHANGE_CHANNEL}, M2.pin(13), 63}, //D#
{{bank, BankType::CHANGE_CHANNEL}, M2.pin(12), 64}, //E
{{bank, BankType::CHANGE_CHANNEL}, M2.pin(11), 65}, //F
{{bank, BankType::CHANGE_CHANNEL}, M2.pin(10), 66}, //F#
{{bank, BankType::CHANGE_CHANNEL}, M2.pin(9), 67}, //G
{{bank, BankType::CHANGE_CHANNEL}, M2.pin(8), 68}, //G#
{{bank, BankType::CHANGE_CHANNEL}, M2.pin(7), 69}, //A
{{bank, BankType::CHANGE_CHANNEL}, M2.pin(6), 70}, //A#
{{bank, BankType::CHANGE_CHANNEL}, M2.pin(5), 71}, //B
{{bank, BankType::CHANGE_CHANNEL}, M2.pin(4), 72}, //C
{{bank, BankType::CHANGE_CHANNEL}, M4.pin(11), 73}, //C#
{{bank, BankType::CHANGE_CHANNEL}, M4.pin(10), 74}, //D
{{bank, BankType::CHANGE_CHANNEL}, M4.pin(9), 75}, //D#
{{bank, BankType::CHANGE_CHANNEL}, M4.pin(8), 76}, //E
{{bank, BankType::CHANGE_CHANNEL}, M4.pin(7), 77}, //F
{{bank, BankType::CHANGE_CHANNEL}, M4.pin(6), 78}, //F#
{{bank, BankType::CHANGE_CHANNEL}, M4.pin(5), 79}, //G
{{bank, BankType::CHANGE_CHANNEL}, M4.pin(4), 80}, //G#
{{bank, BankType::CHANGE_CHANNEL}, M4.pin(3), 81}, //A
{{bank, BankType::CHANGE_CHANNEL}, M4.pin(2), 82}, //A#
{{bank, BankType::CHANGE_CHANNEL}, M4.pin(1), 83}, //B
{{bank, BankType::CHANGE_CHANNEL}, M4.pin(0), 84}, //C
};
Bankable::CCPotentiometer Potentiometers[] = {
{{bank, BankType::CHANGE_CHANNEL}, M5.pin(0), {MIDI_CC::Modulation_Wheel} }, //M Wheel
{{bank, BankType::CHANGE_CHANNEL}, M6.pin(0), {10} }, //Pot1
{{bank, BankType::CHANGE_CHANNEL}, M6.pin(1), {11} }, //Pot2
{{bank, BankType::CHANGE_CHANNEL}, M6.pin(2), {12} }, //Pot3
{{bank, BankType::CHANGE_CHANNEL}, M6.pin(3), {13} }, //Pot4
{{bank, BankType::CHANGE_CHANNEL}, M6.pin(4), {14} }, //Pot5
{{bank, BankType::CHANGE_CHANNEL}, M6.pin(5), {15} }, //Pot6
{{bank, BankType::CHANGE_CHANNEL}, M6.pin(6), {16} }, //Pot7
{{bank, BankType::CHANGE_CHANNEL}, M6.pin(7), {17} }, //Pot8
{{bank, BankType::CHANGE_CHANNEL}, M6.pin(8), {18} }, //Pot9
};
Bankable::PBPotentiometer Potentiometer[] = {
{{bank, BankType::CHANGE_CHANNEL}, M5.pin(1), CHANNEL_1 }, //P Wheel
};
Bankable::CCButton Buttons[] = {
{{bank, BankType::CHANGE_CHANNEL}, M3.pin(8), {20, CHANNEL_1} }, //PLY
};
void setup() {
Control_Surface.begin();
}
void loop() {
Control_Surface.loop();
}