87 lines
1.7 KiB
C++
87 lines
1.7 KiB
C++
float noteToVoltage(uint8_t note) {
|
|
float voltage = (note - 24) * 0.083;
|
|
return voltage;
|
|
}
|
|
|
|
uint16_t noteToValue(uint8_t note) {
|
|
uint16_t value = (note - 24) * DACNoteStep;
|
|
return value;
|
|
}
|
|
|
|
void sendCVNote(uint8_t note, uint8_t track) {
|
|
if (track == 0 && note != CV1Note) {
|
|
CV1Note = note;
|
|
updateCV1 = true;
|
|
}
|
|
if (track == 1 && note != CV2Note) {
|
|
CV2Note = note;
|
|
updateCV2 = true;
|
|
}
|
|
}
|
|
|
|
void sendGateOn(uint8_t track) {
|
|
if (track == 0) {
|
|
sendGate1 = true;
|
|
}
|
|
if (track == 1) {
|
|
sendGate2 = true;
|
|
}
|
|
}
|
|
|
|
void sendGateOff(uint8_t track) {
|
|
if (track == 0) {
|
|
sendGate1 = false;
|
|
}
|
|
if (track == 1) {
|
|
sendGate2 = false;
|
|
}
|
|
}
|
|
|
|
void sendVoltage(uint8_t voltage, uint8_t dac) {
|
|
if (dac == 0) {
|
|
//DAC1.setVoltage(voltage);
|
|
} else {
|
|
//DAC2.setVoltage(voltage);
|
|
}
|
|
}
|
|
|
|
void processCV() {
|
|
if (updateCV1) {
|
|
//sendVoltage(noteToVoltage(CV1Note), 0);
|
|
//updateCV1 = false;
|
|
}
|
|
if (updateCV2) {
|
|
//sendVoltage(noteToVoltage(CV2Note), 1);
|
|
//updateCV2 = false;
|
|
}
|
|
if (sendGate1) {
|
|
Wire.beginTransmission(0x60);
|
|
Wire.write(0x40);
|
|
Wire.write(0xFF);
|
|
Wire.write(0xF0);
|
|
Wire.endTransmission();
|
|
//sendVoltage(5, 0);
|
|
} else {
|
|
Wire.beginTransmission(0x60);
|
|
Wire.write(0x40);
|
|
Wire.write(0x00);
|
|
Wire.write(0x00);
|
|
Wire.endTransmission();
|
|
//sendVoltage(0, 0);
|
|
}
|
|
if (sendGate2) {
|
|
Wire.beginTransmission(0x61);
|
|
Wire.write(0x40);
|
|
Wire.write(0xFF);
|
|
Wire.write(0xF0);
|
|
Wire.endTransmission();
|
|
//sendVoltage(5, 1);
|
|
} else {
|
|
Wire.beginTransmission(0x60);
|
|
Wire.write(0x40);
|
|
Wire.write(0x00);
|
|
Wire.write(0x00);
|
|
Wire.endTransmission();
|
|
//sendVoltage(0, 1);
|
|
}
|
|
} |