//saya ambil contoh lagu happy birthday
int NOTE_G4 = 392; //nada G(sol) dengan oktaf 4(tengah)
int NOTE_C5 = 523; //nada C(do) dengan oktaf 5(tinggi)
int NOTE_D5 = 587; //nada D(re) dengan oktaf 5(tinggi)
int NOTE_A4 = 440; //nada A(la) dengan oktaf 4(tengah)
int NOTE_B4 = 494; //nada B(si) dengan oktaf 4(tengah)
int NOTE_E5 = 659; //nada E(mi) dengan oktaf 5(tinggi)
int NOTE_G5 = 784; //nada G(sol) dengan oktaf 5(tinggi)
//kita susun nada nada agar menjadi melodi:
int melody[] ={
NOTE_G4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_C5, NOTE_B4,
NOTE_G4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_D5, NOTE_C5,
NOTE_G4, NOTE_G4, NOTE_G5, NOTE_E5, NOTE_C5, NOTE_B4, NOTE_A4,
NOTE_E5, NOTE_E5, NOTE_D5, NOTE_C5, NOTE_D5, NOTE_C5
};
//durasi nada:
//4 = QUARTER NOTE(SEPEREMPAT(1 ketukan))
//2 = HALF NOTE(SETENGAH(2 ketukan))
//1 = WHOLE NOTE(PENUH(4 ketukan))
int noteDurations[]{
4,4,2,2,2,1,
4,4,2,2,2,1,
4,4,2,2,2,2,1,
4,4,2,2,2,1
};
void setup(){
// Intro/pembuka 3 ketukan pelan (optional)
//tone(12, NOTE_C5, 50); // Nada pertama, pelan
//delay(600);
//tone(12, NOTE_G4, 75); // Nada kedua, pelan
//delay(600);
//tone(12, NOTE_A4, 100); // Nada ketiga, pelan
//delay(600);
noTone(12); // clear nada dulu (jeda)
delay(600);
}
void loop(){
//iterasi dari setiap nada:
for (int thisNote = 0; thisNote < 26; thisNote++) {
// Menghitung durasi nada
int noteDuration = 1000 / noteDurations[thisNote];
// Memainkan nada pada pin 12
tone(12, melody[thisNote], noteDuration);
// Jeda antar nada
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
}
// Tambahkan jeda panjang sebelum mengulang melodi
delay(500);
}
//terimakasih, Dhimas XI TAV dengan dibantu Claude AI. Kamis, 12-Dec-2024.