Files
AciduinoCV/CV.ino

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);
}
}