返回網站

Music Box Class

2020年11月14日

第一支與第二支程式請參考講義親自撰打,第三支與第四支如以下。

第三支

int sound = 0;
//音階頻率
int freq[] = {262,294,330,349,392,440,494};
//輸入歌曲音調
int beetone[] = {5,3,3,4,2,2,1,2,3,4,5,5,5,5,3,3,4,2,2,1,3,5,5,3,2,2,2,2,2,3,4,3,3,3,3,3,4,5,5,3,3,4,2,2,1,3,5,5,1};
//輸入節拍
int beat[] = {1,1,2,1,1,2,1,1,1,1,1,1,2,1,1,2,1,1,2,1,1,1,1,4,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,2,1,1,2,1,1,1,1,4};
void setup() {
pinMode(sound,OUTPUT);
}
void loop() {
for(int i = 0 ; i < 49 ; i++){
tone(sound, freq[beetone[i]-1]);
delay(beat[i]*250);
noTone(sound);
delay(0);
}
delay(1000);
}

第四支

int sound = 0;
//音階頻率
int freq[] = {262,294,330,349,392,440,494,523,587,659,698,784,110};
//輸入歌曲音調
int xmastone[] = {5,5,10,9,8,5,5,5,10,9,8,6,6,6,11,10,9,6,12,12,11,9,10,8,5,5,10,9,8,5,5,5,10,9,8,6,6,11,10,9,12,12,12,12,13,12,11,9,8,10,10,10,10,10,10,10,12,8,9,10,11,11,11,11,10,10,10,10,10,9,9,8,9,12,10,10,10,10,10,10,10,12,8,9,10,11,11,11,11,10,10,10,10,12,12,11,9,8};
//輸入節拍
int beat[] = {1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,4};
void setup() {
pinMode(sound,OUTPUT);
}

void loop() {
for(int i = 0 ; i < 99 ; i++){
tone(sound, freq[xmastone[i]-1]);
delay(beat[i]*250);
noTone(sound);
delay(5);
}
delay(1000);
}

建議延伸閱讀

音樂與數學: 從弦內之音到弦外之音