Загрузка данных



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);
}