Arduino Nya nya nya nya nya nya nya nya nya nya nya nya nya nya nya nya nya nya nya nya nya
La musique du Nyan Cat sur un arduino?
Je l'ai fait et je n'en suis vraiment pas fier; encore moins au point d'en écrire un billet sur ce blog.
Bon OK, c'est vraiment pour vous faire plaisir.
le montage: un buzzer entre la pin 11 et le GND (parceque ça correspond à l'écartement des pates du buzzer).
le microphone que vous voyez sur la photographie a enregistré ça:
La partition de NyanNyanNyanNyanNyan en C pour l'arduino c'est ceci:
/* *By Gnieark https://blog-du-grouik.tinad.fr/ (le code, pas la musique) *Faites ce que vous voulez du code, par contre pour la musique, *Voyez avec son auteur, je n'ai aucun droit là dessus, *Mais c'est vous qui allez la charger sur la puce de votre arduino. *Pas moi * *Un peu de culture au passage: *Quand on passe d'un octave à celui au dessus, on double la fréquence de l'onde sonore. *A=La, B=Si etc.... */ int speakerPin = 11; char names[] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g'}; int tones[] = { 110, 123, 131, 147, 165, 175, 196 }; int tonesDiese[] = {117,0,139,156,0,185,208}; int tempo = 120;//double croche void playNote(char note, int octave, int duration, boolean diese=false) { // play the tone corresponding to the note name int i=0; while((names[i]!=note) && (i<7)){ i++; } if (diese) { tone(speakerPin,tonesDiese[i] * octave, duration * tempo); }else{ tone(speakerPin,(tones[i] * octave), duration * tempo); } delay(duration * tempo); noTone(speakerPin); } void setup() { pinMode(speakerPin, OUTPUT); //intro playNote('d',3,1,true); playNote('e',3,1,false); playNote('f',3,1,true); delay(tempo); playNote('b',4,1,false); playNote('e',3,1,false); playNote('d',3,1,true); playNote('e',3,1,false); playNote('f',3,1,true); playNote('b',4,1,false); playNote('d',4,1,true); playNote('e',4,1,false); playNote('d',4,1,true); playNote('a',4,1,true); playNote('b',4,1,false); delay(tempo); playNote('f',3,1,true); delay(tempo); playNote('d',3,1,true); playNote('e',3,1,false); delay(tempo); playNote('f',3,1,true); delay(tempo); playNote('b',4,1,false); playNote('c',4,1,true); playNote('a',4,1,true); playNote('b',4,1,false); playNote('c',4,1,true); playNote('e',4,1,false); playNote('f',4,1,true); playNote('e',4,1,false); playNote('c',4,1,true); } void loop() { playNote('f',3,1,true); delay(tempo); playNote('g',3,1,true); delay(tempo); playNote('d',3,1,true); playNote('d',3,1,true); delay(tempo); playNote('b',3,1,true); playNote('d',3,1,false); playNote('c',3,1,true); playNote('b',3,1,false); delay(tempo); playNote('b',3,1,false); delay(tempo); playNote('c',3,1,true); delay(tempo); playNote('d',3,1,false); delay(tempo); playNote('d',3,1,false); playNote('c',3,1,true); playNote('b',3,1,false); playNote('c',3,1,true); playNote('d',3,1,true); playNote('f',3,1,true); playNote('g',3,1,true); playNote('d',3,1,true); playNote('f',3,1,true); playNote('c',3,1,true); playNote('d',3,1,true); playNote('b',3,1,false); playNote('c',3,1,true); playNote('b',3,1,false); playNote('d',3,1,true); delay(tempo); playNote('f',3,1,true); delay(tempo); playNote('g',3,1,true); playNote('d',3,1,true); playNote('f',3,1,true); playNote('c',3,1,true); playNote('d',3,1,true); playNote('b',3,1,false); playNote('c',3,1,true); playNote('d',3,1,true); playNote('d',3,1,false); playNote('c',3,1,true); playNote('b',3,1,false); playNote('c',3,1,true); playNote('d',3,1,false); delay(tempo); playNote('b',3,1,false); playNote('c',3,1,true); playNote('d',3,1,true); playNote('f',3,1,true); playNote('c',3,1,true); playNote('d',3,1,false); playNote('c',3,1,true); playNote('b',3,1,false); playNote('c',3,1,true); delay(tempo); playNote('b',3,1,false); delay(tempo); playNote('c',3,1,true); delay(tempo); playNote('f',3,1,true); delay(tempo); playNote('g',3,1,true); delay(tempo); playNote('c',3,1,true); playNote('d',3,1,true); delay(tempo); playNote('c',3,1,true); playNote('d',3,1,false); playNote('c',3,1,true); playNote('b',3,1,false); delay(tempo); playNote('b',3,1,false); delay(tempo); playNote('c',3,1,true); delay(tempo); playNote('d',3,1,false); delay(tempo); playNote('d',3,1,false); playNote('c',3,1,true); playNote('b',3,1,false); playNote('c',3,1,true); playNote('d',3,1,true); playNote('f',3,1,true); playNote('g',3,1,true); playNote('d',3,1,true); playNote('f',3,1,true); playNote('c',3,1,true); playNote('d',3,1,true); playNote('b',3,1,false); playNote('c',3,1,true); playNote('b',3,1,false); playNote('d',3,1,true); delay(tempo); playNote('f',3,1,true); delay(tempo); playNote('g',3,1,true); playNote('d',3,1,true); playNote('f',3,1,true); playNote('c',3,1,true); playNote('d',3,1,true); playNote('b',3,1,false); playNote('c',3,1,true); playNote('d',3,1,true); playNote('d',3,1,false); playNote('b',3,1,false); playNote('c',3,1,true); playNote('d',3,1,false); delay(tempo); playNote('b',3,1,false); playNote('c',3,1,true); playNote('d',3,1,true); playNote('f',3,1,true); playNote('c',3,1,true); playNote('d',3,1,false); playNote('c',3,1,true); playNote('b',3,1,false); playNote('c',3,1,true); delay(tempo); playNote('b',3,1,false); delay(tempo); playNote('b',3,1,false); delay(tempo); playNote('b',3,1,false); delay(tempo); playNote('f',2,1,true); playNote('g',2,1,true); playNote('b',3,1,false); delay(tempo); playNote('f',2,1,true); playNote('g',2,1,true); playNote('b',3,1,false); playNote('c',3,1,true); playNote('d',3,1,true); playNote('b',3,1,false); playNote('e',3,1,false); playNote('d',3,1,true); playNote('e',3,1,false); playNote('f',3,1,true); playNote('b',3,1,false); delay(tempo); playNote('b',3,1,false); delay(tempo); playNote('f',2,1,true); playNote('g',2,1,true); playNote('b',3,1,false); playNote('f',2,1,true); playNote('e',3,1,false); playNote('d',3,1,true); playNote('c',3,1,true); playNote('b',3,1,false); playNote('e',2,1,false); playNote('d',2,1,true); playNote('e',2,1,false); playNote('f',2,1,true); playNote('b',3,1,false); delay(tempo); playNote('f',2,1,true); playNote('g',2,1,true); playNote('b',3,1,false); delay(tempo); playNote('f',2,1,true); playNote('g',2,1,true); playNote('b',3,1,false); playNote('b',3,1,false); playNote('c',3,1,true); playNote('d',3,1,true); playNote('b',3,1,false); playNote('f',2,1,true); playNote('g',2,1,true); playNote('f',2,1,true); playNote('b',3,1,false); delay(tempo); playNote('b',3,1,false); playNote('a',3,1,true); playNote('b',3,1,false); playNote('f',2,1,true); playNote('g',2,1,true); playNote('b',3,1,false); playNote('e',3,1,false); playNote('d',3,1,true); playNote('e',3,1,false); playNote('f',3,1,true); playNote('b',3,1,false); delay(tempo); playNote('a',3,1,true); delay(tempo); playNote('b',3,1,false); delay(tempo); playNote('f',2,1,true); playNote('g',2,1,true); playNote('b',3,1,false); delay(tempo); playNote('f',2,1,true); playNote('g',2,1,true); playNote('b',3,1,false); playNote('c',3,1,true); playNote('d',3,1,true); playNote('b',3,1,false); playNote('e',3,1,false); playNote('d',3,1,true); playNote('e',3,1,false); playNote('f',3,1,true); playNote('b',3,1,false); delay(tempo); playNote('b',3,1,false); delay(tempo); playNote('f',2,1,true); playNote('g',2,1,true); playNote('b',3,1,false); playNote('f',2,1,true); playNote('e',3,1,false); playNote('d',3,1,true); playNote('c',3,1,true); playNote('b',3,1,false); playNote('e',2,1,false); playNote('d',2,1,true); playNote('e',2,1,false); playNote('f',2,1,true); playNote('b',3,1,false); delay(tempo); playNote('f',2,1,true); playNote('g',2,1,true); playNote('b',3,1,false); delay(tempo); playNote('f',2,1,true); playNote('g',2,1,true); playNote('b',3,1,false); playNote('b',3,1,false); playNote('c',3,1,true); playNote('d',3,1,true); playNote('b',3,1,false); playNote('f',2,1,true); playNote('g',2,1,true); playNote('f',2,1,true); playNote('b',3,1,false); delay(tempo); playNote('b',3,1,false); playNote('a',3,1,true); playNote('b',3,1,false); playNote('f',2,1,true); playNote('g',2,1,true); playNote('b',3,1,false); playNote('e',3,1,false); playNote('d',3,1,true); playNote('e',3,1,false); playNote('f',3,1,true); playNote('b',3,1,false); delay(tempo); playNote('c',3,1,true); delay(tempo); }
Commentaires
Prochaine étape : la synthèse vocale par phonème sur Arduino ;-)
héhé vi j'hésite entre la synthèse vocale ou coder un équivalent de google earth sur la puce de l'arduino ;)
Je pense que tu surestimes les ressources nécessaires pour faire de la synthèse vocale par phonème. Ça se faisait déjà au tout début des années 80 et je doute qu’on eut eu les mêmes capacités qu’un Arduino à l’époque ;-)
Je veux dire, site de qualité. Je l'ai trouvé sur google. 08))