Codigo para hacer sonar una melodia:
const int crotchet = 100; // negra
const int minim = 2*crotchet; //blanca
const int semibreve = 4*crotchet; //redonda
const int quaver = crotchet / 2; //corchera
const int semiQuarer = crochet / 4; //semicorchera
const int demiSemiQuaver=crotchet / 8; //fusa
const int crotchetWithPoint = crotchet + quarter;
const int minimWithPoint = minim + cotchet;
const int crotchetSilence = crotchet;
const int minimSilence = minim;
const int semiBreveSilence = SemiBreve
const int quarterSilence = quarter;
const int semiQuarterSilence = semiQuarer;
const long Do = 523.25;
const long Re = 587.33;
cost long Mi = 659.26;
const long Fa = 698.49;
const long Sol = 783.99;
const long La = 880;
const long Si = 987.77;
const long PAU = 30000; //Pausa
const int speakerout = 8; //Pin
const int nextNote = 200; //siguiente nota
const int nextBlog = 300;
const int elements = 34;
void setup{
pinMode(speakerOut,OUTPUT);}
void loop(){
int melody[]=Mi, PAU, Mi, Mi, Mi, PAU, Mi, PAU, Mi, Fa, PAU, Sol, Fa, PAU, Mi, PAU, Mi, Fa, Mi, Fa, PAU, Sol, Fa, PAU, Mi, PAU, Mi, Fa, Mi, Fa, PAU, Sol, PAU, Sol
};
int dration[] = { crotchetWithPint, nextNote, quarter, crotchet, crochet, nextNote, crotchet, nextBlock,...
};
for (int note = 0; note < elements; note++){
tone speakerOut, melody[note]);
delay (duration[note]);
note(speaker);}}
Com calculem la freqüencia de les notes?
//Nota provoende de una relacion matematica que es 440*raiz^12de2. //Exemple: La= 440, 00 * ^12√2 = xx lo multiplicamos otra vez da la siguinnete nota.La forula para saber la frecuenciade las notas es: Nota= x(i=0, i < 12) = ferq.Do*^12√2^0 Exemple: NotaFa(5)= freq.Do*^12√2^5 = 261*2^5/12 = √2 * 349,23.
Hi ha un canvi d'octava quan tenim 12√2^12 = 2 i es canvia de octava perquè ha pasat per toes les freqüencies (notes).
C4: Do central Notacion anglosajona des de la X fins a la La que seria una A fins a la si que seria la B. Notación latina;quan la Do és a A.
En un teclat amb 28 tecles teneim 7 o 8 octaves , per aixó té tante tecles. Les cotaves van de : 1a octava 20Hz - 20kHz Van de C1(16.36hZ) - B(15804,426 Hz) Para calcularlo necesitamos: x(i=0, i < 12) = ferq.Do*^12√2^0 * o *2 o = numero de octava