Étape 3: Mods esquisse
http://code.google.com/p/Rogue-code/wiki/ToneLibraryDocumentation
Comment fonctionnent les sons est essentiellement que la bibliothèque crée une onde carrée de la fréquence spécifiée. Vous définissez ce que notes que vous voulez joué dans le début de l’esquisse. Vous devez également définir combien de temps chaque note sera jouée. L’image montre ce qui relève de que la bibliothèque est capable de générer.
Dans ce cas, nous définissons quelques airs, [starttune] et [note]. Nous définissons également la durée de chaque chanson comme durée [] et [] Durée2. Starttune [] tune est la mélodie de la danse du chapeau mexicain et la mélodie de [] Remarque est la mélodie de l’accusation.
int starttune [] = {NOTE_C4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_F4, NOTE_G4} ;
int Durée2 [] = {100, 200, 100, 200, 100, 400, 100, 100, 100, 100, 200, 100, 500} ;
note d’int [] = {NOTE_C4, NOTE_C4, NOTE_G4, NOTE_C5, NOTE_G4, NOTE_C5} ;
la durée d’int [] = {100, 100, 100, 300, 100, 300} ;
Vous pouvez modifier les Notes et les durées de créer quelque peu de musique que vous souhaitez ont joué. Les temps de durée j’ai joué un peu avec jusqu'à ce qu’ils sonnaient juste pour moi. Mais la durée de 100 s’élève à une note de 1/8, 200 est une note noire, 300 est fondamentalement une note pointée de quart, 400 une note de moitié et 500 une note pointée de moitié. L’unité joue à travers la mélodie assez rapide, mais vous pouvez contrôler la vitesse en plaçant un retard dans la boucle qui joue la mélodie. Si vous modifiez le nombre de notes utilisé dans aucune des mélodies que vous devrez mettre à jour la section où la mélodie est jouée.
Pour jouer ces chansons Qu'on saute vers le bas pour cette section.
pour (int thisNote = 0; thisNote < 13 ; thisNote ++) {}
Jouez la note suivante :
speakerpin.Play(starttune[thisNote]) ;
tenir la note :
Si (thisNote == 0 || thisNote == 2 || thisNote == 4 || thisNote == 6)
{
digitalWrite (ledpin [0], HIGH) ;
}
Si (thisNote == 1 || thisNote == 3 || thisNote == 5 || thisNote == 7 || thisNote == 9 || thisNote == 11)
{
digitalWrite (ledpin [1], HIGH) ;
}
Si (thisNote == 8 || thisNote == 12)
{
digitalWrite (ledpin [2], haut) ;
}
Si (thisNote == 10)
{
digitalWrite (ledpin [3], HIGH) ;
}
Delay(duration2[thisNote]) ;
arrêt pour la note suivante :
speakerpin.Stop() ;
digitalWrite (ledpin [0], faible) ;
digitalWrite (ledpin [1], faible) ;
digitalWrite (ledpin [2], faible) ;
digitalWrite (ledpin [3], faible) ;
Delay(25) ;
}
Nous utilisons une instruction for () pour exécuter une boucle à travers la mélodie que nous voulons jouer. Dans le "pour (int thisNote = 0 ; thisNote < 13 ; thisNote ++) {"ligne les référés numéro 13 au nombre de notes de la mélodie. Le code commence à la première note et génère le ton pour la durée spécifiée. Tandis que de son fait que le code est l’éclairage, une LED correspondante selon ce qu’elle remarque est à dans la séquence. Ainsi, vous pouvez aller et changer les LED s’allume en vertu de quelle note à faire les lumières dansent comme bon vous semble. Le retard mis après avoir éteint les LEDs contrôle le tempo de la musique. Dans ce cas, lors de la 13e note a été jouée le programme déplace.
Le corps principal de l’esquisse (Sub loop()) est où le programme lit le tableau généré de manière aléatoire et commence à clignoter la LED et jouer une note. Toutes les notes que vous redéfinissez il faut être dupliqué dans le Sub input() donc la même note est jouée lorsque vous appuyez sur les boutons.
Le ton a joué quand vous ratez la séquence que j’ai gardé comme un simple ton 2 note que quelques fois par une boucle. Vous le trouverez dans la section Sub fail() de l’esquisse.