/*
Partitura: https://www.flutetunes.com/tunes/tetris-theme-a-korobeiniki.pdf
Duración de las figuras:
- Blanca: 2 tiempos
- Negra: 1 tiempo
- Corchea: 1/2 tiempo
- Negra con puntillo: 1 + 1/2 = 3/2 tiempos
*/
#include "frecuencias.h"
// Pin de conexión del altavoz
const int pin = 2;
// Tempo en pulsos por minuto (bpm)
int tempo = 144;
// Duración del pulso (ms)
float pulso = 60000.0 / tempo;
// Melodía
int nota[] = {
mi5, si4, do5, re5, do5, si4, // 1
la4, la4, do5, mi5, re5, do5, // 2
si4, do5, re5, mi5, // 3
do5, la4, la4, la4, si4, do5, // 4
re5, fa5, la5, sol5, fa5, // 5
mi5, do5, mi5, re5, do5, // 6
si4, si4, do5, re5, mi5, // 7
do5, la4, la4, silencio, // 8
mi5, si4, do5, re5, do5, si4, // 1
la4, la4, do5, mi5, re5, do5, // 2
si4, do5, re5, mi5, // 3
do5, la4, la4, la4, si4, do5, // 4
re5, fa5, la5, sol5, fa5, // 5
mi5, do5, mi5, re5, do5, // 6
si4, si4, do5, re5, mi5, // 7
do5, la4, la4, silencio, // 8
mi5, do5, // 9
re5, si4, // 10
do5, la4, // 11
solS4, si4, silencio, // 12
mi5, do5, // 13
re5, si4, // 14
do5, mi5, la5, // 15
solS5, silencio // 16
};
float figura[] = {
1, 0.5, 0.5, 1, 0.5, 0.5, // 1
1, 0.5, 0.5, 1, 0.5, 0.5, // 2
1.5, 0.5, 1, 1, // 3
1, 1, 0.5, 0.5, 0.5, 0.5, // 4
1.5, 0.5, 1, 0.5, 0.5, // 5
1.5, 0.5, 1, 0.5, 0.5, // 6
1, 0.5, 0.5, 1, 1, // 7
1, 1, 1, 1, // 8
1, 0.5, 0.5, 1, 0.5, 0.5, // 1
1, 0.5, 0.5, 1, 0.5, 0.5, // 2
1.5, 0.5, 1, 1, // 3
1, 1, 0.5, 0.5, 0.5, 0.5, // 4
1.5, 0.5, 1, 0.5, 0.5, // 5
1.5, 0.5, 1, 0.5, 0.5, // 6
1, 0.5, 0.5, 1, 1, // 7
1, 1, 1, 1, // 8
2, 2, // 9
2, 2, // 10
2, 2, // 11
2, 1, 1, // 12
2, 2, // 13
2, 2, // 14
1, 1, 2, // 15
2, 2 // 16
};
// Número de notas de la melodía
int longitud = sizeof(nota) / sizeof(nota[0]);
void setup() {
}
void loop() {
int i = 0;
while (i < longitud) {
tone(pin, nota[i]);
delay(pulso*figura[i]);
noTone(pin);
i++;
}
}