Paso 3: Conceptos de Midi...
MIDI envía información con 3 bytes de información a una velocidad de 31250. El primer byte determina si una nota está activada, el siguiente byte determina qué tono se juega, y el tercer byte determina el volumen de la nota. Es importante tener en cuenta el orden de la información como si no establece el código para leer en este orden para sólo 3 bytes, gracioso las cosas comienzan a suceder. Confían en nosotros.
Considere el siguiente código:
//reads the serial port to see if there is any incoming information boolean check_midi() { while (Serial.available() >= 3)//when three bytes available { if (Serial.available()) { digitalWrite(3,HIGH); location_byte = Serial.read();//read first byte in_note = Serial.read();//read next byte in_volume = Serial.read();//read final byte return true; } } }
Esta función controles cuando hay 3 bytes disponibles para leer y pone en las variables apropiadas y finalmente devuelve true cuando el trabajo es completan. Las variables son globales, puesto que se utilizan en otras funciones. Sin duda, hay muchas otras formas grandes que probablemente sería mucho más aseadas en C++, pero por el tamaño de la memoria, no te duele para ser un poco desordenado en el Arduino. (Siempre y cuando usted puede mantener un seguimiento de lo que está sucediendo!) En cuanto a la salida, si desea enviar su música fuera el escudo así, considera este código:
//Here is the internet function for writing out the pitch void midi_send(byte cmd, byte note, byte volume) { Serial.write(cmd); Serial.write(note); Serial.write(volume); }
Este código recibe 3 bytes y escribe (en orden!) al puerto serie de Arduino. Esto enviará en o de comando, el tono y el volumen a través de la línea de salida. ¡ IMPORTANTE! --Si está utilizando un cable USB para viajar desde el ordenador a la Arduino, tenga en cuenta que los cables se invierten que va el cable en la salida; y la salida va en la en. De lo contrario, habrá muchos problemas y te dejaste con frustración. Confíe en nosotros...