カエルの輪唱 [Arduino]
カエルのうたを輪唱します。
圧電サウンダを複数つけることや、波形の合成はちょっとむつかしそうだったので、1音をこまぎれにして鳴らそうと思います。「ドーー」を、「ドッ、ドッ、ドッ、ドッ」っといった感じです。
音程は、1オクターブ上げた方がきれいに聞こえました。(周波数を2倍にしました。)
1オクターブの中には、#や♭を含め12音あって、その周波数は2の12乗根の等比数列になっていて、1オクターブ(12音)で周波数が2倍になると信じていましたが、もっと奥が深いもののようでした。
平均律 - Wikipedia
http://ja.wikipedia.org/wiki/%E5%B9%B3%E5%9D%87%E5%BE%8B
ソースはこんな感じです。
再生できない場合、ダウンロードは🎥こちら
とりあえずの完成ということで。
圧電サウンダを複数つけることや、波形の合成はちょっとむつかしそうだったので、1音をこまぎれにして鳴らそうと思います。「ドーー」を、「ドッ、ドッ、ドッ、ドッ」っといった感じです。
音程は、1オクターブ上げた方がきれいに聞こえました。(周波数を2倍にしました。)
1オクターブの中には、#や♭を含め12音あって、その周波数は2の12乗根の等比数列になっていて、1オクターブ(12音)で周波数が2倍になると信じていましたが、もっと奥が深いもののようでした。
平均律 - Wikipedia
http://ja.wikipedia.org/wiki/%E5%B9%B3%E5%9D%87%E5%BE%8B
ソースはこんな感じです。
// カエルの歌 輪唱(12ピンに圧電サウンダ)
#define Do 262
#define Re 294
#define Mi 330
#define Fa 349
#define So 392
#define La 440
#define Ti 494
int kaeru[] = {
Do, 0, Re, 0, Mi, 0, Fa, 0, Mi, 0, Re, 0, Do, 0, 0, 0,
Mi, 0, Fa, 0, So, 0, La, 0, So, 0, Fa, 0, Mi, 0, 0, 0,
Do, 0, 0, 0, Do, 0, 0, 0, Do, 0, 0, 0, Do, 0, 0, 0,
Do, Do, Re, Re, Mi, Mi, Fa, Fa, Mi, 0, Re, 0, Do, 0, 0, 0 };
void setup() {
}
void loop() {
int t, part, i;
for (t = 0; t < 128; t++) {
for(i = 0; i < 4; i++) { // 1音を4回に分けて鳴らす
for(part = 0; part < 4; part++) {
tone( 12, (t/16-part+4)/4==1 ? kaeru[t-part*16]*2 : 0 , 20);
delay(20);
noTone(12);
}
}
}
}
再生できない場合、ダウンロードは🎥こちら
とりあえずの完成ということで。
2011-08-15 00:47
nice!(0)
コメント(0)
トラックバック(0)
コメント 0