const byte SPK = 8;
// Частоты нот в герцах
const int riff[] = {
110,110,165,110,220,165,110,110,
147,147,220,147,294,220,147,147,
110,110,165,220,247,220,165,110,
82,82,123,165,185,165,123,82
};
const byte rhythm[] = {
1,1,1,1,2,1,1,1,
1,1,1,1,2,1,1,1,
1,1,1,1,1,1,1,2,
1,1,1,1,1,1,1,3
};
void setup() {
pinMode(SPK, OUTPUT);
}
void loop() {
// Основной тяжёлый рифф
for (byte repeat = 0; repeat < 4; repeat++) {
for (byte i = 0; i < sizeof(riff)/sizeof(riff[0]); i++) {
int duration = rhythm[i] * 105;
tone(SPK, riff[i], duration * 0.85);
delay(duration);
}
}
// Электронный брейк
for (int i = 0; i < 24; i++) {
int freq = 180 + ((i * 173) % 900);
tone(SPK, freq, 35);
delay(38);
}
// Финальный спуск
for (int freq = 1000; freq >= 100; freq -= 25) {
tone(SPK, freq, 12);
delay(13);
}
noTone(SPK);
delay(350);
}