A HA! Ok, so the SoftwareSerial library turns off interrupts while it's writing to its tx pin.
So when I do this:
We are potentially losing a whole bunch of MIDI messages while it's doing all those soundgin.write() calls. However, commenting everything except Osc A1 out doesn't seem to make it any better... hmm.
So when I do this:
Code:
soundgin.write(27); //Soundgin Command
soundgin.write(88); //Osc A1
soundgin.write(note);
soundgin.write(27); //Soundgin Command
soundgin.write(89); //Osc A2
soundgin.write(note);
soundgin.write(27); //Soundgin Command
soundgin.write(90); //Osc A3
soundgin.write(note);
soundgin.write(27); //Soundgin Command
soundgin.write(120); //Osc B1
soundgin.write(note);
soundgin.write(27); //Soundgin Command
soundgin.write(121); //Osc B2
soundgin.write(note);
soundgin.write(27); //Soundgin Command
soundgin.write(122); //Osc B3
soundgin.write(note);