-
Notifications
You must be signed in to change notification settings - Fork 0
/
Code for piano and potentiometer. No Velocity
145 lines (122 loc) · 3.75 KB
/
Code for piano and potentiometer. No Velocity
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include <MIDI.h>
MIDI_CREATE_DEFAULT_INSTANCE();
int buttonApin = 12; //footswitch A
int buttonBpin = 11; //footswitch B
int buttonCpin = 10; //footswitch C
int buttonDpin = 9;
int buttonEpin = 8;
int analogpot1 = A0; //knob 1
int analogpot2 = A1; //knob 2
int analogpot1Old = 0;
int analogpot2Old = 0;
int analogpot1New = 0;
int analogpot2New = 0;
#define analogpot1CC 54
#define analogpot2CC 55
void setup() {
// put your setup code here, to run once:
MIDI.begin (); // MIDI START
pinMode(buttonApin, INPUT_PULLUP);
pinMode(buttonBpin, INPUT_PULLUP);
pinMode(buttonCpin, INPUT_PULLUP);
pinMode(buttonDpin, INPUT_PULLUP);
pinMode(buttonEpin, INPUT_PULLUP);
pinMode(analogpot1, INPUT);
pinMode(analogpot2, INPUT);
//Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
static bool buttonAvalueOld = HIGH;
static bool buttonBvalueOld = HIGH;
static bool buttonCvalueOld = HIGH;
static bool buttonDvalueOld = HIGH;
static bool buttonEvalueOld = HIGH;
//footswitches
bool buttonAvalueNew = digitalRead(buttonApin);
bool buttonBvalueNew = digitalRead(buttonBpin);
bool buttonCvalueNew = digitalRead(buttonCpin);
bool buttonDvalueNew = digitalRead(buttonDpin);
bool buttonEvalueNew = digitalRead(buttonEpin);
if (buttonAvalueNew != buttonAvalueOld){
if (buttonAvalueNew == LOW){
MIDI.sendNoteOn(60, 127, 1);
//Serial.println("Note C On");
}
else {
MIDI.sendNoteOff(60, 0, 1);
//Serial.println("Note C Off");
}
buttonAvalueOld = buttonAvalueNew;
}
if (buttonBvalueNew != buttonBvalueOld){
if (buttonBvalueNew == LOW){
MIDI.sendNoteOn(62, 127, 1);
//Serial.println("Note D On");
}
else {
MIDI.sendNoteOff(62, 0, 1);
//Serial.println("Note D Off");
}
buttonBvalueOld = buttonBvalueNew;
}
if (buttonCvalueNew != buttonCvalueOld){
if (buttonCvalueNew == LOW){
MIDI.sendNoteOn(64, 127, 1);
//Serial.println("Note E On");
}
else {
MIDI.sendNoteOff(64, 0, 1);
//Serial.println("Note E Off");
}
buttonCvalueOld = buttonCvalueNew;
}
if (buttonDvalueNew != buttonDvalueOld){
if (buttonDvalueNew == LOW){
MIDI.sendNoteOn(65, 127, 1);
//Serial.println("Note F On");
}
else {
MIDI.sendNoteOff(65, 0, 1);
//Serial.println("Note F Off");
}
buttonDvalueOld = buttonDvalueNew;
}
if (buttonEvalueNew != buttonEvalueOld){
if (buttonEvalueNew == LOW){
MIDI.sendNoteOn(67, 127, 1);
//Serial.println("Note G On");
}
else {
MIDI.sendNoteOff(67, 0, 1);
//Serial.println("Note G Off");
}
buttonEvalueOld = buttonEvalueNew;
}
//potentiometers
int pot1 = analogRead(A0);
int pot2 = analogRead(A1);
int analogpot1New = analogRead(A0);
int analogpot2New = analogRead(A1);
if (analogpot1New - analogpot1Old >= 35 || analogpot1Old - analogpot1New >= 35) {
analogpot1Old = analogpot1New;
analogpot1New = (map(analogpot1New, 1023, 0, 0, 120));
analogpot1New = (constrain(analogpot1New, 0, 120));
MIDI.sendControlChange(analogpot1CC, analogpot1New, 1);
//Serial.print ("pot: ");
//Serial.println(pot1);
//Serial.print("potread: ");
//Serial.println(analogpot1New);
}
if (analogpot2New - analogpot2Old >= 35 || analogpot2Old - analogpot2New >= 35) {
analogpot2Old = analogpot2New;
analogpot2New = (map(analogpot2New, 1023, 0, 0, 120));
analogpot2New = (constrain(analogpot2New, 0, 120));
MIDI.sendControlChange(analogpot2CC, analogpot2New, 1);
//Serial.print ("pot: ");
//Serial.println(pot2);
//Serial.print("potread: ");
//Serial.println(analogpot2New);
}
delay(25);
}