Arduino UNO As A MIDI Keyboard

#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();
}