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