Stap 6: controle
De MIDI in is seriële op 32150 baud. Het systeem is 3 bytes. De eerste byte is of de notitie is in- of uitschakelen. De tweede is de waarde van de opmerking en de derde is de snelheid, maar ik negeer die.
Ik omgaan met een seriële evenement.
VOID serialEvent()
{
if(Serial.available() > = 3) //messages in 3 byte pakketten
{
byte cmd = Serial.read();
byte Opmerking = Serial.read();
byte vel = Serial.read();
Als (cmd > = 0x80 & & cmd < = 0x8F & & (rootKey == Opmerking - MIDI_OFFSET || noteSelect == Opmerking - MIDI_OFFSET)) //note uit
{
notePlaying = false;
}
anders als (cmd > = 0x90 & & cmd < = 0x9F) //note op
{
noteSelect = notitie - MIDI_OFFSET;
notePlaying = true;
}
}
}
Omdat de synthesizer mono is, ik de linker- en rechterkanaal van de audio-aansluiting met elkaar verbonden.
De schakeloptie SPDT wordt gebruikt om te schakelen tussen audio-uitgang naar de aansluiting of de spreker. Het centrum pin is waar het signaal van de versterker is verbonden. De juiste pin gaat naar de audio-aansluiting en de links naar de spreker. De grond van de audio-aansluiting, de middelste stift, is verbonden aan één van de pinnen van de spreker, en vervolgens beide met de massa zijn verbonden.