arduino et Tone avec les notes en FR

Coucou à tous !!

J’ai enfin reçu ma carte arduino … je sais plus ou moins ce que je vais en faire mais je commence d’abord à faire des bidouillage histoire de me roder au système et au langage (du C ++ like)

Donc me premier projet débile c’est :

La francisation de la librairie écrite par Brett Hagman. c’est surtout histoire de m’y retrouver parceque je déteste la notation US des tablatures .

Du coup en 1 : le fichier d’origine pitches.h

En 2 le script que j' ai écris pour rigoler et traduire le tout (Si vous voulez le modifier pour changer la nomenclature des varialbes ... faites vous plaisirs) : Modif_pitches_in_fr.sh

#/bin/bash
#Reecriture du
# le fichier pitches contient toutes les valeurs de fréquence des notes usuelles (Do, Ré, Mi, Fa, Sol, La, Si) dans des octaves différents.
# mais en notation US
# Ce script les réécrit en version FR au même endroit que pitches.h : pitches_fr.h
if [[ -z ${1} ]]
then
echo "vous devez entre le path complet du fichier pitches.h"
exit
fi
PATH_PITCH=`dirname ${1}`
while read var
do
LINE=`echo "${var}" | grep "#"| cut -d " " -f2-5 | sed "s# # #g" | sed "s# #|#g"`
for NOTE in `echo "A|LA B|SI C|DO D|RE E|MI F|FA G|SOL"`
do
REAL_NOTE=`echo ${NOTE}| cut -d "|" -f2`
US_NOTE=`echo ${NOTE}| cut -d "|" -f1`
if [[ ! -z "`echo $LINE | grep ${US_NOTE}[0-9]`" ]]
then
echo \#define $LINE | sed "s#_${US_NOTE}#_${REAL_NOTE}_#g" | sed "s#|# #g"
fi
if [[ ! -z "`echo $LINE | grep ${US_NOTE}S[0-9]`" ]]
then
echo \#define $LINE | sed "s#_${US_NOTE}S#_${REAL_NOTE}_D_#g"| sed "s#|# #g"
fi
done
# echo $LINE
done < $1 | tee ${PATH_PITCH}/pitches_fr.h
echo -e " Votre nouveau fichier de valeurs de fréquence des notes usuelles en francais se trouve ici :\n${PATH_PITCH}/pitches_fr.h"

Le résultat je vous laisse le faire vous même au si non c’est pas drôle

Et pour rigoler voila ce que ça donne avec le code et les photos du prototypage :

Le code source example :

#include "<path de votre pitches en fr>/pitches_fr.h"int melody[] = {
NOTE_MI_3,NOTE_LA_3,NOTE_MI_3,NOTE_SI_3,NOTE_MI_3,NOTE_SOL_3,NOTE_LA_3,NOTE_MI_3,NOTE_DO_4,NOTE_MI_3,NOTE_RE_4,NOTE_MI_3,NOTE_SI_3,NOTE_DO_4,NOTE_SI_3,NOTE_MI_3,NOTE_LA_3, };
int noteDurations[] = {
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, };
void setup() {
for (int thisNote = 0; thisNote < 17; thisNote++) {
int noteDuration = 1000/noteDurations[thisNote];
tone(8, melody[thisNote],noteDuration);
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
noTone(8);
}
}
void loop() {
}

et pour le prototypage :

Voila … à bientôt pour de nouveaux trux qui servent à rien