우리에게 너무나 친숙한 노래 엄마야∼누나야∼를 LED wave 와 함께 편곡하였다. 아두이노 연주에 있어서 특히 이음표 처리가 되지 않아 어색한 점이 있을 듯하다. LED wave 에 집중하여 음악 연주를 들어 보자.
연주를 위한 배선은 아래의 클레멘타인 연주 관련 블로그 포스팅을 참조하자.
아두이노 코딩-47: 클레멘타인 연주와 LED wave 영상
https://steemit.com/kr/@codingart/47-led-wave
LED 배선이 여의치 않은 분들은 LED 배선을 빼고 곡만 코딩해 보시기 바란다.
아래 자료는 직접 코딩을 수정하거나 개량하기 위한 악보 코딩을 위한 데이터이니 참고하시기 바란다.
계명과 Note 대조표
레 D4
도 C4
시 B3
라 A3
솔 G3
파 FS3
미 E3
레 D3
도 C3
시 B2
라 A2
엄마야 누나야 계명(Note) 자료
미 라 솔 라 솔 라 미 미 레 미 솔 레 미 13개
NOTE_E3, NOTE_A3, NOTE_G3, NOTE_A3, NOTE_G3, NOTE_A3, NOTE_E3, NOTE_E3, NOTE_D3, NOTE_E3, NOTE_G3, NOTE_D3, NOTE_E3,
4 6 5 6 5 6 4 4 3 4 5 3 4
라 도 시 라 레 도 시 라 솔 미 솔 라 라 13개
NOTE_A3, NOTE_C4, NOTE_B3,NOTE_A3, NOTE_D4, NOTE_C4, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_E3, NOTE_G3, NOTE_A3, NOTE_A3,
6, 8, 7, 6, 9, 8, 7, 6, 5, 4, 5, 8, 8,
라 미 미 레 라 미 라 시 도 시 라 솔 라 미 14개
NOTE_A2, NOTE_E3, NOTE_E3, NOTE_D3, NOTE_A3, NOTE_E3, NOTE_A3,NOTE_B3, NOTE_C4,NOTE_B3, NOTE_A3,NOTE_G3,NOTE_A3, NOTE_E3,
6, 4, 4, 3, 6, 4, 6,7,8,7, 6, 5, 6, 4
라 레 도 시 라 솔 미 솔 시 솔 라 11개
NOTE_A3, NOTE_D4, NOTE_C4, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_E3, NOTE_G3, NOTE_B3,NOTE_G3, NOTE_A3
※갯수 체크는 LED 번호를 부여하기 위해 체크하였음
다음의 동연상 연주를 감상하시기 바란다.
//toneMelody_MotherSister_lyric_LED_wave_01
#include "pitches.h"
int speakerPin = 12;
// notes in the melody:
int melody[] = {NOTE_E3, NOTE_A3, NOTE_G3, NOTE_A3, NOTE_G3, NOTE_A3, NOTE_E3, NOTE_E3, NOTE_D3, NOTE_E3, NOTE_G3, NOTE_D3, NOTE_E3,
NOTE_A3, NOTE_C4, NOTE_B3,NOTE_A3, NOTE_D4, NOTE_C4, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_E3, NOTE_G3, NOTE_A3, NOTE_A3,
NOTE_A2, NOTE_E3, NOTE_E3, NOTE_D3, NOTE_A3, NOTE_E3, NOTE_A3,NOTE_B3, NOTE_C4,NOTE_B3, NOTE_A3,NOTE_G3,NOTE_A3, NOTE_E3,
NOTE_A3, NOTE_D4, NOTE_C4, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_E3, NOTE_G3, NOTE_B3,NOTE_G3, NOTE_A3
};
int LED[] = {4 ,6 ,5 ,6 ,5 ,6 ,4 ,4 ,3 ,4 ,5 ,3, 4,
6, 8, 7, 6, 9, 8, 7, 6, 5, 4, 5, 8, 8,
6, 4, 4, 3, 6, 4, 6,7,8,7, 6, 5, 6, 4,
6, 9, 8, 7, 6, 5, 4, 5, 7, 5, 6
};
// note durations: 4 = quarter note, 8 = eighth note, etc.:
float noteDurations[] = {
4, 8, 8, 4, 8, 8, 4, 4, 2.67, 8, 8, 8, 1.33,
4, 8, 8, 4, 8, 8, 4, 4, 2.67, 8, 8, 8, 1.33,
4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 12, 12,1.33,
4, 4, 4, 4, 4, 4, 2.67, 8, 8, 8, 1.33
};
int pinLED[] ={2,3,4,5,6,7,8,9,10,11};
int i;
void setup() {
for( i = 0; i<10; i++ ) {
pinMode(pinLED[i],OUTPUT);//10개의 LED 단체로 출력 모드 선언
}
for (int thisNote = 0; thisNote < 51; thisNote++) {
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 2000 / noteDurations[thisNote];
digitalWrite(LED[thisNote]-1, HIGH);
digitalWrite(LED[thisNote], HIGH);
digitalWrite(LED[thisNote]+1, HIGH);
tone(speakerPin, melody[thisNote], noteDuration);
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
noTone(speakerPin);// stop the tone playing:
digitalWrite(LED[thisNote]-1, LOW);
digitalWrite(LED[thisNote], LOW);
digitalWrite(LED[thisNote]+1, LOW);
}
}
void loop() {
// no need to repeat the melody.
}//끝