Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Adafruit_MCP23017.h>
- #include <Adafruit_MCP3008.h>
- #include "MIDIUSB.h"
- Adafruit_MCP3008 adc1;
- Adafruit_MCP3008 adc2;
- Adafruit_MCP23017 mcp1;
- Adafruit_MCP23017 mcp2;
- Adafruit_MCP23017 mcp3;
- Adafruit_MCP23017 mcp4;
- void setup(){
- mcp1.begin(0);
- for(int i = 0;i<=16;i++){
- mcp1.pinMode(i, INPUT);
- mcp1.pullUp(i, HIGH);
- mcp2.begin(1);
- for(int i = 0;i<=16;i++){
- mcp2.pinMode(i, INPUT);
- mcp2.pullUp(i, HIGH);
- mcp3.begin(2);
- for(int i = 0;i<=16;i++){
- mcp3.pinMode(i, INPUT);
- mcp3.pullUp(i, HIGH);
- mcp4.begin(3);
- for(int i = 0;i<=16;i++){
- mcp4.pinMode(i, INPUT);
- mcp4.pullUp(i, HIGH);
- adc1.begin(9);
- adc2.begin(8);
- }
- void noteOn(byte channel, byte pitch, byte velocity) {
- midiEventPacket_t noteOn = {0x09, 0x90 | channel, pitch, velocity};
- MidiUSB.sendMIDI(noteOn);
- }
- void noteOff(byte channel, byte pitch, byte velocity) {
- midiEventPacket_t noteOff = {0x08, 0x80 | channel, pitch, velocity};
- MidiUSB.sendMIDI(noteOff);
- }
- void taster(int mcpNR, int tasterNR, int midinote){
- switch (mcpNR) {
- case 1:
- if (mcp1.digitalRead(tasterNR) == LOW) {
- noteOn(0,midinote,127);
- MidiUSB.flush();
- }
- else {
- noteOff(0,midinote,127);
- MidiUSB.flush();
- break;
- case 2:
- if (mcp2.digitalRead(tasterNR) == LOW) {
- noteOn(0,midinote,127);
- MidiUSB.flush();
- }
- else {
- noteOff(0,midinote,127);
- MidiUSB.flush();
- break;
- case 3:
- if (mcp3.digitalRead(tasterNR) == LOW) {
- noteOn(0,midinote,127);
- MidiUSB.flush();
- }
- else {
- noteOff(0,midinote,127);
- MidiUSB.flush();
- break;
- case 4:
- if (mcp4.digitalRead(tasterNR) == LOW) {
- noteOn(0,midinote,127);
- MidiUSB.flush();
- }
- else {
- noteOff(0,midinote,127);
- MidiUSB.flush();
- break;
- default:
- break;
- }
- void fader(int adcNR, char faderNR, int midinote){
- switch (adcNR){
- case 1:
- noteOn(0,midinote,map(adc1.readADC(faderNR),0,1023,0,127));
- MidiUSB.flush();
- break;
- case 2:
- noteOn(0,midinote,map(adc2.readADC(faderNR),0,1023,0,127));
- MidiUSB.flush();
- break;
- }
- void loop() {
- delay(10);
- fader(1,0,1); //Fader links
- fader(1,1,2);
- fader(1,2,3);
- fader(1,3,4);
- fader(1,4,5);
- fader(1,5,6);
- fader(1,6,7);
- fader(1,7,8);
- fader(2,2,9); //Fader rechts
- fader(2,3,10);
- fader(2,4,11);
- fader(2,5,12);
- fader(2,6,13);
- fader(2,7,14);
- taster(2,0,15); //Buttons links unten
- taster(2,1,16);
- taster(2,2,17);
- taster(2,3,18);
- taster(2,4,19);
- taster(2,5,20);
- taster(2,6,15);
- taster(2,7,22);
- taster(2,8,23);
- taster(2,9,24);
- taster(2,10,25);
- taster(2,11,26);
- taster(2,12,27);
- taster(2,13,28);
- taster(2,14,29);
- taster(2,15,30);
- taster(4,7,31); //Buttons rechts unten
- taster(4,9,32);
- taster(4,8,33);
- taster(4,7,34);
- taster(4,8,35);
- taster(4,7,36);
- taster(4,9,37);
- taster(4,8,38);
- taster(4,7,39);
- taster(4,9,40);
- taster(4,8,41);
- taster(4,7,42);
- taster(1,0,57); //Buttons links oben
- taster(1,1,53);
- taster(1,2,51);
- taster(1,3,55);
- taster(1,4,47);
- taster(1,5,49);
- taster(1,6,43);
- taster(1,7,45);
- taster(1,8,46);
- taster(1,9,44);
- taster(1,10,50);
- taster(1,11,48);
- taster(1,12,56);
- taster(1,13,52);
- taster(1,14,54);
- taster(1,15,58);
- taster(3,7,59); //Buttons rechts oben
- taster(3,9,60);
- taster(3,8,61);
- taster(3,7,62);
- taster(3,8,63);
- taster(3,7,64);
- taster(3,9,65);
- taster(3,8,66);
- taster(3,7,67);
- taster(3,9,68);
- taster(3,8,69);
- taster(3,7,70);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement