#include <Control_Surface.h>
#include <MIDI_Outputs/Bankable/PBPotentiometer.hpp>
#include <MIDI_Outputs/Bankable/NoteButton.hpp>
HairlessMIDI_Interface midi;
CD74HC4067 M1 = { 6, {5, 4, 3, 2} };
CD74HC4067 M2 = { 7, {5, 4, 3, 2} };
NoteButton buttons[] = {
{ M1.pin(0), {48, CHANNEL_1} },
{ M1.pin(1), {49, CHANNEL_1} },
{ M1.pin(2), {50, CHANNEL_1} },
{ M1.pin(3), {51, CHANNEL_1} },
{ M1.pin(4), {52, CHANNEL_1} },
{ M1.pin(5), {53, CHANNEL_1} },
{ M1.pin(6), {54, CHANNEL_1} },
{ M1.pin(7), {55, CHANNEL_1} },
{ M1.pin(8), {56, CHANNEL_1} },
{ M1.pin(9), {57, CHANNEL_1} },
{ M1.pin(10), {58, CHANNEL_1} },
{ M1.pin(11), {59, CHANNEL_1} },
{ M1.pin(12), {60, CHANNEL_1} },
{ M1.pin(13), {61, CHANNEL_1} },
{ M1.pin(14), {62, CHANNEL_1} },
{ M1.pin(15), {63, CHANNEL_1} },
{ M2.pin(0), {64, CHANNEL_1} },
{ M2.pin(1), {65, CHANNEL_1} },
{ M2.pin(2), {66, CHANNEL_1} },
{ M2.pin(3), {67, CHANNEL_1} },
{ M2.pin(4), {68, CHANNEL_1} },
{ M2.pin(5), {69, CHANNEL_1} },
{ M2.pin(6), {70, CHANNEL_1} },
{ M2.pin(7), {71, CHANNEL_1} },
{ M2.pin(8), {72, CHANNEL_1} },
};
CCPotentiometer Potentiometers[] = {
{ A0, {MIDI_CC::Modulation_Wheel , CHANNEL_1} }, //M Wheel
{ A2, {MIDI_CC::Foot_Controller , CHANNEL_1} }, //PEDAL
};
PBPotentiometer Potentiometer[] = {
{ A1, CHANNEL_1 }, //P Wheel
};
CCButton Buttons[] = {
// { M2.pin(9), {MIDI_CC::General_Purpose_Controller_1, CHANNEL_1} }, //Octav -
// { M2.pin(10), {MIDI_CC::General_Purpose_Controller_2, CHANNEL_1} }, //Octav +
{ M2.pin(11), {MIDI_CC::General_Purpose_Controller_3, CHANNEL_1} }, //REC
{ M2.pin(12), {MIDI_CC::General_Purpose_Controller_4, CHANNEL_1} }, //PLY
{ M2.pin(13), {MIDI_CC::General_Purpose_Controller_5, CHANNEL_1} }, //STP
{ M2.pin(14), {MIDI_CC::General_Purpose_Controller_6, CHANNEL_1} }, //Channel Left
{ M2.pin(15), {MIDI_CC::General_Purpose_Controller_7, CHANNEL_1} }, //Channel Right
};
// Instantiate a Transposer that can transpose from one octave down to one
// octave up
Transposer<-12, +12> transposer;
// Instantiate a Selector to change the transposition
IncrementDecrementSelector<transposer.getNumberOfBanks()> selector {
transposer,
{M2.pin(9), M2.pin(10)},
Wrap::Clamp,
};
void setup() {
Control_Surface.begin();
}
void loop() {
Control_Surface.loop();
}