Bonjour,
Ma fille m'a dit "pas cap de faire strawarsse "
Je vous montre comment j'ai fait, la critique est bien venue, je dispose des DVD originaux d'une musique qui ressemble ainsi que des partitions, bien entendu, INTERDICTION FORMELLE D'UTILISER CE CODE si vous ne disposez pas des droits nécessaires.
Je décline toutes responsabilités de toutes natures, je ne suis pas modérateur, INTERDIT DE PUBLIER CE SCRIPT SANS AVOIR RETIRE LA PARTITION , bon, là, je suis protégé avec tout ça !
Ha oui....la balise
/******* boite à musique *******/
//vertion française que j'aime
#define DO 65
#define DOd 69
#define RE 74
#define REd 78
#define MI 83
#define FA 87
#define FAd 93
#define SOL 98
#define SOLd 104
#define LA 110
#define LAd 117
#define SI 123
// vertion que j'aime pas
#define C 65
#define Cd 69
#define D 74
#define Dd 78
#define E 83
#define f 87 /* désolé, pas possible un F, chépa pk */
#define fd 93
#define G 98
#define Gd 104
#define A 110
#define Ad 117
#define B 123
/*____________________________________________________________________________________________________________________*/
//à partir de la, c'est la partition
/*à definir le nombre de notes */
int nombredenotes=191;
/* à definir tempo (le métronome en fait)*/
int tempo=120;
char melodie[191][4]=
{
//fa# a la clef
/*1*/ RE,1,1,1,// 1
RE,1,1,1,
RE,1,1,1,
SOL,7,1,1,
RE,7,2,1,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,7,2,1,
/*10*/ RE,2,2,0,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,8,2,0,
RE,2,2,0,
DO,2,2,0,
SI,2,1,0,
DO,2,2,0,
LA,8,1,0,
/*20*/ RE,1,1,1,//2
RE,1,1,1,
RE,1,1,1,
SOL,7,1,1,
RE,7,2,1,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,7,2,1,
RE,2,2,0,
/*30*/ DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,7,2,1,
RE,2,2,0,
DO,2,2,0,
SI,2,1,0,
DO,2,2,0,
LA,7,1,1,
RE,1,1,1,//3
/*40*/ RE,1,1,1,
RE,1,1,1,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,2,1,0,
SOL,2,1,0,
LA,2,1,0,
SI,2,1,0,
LA,2,1,0,
/*50*/ MI,1,1,0,
FAd,2,1,0,
RE,2,1,1,
RE,1,1,0,
MI,2,1,1,
MI,1,1,0,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,2,1,0,
/*60*/ RE,2,2,1,
LA,1,1,0,
LA,7,1,1,
RE,1,1,1,//4
RE,1,1,1,
RE,1,1,1,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,2,1,0,
/*70*/ SOL,2,1,0,
LA,2,1,0,
SI,2,1,0,
LA,2,1,0,
MI,1,1,0,
FAd,2,1,0,
RE,1,2,1,
RE,1,2,1,
SOL,2,2,0,
FA,1,2,0,
/*80*/ REd,2,2,0,
RE,1,2,0,
DO,2,2,0,
LAd,1,1,0,
LA,2,1,0,
SOL,1,1,0,
RE,7,2,1,//5
RE,1,1,1,
RE,1,1,1,
RE,1,1,1,
/*90*/ SOL,7,1,1,
RE,7,2,1,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,7,2,1,
RE,2,2,0,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
/*100*/SOL,7,2,1,
RE,2,2,0,
DO,2,2,0,
SI,2,1,0,
DO,2,2,0,
LA,7,1,1,
RE,1,1,1,//6
RE,1,1,1,
RE,1,1,1,
SOL,7,1,1,
/*110*/RE,7,2,1,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,7,2,1,
RE,2,2,0,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,7,2,1,
/*120*/RE,2,2,0,
DO,2,2,0,
SI,2,1,0,
DO,2,2,0,
LA,7,1,1,
RE,1,1,1,//7
RE,1,1,1,
RE,1,1,1,
DO,2,2,0,
SI,2,1,0,
/*130*/LA,2,1,0,
SOL,2,1,0,
SOL,2,1,0,
LA,2,1,0,
SI,2,1,0,
LA,2,1,0,
MI,1,1,0,
FAd,2,1,0,
RE,2,1,1,
RE,1,1,0,
/*140*/MI,2,1,1,
MI,1,1,0,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,2,1,0,
RE,2,2,1,
LA,1,1,0,
LA,8,1,0,
RE,1,1,1,//8
/*150*/RE,1,1,1,
RE,1,1,1,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,2,1,0,
SOL,2,1,0,
LA,2,1,0,
SI,2,1,0,
LA,2,1,0,
/*160*/MI,1,1,0,
FAd,2,1,0,
RE,1,2,1,
RE,1,2,1,
SOL,2,2,0,
FA,1,2,0,
REd,2,2,0,
RE,1,2,0,
DO,2,2,0,
LAd,1,1,0,
/*170*/LA,2,1,0,
SOL,1,1,0,
RE,7,2,1,
RE,1,1,1,//9
RE,1,1,1,
RE,1,1,1,
SOL,7,1,1,
RE,7,2,1,
DO,2,2,0,
SI,2,1,0,
/*180*/LA,2,1,0,
SOL,7,2,1,
RE,2,2,0,
DO,2,2,0,
SI,2,1,0,
LA,2,1,0,
SOL,7,2,1,
RE,2,2,0,
DO,2,2,0,
SI,2,1,0,
/*190*/DO,2,2,0,
/*191*/LA,7,1,20
};//fin de la partition
/*___________________________________________________________________________________________*/
int HP=12; /* HP = haut parleur j'ai
choisi la 12 mais fais comme bon te semble*/
void setup()
{
pinMode(HP,OUTPUT); // on défini la pineHP comme une sortie
digitalWrite(HP,LOW);// on la met en bas
}
void loop()
{
for (int p=0;p<nombredenotes;p++) /*incrémente pour faire défiler la partition n*/
{
int note=melodie[p][0]; //corespond a la valeur de la note DO ,RE,MI ou C, D, E au choix vous irrez pas vous plaindre !mais pas f minuscule
int temps=melodie[p][1];//corespond a la durée de la note (si 1 ti la la la si 2, tii laa laa laa)
int octave=melodie[p][2];//correspond a l'octave
int silence=melodie[p][3];//et enfin correspond au silence (si 0 : tilalalalalatitila.... si 1 : ti la la la...;si 2: ti la la la)
int frequence=(note*pow(2,octave)*1.5); /*calcul de la frequence le 1.5 permet d'accorder comme on veux , de désaccorder je devrais dire
pour LA -- > octave 2--> frequence = 110 * 4 = 440 (fréquence standar du LA); octave 3 --> frequence = 110*8 = 880*/
int duree=tempo*temps; //calcul de la duree de la note
int pause=silence*tempo; //calcul des silences
tone(HP,frequence);//joue la note DO ou RE ou C ou encore D selon ta partition
delay(duree);//durée de la note
noTone(HP);// RAZ HP
delay(pause);//duré du silence
}
delay(100); // à définir
}