// https://forum.arduino.cc/t/buzzer-producing-quiet-whirring-noise-instead-of-buzzing/1407156/
// passive buzzer musical scale
#include "freqs.h"
byte speakerPin = 3, duration, dur = 500;
const int notes = 10;
const int scales = 9;
const int scale[scales][notes] = {
{CN3, CN4, DN4, EN4, FN4, GN4, FN4, EN4, DN4, CN4}, // C
{CS3, CS4, DS4, FN4, FS4, GS4, FS4, FN4, DS4, CS4}, // C#
{DN3, DN4, EN4, FS4, GN4, AN4, GN4, FS4, EN4, DN4}, // D
{DS3, DS4, FN4, GN4, GS4, AS4, GS4, GN4, FN4, DS4}, // D#
{EN3, EN4, FS4, GS4, AN4, BN4, AN4, GS4, FS4, EN4}, // E
{FN3, FN4, GN4, AN4, AS4, CN5, AS4, AN4, GN4, FN4}, // F
{GN3, GN4, AN4, BN4, CN5, DN5, CN5, BN4, AN4, GN4}, // G
{AN3, AN4, BN4, CS5, DN5, EN5, DN5, CS5, BN4, AN4}, // A
{BN3, BN4, CS5, DS5, EN5, FS5, EN5, DS5, CS5, BN4}, // B
};
// https://i.pinimg.com/originals/cf/72/9a/cf729ae2213a849fe6b8cc527a0e7471.png
void setup() {
pinMode (speakerPin, OUTPUT); // works without pinMode();
for (byte j = 0; j < scales; j++) {
for (byte i = 0; i < 10; i++) {
if (i == 0 || i == 9)
duration = dur * 4;
else
duration = dur;
tone(speakerPin, scale[j][i], duration);
delay(duration * .8);
}
noTone(speakerPin);
}
delay(duration * 2);
}
void loop() {}