float c0 = 16.352;
float d0 = 18.354;
float e0 = 20.602;
float f0 = 21.827;
float g0 = 24.500;
float a0 = 27.500;
float b0 = 30.868;
float c4 = c0 * 16;
float d4 = d0 * 16;
float e4 = e0 * 16;
float f4 = f0 * 16;
float g4 = g0 * 16;
float a4 = a0 * 16;
float b4 = b0 * 16;
void setup() {
// put your setup code here, to run once:
pinMode(2, OUTPUT);
}
void play_tone(int port, float f, long t) {
const long T = 1000000 / f;
long d = T / 2;
int count = t / T;
for (int i = 0; i < count; i++) {
digitalWrite(port, HIGH);
delayMicroseconds(d);
digitalWrite(port, LOW);
delayMicroseconds(d);
}
}
void loop() {
const int BPM = 100;
const long MINUTE = 60000000;
const long MEASURE = (MINUTE / BPM) * 4; // microseconds
play_tone(2, c4, MEASURE / 4);
delay(10);
play_tone(2, c4, MEASURE / 4);
delay(10);
play_tone(2, g4, MEASURE / 4);
delay(10);
play_tone(2, g4, MEASURE / 4);
delay(10);
play_tone(2, a4, MEASURE / 4);
delay(10);
play_tone(2, a4, MEASURE / 4);
delay(10);
play_tone(2, g4, MEASURE / 2);
delay(10);
}