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


#define NOTE_N   0
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988

// 6-я октава (добавлены отсутствовавшие ноты)
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568

const int buzzerPin = 8;

// Мелодия в точном ритме аккордеонного кавера
int melody[] = {
  // --- Вступление / Запев (Быстрые подскоки) ---
  NOTE_A5, NOTE_C6, NOTE_D6, NOTE_DS6, NOTE_E6, NOTE_N,
  NOTE_A5, NOTE_C6, NOTE_D6, NOTE_DS6, NOTE_E6, NOTE_N,
  NOTE_F6, NOTE_E6, NOTE_D6, NOTE_C6, NOTE_B5, NOTE_C6, NOTE_D6, NOTE_E6,
  
  NOTE_A5, NOTE_C6, NOTE_D6, NOTE_DS6, NOTE_E6, NOTE_N,
  NOTE_A5, NOTE_C6, NOTE_D6, NOTE_DS6, NOTE_E6, NOTE_N,
  NOTE_G6, NOTE_F6, NOTE_E6, NOTE_D6, NOTE_C6, NOTE_B5, NOTE_A5, NOTE_N,

  // --- Основной ускоренный мотив (0:12 в видео) ---
  NOTE_A5, NOTE_A5, NOTE_C6, NOTE_D6, NOTE_E6, NOTE_E6, NOTE_F6, NOTE_E6,
  NOTE_D6, NOTE_C6, NOTE_B5, NOTE_C6, NOTE_D6, NOTE_E6, NOTE_E6, NOTE_N,
  
  NOTE_A5, NOTE_A5, NOTE_C6, NOTE_D6, NOTE_E6, NOTE_E6, NOTE_G6, NOTE_F6,
  NOTE_E6, NOTE_D6, NOTE_C6, NOTE_B5, NOTE_A5, NOTE_A5, NOTE_A5, NOTE_N
};

// Длительности нот (16 = супербыстрая 16-я нота, 8 = 8-я нота)
int noteDurations[] = {
  16, 16, 16, 16, 8, 16,
  16, 16, 16, 16, 8, 16,
  16, 16, 16, 16, 16, 16, 16, 8,
  
  16, 16, 16, 16, 8, 16,
  16, 16, 16, 16, 8, 16,
  16, 16, 16, 16, 16, 16, 8, 16,

  16, 16, 16, 16, 16, 16, 16, 16,
  16, 16, 16, 16, 16, 16, 8, 16,
  
  16, 16, 16, 16, 16, 16, 16, 16,
  16, 16, 16, 16, 16, 16, 8, 16
};

void setup() {
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  int size = sizeof(melody) / sizeof(melody[0]);

  // Дьявольски быстрый темп кабаре
  int tempo = 850; 

  for (int i = 0; i < size; i++) {
    if (melody[i] == NOTE_N) {
      noTone(buzzerPin);
      delay(tempo / noteDurations[i]);
    } else {
      int duration = tempo / noteDurations[i];
      tone(buzzerPin, melody[i], duration);
      // Ультра-короткое стаккато (0.85) для отрывистого звука баяна
      delay(duration * 0.85);
      noTone(buzzerPin);
      delay(duration * 0.15);
    }
  }

  delay(1500);
}