Le Yocto-Buzzer est un petit module qui permet de donner une quittance auditive à l'utilisateur, particulièrement pratique lorsqu'on travaille avec un mini-PC sans carte son, ou avec une interface déportée par le réseau. Pour vous faciliter son utilisation, nous vous proposons aujourd'hui une méthode simplifiée pour générer des petits indicatifs sonores.
Le Yocto-Buzzer a été conçu pour faire des simples bip-bips, donc ne vous attendez pas à de la polyphonie symphonique. Néanmoins, comme il est capable de jouer des petits enchaînements de notes, cela permet déjà de produire des petites séquences sonores typiques suggérant une alarme, une confirmation, un échec, etc.
La nouvelle méthode, que vous trouverez dans la version de la librairie Yoctopuce publiée ce jour, s'appelle playNotes(string notes). Elle prend en argument une chaîne de caractères décrivant les notes à jouer. Elle convertit les notes en séquence de fréquences, et joue la séquence une fois. Voici un petit exemple:
Pour savoir comment faire vos propres séquences, lisez la section suivante. Si vous n'avez pas le temps, vous pouvez aussi sauter directement à la section d'après où nous vous donnons quelques séquences utilisables directement dans vos applications.
Codage des séquences de notes
Si vous avez quelques connaissances musicales, vous aurez reconnu la notation anglo-saxonne pour les notes de musique: A=la, B=si, C=do, D=ré, E=mi, F=fa, G=sol. On peut ajouter en suffixe un dièse (#) ou un bémol (b), et changer d'octave en préfixant d'une ou plusieurs apostrophes (pour monter) ou d'une ou plusieurs virgules (pour descendre). Sans autre indication, c'est l'octave la plus proche de la note précédente qui est choisie:
La durée des notes peut être changée en ajoutant un suffixe numérique, qui indique le diviseur par rapport à une ronde: 1=ronde, 2=blanche, 4=noire, 8=croche, 12=triolet, 16=double-croche, etc. On peut aussi ajouter un point comme suffixe, avec la signification musicale habituelle (durée augmentée de 50%). Sans autre indication, la durée d'une note est la même que pour la note précédente:
Le tempo général peut être changé avec l'indication %. Sans autre indication, les notes sont jouées à la vitesse de 100 noires par minute (100%).
Le code R (de l'anglais rest) permet d'introduire un silence, donc la durée est codée comme les notes. On peut aussi changer la dynamique des notes à l'aide des suffixes suivants:
- ! pour une note piquée
- ^ pour une note staccato
- _ pour une note liée
Finalement, il est possible de faire un glissando en préfixant une note par un tiret (-):
Si vous n'avez pas encore votre propre Yocto-Buzzer, vous pouvez faire vos essais ci-dessous pour tester la fonction playNotes:
Quelques exemples
Voici quelques séquences choisies en fonction du message à passer:
OK !
Pas OK...
Ready
Opération réussie
Echec
Terminé
Sonnerie
Alarme
Et quelques thèmes célèbres...
Arriverez-vous à les reconnaître ?