micro:bit電子音樂
播放音階
let 音階 = [262, 294, 330, 349, 392, 440, 494,
523, 587, 659, 698, 784, 880, 988,
1046, 1175, 1318, 1397, 1568, 1760, 1976]
basic.forever(function () {
})
for(let i = 0; i < 21; i++) {
music.playTone(音階[i], music.beat())
}
播放20-20000Hz的聲音
basic.forever(function () {
for(let i = 20; i < 20000; i++) {
music.playTone(i, 10);
}
})
播放逼逼聲
basic.forever(function () {
music.playTone(900, 200)
music.rest(music.beat(BeatFraction.Whole))
basic.pause(300)
})
滑音
由高音至低音
let s = 2000;
let v = 0;
basic.forever(function () {
while(s >50 ){
music.playTone(s, 10);
s = s - v;
v = v + 5;
}
})
由低音至高音
let s = 2000;
let v = 0;
basic.forever(function () {
while(s >50 ){
music.playTone(3500-s, 10);
s = s - v;
v = v + 5;
}
})
以上兩個程式的 「v = v +5」,你可以把5改成其他數字,聽聽看不同效果
用三角函數做音樂,試試看改變sin成為tan會怎樣。
basic.forever(function () {
for (let a = 0 ; a < 100 ; a++ ){
let freq = 1000+ 300*Math.sin(a);
music.playTone(freq, 30)
}
})
救護車或警車的聲音
let spd = 15;
basic.forever(function () {
for (let a = 420 ; a < 1300 ; a += spd ){
music.playTone(a, 20)
}
for (let a = 1300 ; a > 500 ; a -= spd ){
music.playTone(a, 20)
}
})
隨機產生亂數聲音
basic.forever(function () {
let freq = randint(100, 2000)
music.playTone(freq, 50)
})