Étape 5: Jouer de la musique
La réponse était l’excellente bibliothèque de Playtune. (https://code.google.com/p/arduino-playtune/) Sur le ATMEGA328p utilisé dans le projet, il est capable de trois voix simultanées. Les sons sont générés à l’aide des minuteries de matériel (avec diviseur approprié et séparateurs) et sont les VL sans aucune enveloppe. La grande chose au sujet de cette méthode est une fois que vous avez la minuterie configurée, il fonctionne simplement et votre code est libre de faire tout ce qui est nécessaire jusqu’au prochain événement de remarque.
Tapant dans notes manuellement serait fastidieux, donc il n’y a l’outil MIDITONES pour convertir un .mid dans le code. Il possède des options utiles pour limiter les notes simultanées depuis le fichier source qui font le meilleur des voix disponibles.
Tel qu’implémenté, je n’utilise que deux des trois canaux possibles. C’est parce que j’ai voulu garder timer0 pour « millis() » calendrier et autres fonctions. Il s’avère que, playtune.cpp comprend en fait une fonction de synchronisation Substitue qui aurait permis une troisième voix. Eh bien, quelque chose à garder à l’esprit.
Sons par les sorties de minuterie sont envoyés par l’intermédiaire de résistances de 500 ohms, puis directement sur un disque de grande piezo. La combinaison de pilote, trou et cavité affaire contribue à renforcer le son. Il est certainement assez fort pour vous réveiller d’une table de chevet ou même à travers la pièce.