Étape 6: Comment faire son
MIDI est un protocole série inventé dans les années 1980 pour permettre à un instrument de musique numérique contrôler d’autres instruments de musique numériques. Il est semblable à un port série RS232 à l’exception :
* Il a une étrange en bauds (31250 bauds).
* Il utilise une boucle de courant au lieu de la tension de signalisation (éviter le bourdonnement induisant des boucles de masse).
Heureusement, il y a un bouclier Arduino qui implémente une interface de matériel MIDI, ajoute que certains logiciels de port série et que vous avez une interface MIDI de travail.
Pour nos fins, il suffit de générer deux types de messages MIDI :
ON Remarque : Générée lorsqu’une touche est enfoncée. Cela indique au piano pour commencer la note.
Note OFF : Générée lorsqu’une touche est relâchée. Cela indique au piano pour arrêter la note.
Chaque commande de MIDI se compose de 3 octets :
* La commande (note on/off)
* La vélocité de la note (à quelle vitesse la note est pressé/sortie)
* La note (qui touche particulière a été pressé/sortie)
Le choix de vitesse Remarque soulève des questions. Certains claviers peuvent détecter à quelle vitesse vous appuyez sur la touche - et cela change la qualité (principalement le volume) du son généré. Le Big Piano ne peut pas détecter la vitesse clés - donc nous avons utilisé une vélocité de la note prédéfinie et constante. Ce qui rend le jeu de piano que moins nuancée qu’elle serait autrement, mais c’est moins un problème pour un piano joué avec les pieds.
Ressources :
Sparkfun rend le bouclier de MIDI, que j’ai utilisé.
https://www.Sparkfun.com/Products/9598
Grand Piano Firmware. Pilote MIDI et UART.
https://github.com/Deadsy/bigpiano/BLOB/Master/SRC/midi.cpp
https://github.com/Deadsy/bigpiano/BLOB/Master/SRC/midi.h
https://github.com/Deadsy/bigpiano/BLOB/Master/SRC/UART.cpp
https://github.com/Deadsy/bigpiano/BLOB/Master/SRC/UART.h