kegel/kontroler/kontroler.ino

91 lines
1.8 KiB
Arduino
Raw Normal View History

2022-09-20 21:00:13 +02:00
#include <OSCBundle.h>
// SERIAL
#ifdef BOARD_HAS_USB_SERIAL
#include <SLIPEncodedUSBSerial.h>
SLIPEncodedUSBSerial SLIPSerial( thisBoardsSerialUSB );
#else
#include <SLIPEncodedSerial.h>
SLIPEncodedSerial SLIPSerial(Serial); // Change to Serial1 or Serial2 etc. for boards with multiple serial ports that dont have Serial
#endif
OSCBundle bundle;
byte knofi[] = {
2022-11-30 14:54:31 +01:00
A1,// levo (track)
A0,// desno (track)
2, // play / pause
3, // overdub on/off
4, // record arm on/off
5, //
6, // dol (clip)
7, // gor (clip)
8, // quantize
9, // duplicate
10,// delete
11,// record 4 beats
12,// record 8 beats
13,// record on/off
2022-09-20 21:00:13 +02:00
};
2022-11-30 14:54:31 +01:00
byte KNOFI_LEN = 14;
2022-09-20 21:00:13 +02:00
// Za stanje vrednosti
byte knofi_prej[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
2022-09-20 21:42:52 +02:00
// Kako dolgo pocakaj za dvoklik? (v milisekundah)
int dvoklik_interval = 250;
const char* kanali[16] = {
2022-11-30 14:54:31 +01:00
"/track/previous",
"/track/next",
2022-09-20 21:42:52 +02:00
"/play",
2022-11-30 14:54:31 +01:00
"/overdub",
"/recarm",
2022-09-20 21:42:52 +02:00
"",
2022-11-30 14:54:31 +01:00
"/clip/next",
"/clip/previous",
"/quantize",
"/duplicate",
"/delete",
2022-09-20 21:42:52 +02:00
"/clip/create/4",
"/clip/create/8",
"/clip/record" // rabi info o trenutno izbranem clipu / tracku
2022-09-20 21:00:13 +02:00
};
2022-09-20 21:42:52 +02:00
byte knofi_dvoklik[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
2022-09-20 21:00:13 +02:00
void setup() {
for(int i = 0; i < KNOFI_LEN; i++) {
pinMode(knofi[i], INPUT_PULLUP);
}
//Serial.begin(9600);
SLIPSerial.begin(115200);
}
byte vrednost;
void loop() {
//Serial.println("Keys pressed:");
for(int i = 0; i < KNOFI_LEN; i++) {
vrednost = !digitalRead(knofi[i]);
//Serial.print(vrednost);
//Serial.print(", ");
// Je gumb sveze vklopljen?
if (!knofi_prej[i] && vrednost) {
bundle.add(kanali[i]);
//Serial.println(kanali[i]);
}
knofi_prej[i] = vrednost;
}
//Serial.println("");
SLIPSerial.beginPacket();
bundle.send(SLIPSerial);
SLIPSerial.endPacket();
//Serial.println("");
bundle.empty();
}