Effets sonores pour le Yocto-Buzzer

Effets sonores pour le Yocto-Buzzer

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 ?








Commenter 2 commentaires Retour au blog



1 - francistor Lundi 30 avril 2018 8H34

Bonjour,
Existe-t-il un moyen simple de convertir une mélodie quelconque en instruction pour le YBuzzer ?
Sinon existe-t-il une liste de commande plus grande que celles listées ci-dessus ?
Merci par avance

2 - mvuilleu (Yocto-Team)Lundi 30 avril 2018 9H22

@francistor Il n'existe pas d'outil pour convertir un fichier MIDI par exemple, si c'est cela que vous espériez... Par contre la notation décrite ci-dessus est a priori suffisamment générique pour permettre presque n'importe quelle mélodie monophonique. Elle est directement inspirée d'une syntaxe classique utilisée pour l'édition de partitions musicales.

Yoctopuce, get your stuff connected.