-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPercussion.ino
133 lines (92 loc) · 2.38 KB
/
Percussion.ino
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
// Percussion_v1
// classes
#include <MIDI.h>
#include <Streaming.h>
MIDI_CREATE_DEFAULT_INSTANCE();
#define DEBUG false
String inputString = "";
//Define Relay pins
#define RELAY1 2
#define RELAY2 3
#define RELAY3 4
#define RELAY4 5
#define RELAY5 6
#define RELAY6 7
#define RELAY7 9 //klapa
void setup()
{
//Relays (solenoids)
pinMode(RELAY1,OUTPUT);//relay1
pinMode(RELAY2,OUTPUT);//relay2
pinMode(RELAY3,OUTPUT);//relay3
pinMode(RELAY4,OUTPUT);//relay4
pinMode(RELAY5,OUTPUT);//relay5
pinMode(RELAY6,OUTPUT);//relay6
pinMode(RELAY7,OUTPUT);//relay7
digitalWrite(RELAY1,LOW);//reset relay1
digitalWrite(RELAY2,LOW);//reset relay2
digitalWrite(RELAY3,LOW);//reset relay3
digitalWrite(RELAY4,LOW);//reset relay4
digitalWrite(RELAY5,HIGH);//reset relay5
digitalWrite(RELAY6,HIGH);//reset relay6
digitalWrite(RELAY7,LOW);//reset relay7
MIDI.begin(4);//MIDI_CHANNEL_OMNI
MIDI.setHandleNoteOn(HandleNoteOn);
MIDI.setHandleNoteOff(HandleNoteOff);
}
void loop()
{
MIDI.read();
}
void HandleNoteOff(byte channel, byte pitch, byte velocity) {
switch (pitch) {
case 60://79
digitalWrite(RELAY1, LOW); //turn off relay1
break;
case 62://81
digitalWrite(RELAY2, LOW); //turn off relay2
break;
case 64://83
digitalWrite(RELAY3, LOW); //turn off relay3
break;
case 65://84
digitalWrite(RELAY4, LOW); //turn off relay4
break;
case 67://86
digitalWrite(RELAY5, HIGH); //turn off relay5
break;
case 69://88
digitalWrite(RELAY6, HIGH); //turn off relay6
break;
case 71://88
digitalWrite(RELAY7, LOW); //turn off relay7
break;
}
}
void HandleNoteOn(byte channel, byte pitch, byte velocity) {
//midi keys
//q60 w62 e64 r65 t67 y69
switch (pitch) {
case 60://79
digitalWrite(RELAY1, HIGH); //turn on relay1
break;
case 62://81
digitalWrite(RELAY2, HIGH); //turn on relay2
break;
case 64://83
digitalWrite(RELAY3, HIGH); //turn on relay3
break;
case 65://84
digitalWrite(RELAY4, HIGH); //turn on relay4
break;
case 67://86
digitalWrite(RELAY5, LOW); //turn on relay5
break;
case 69://88
digitalWrite(RELAY6, LOW); //turn on relay6
break;
case 71://88
digitalWrite(RELAY7, HIGH); //turn off relay7
break;
}
}