1
如何在同一時間播放多個音符以與Firefox音頻數據API形成和絃?我希望能夠用3個音符填充單個陣列,並同時播放它們。這裏是我的代碼至今其作品,但和絃聽起來很恐怖:如何使用Firefox音頻數據API播放和絃
<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
// Create an Audio interface
var output = new Audio();
// Set up a mono channel at 44.1Khz
output.mozSetup(1, 44100);
// Create a sample buffer array
var samples = new Float32Array(22050); //22050 = 1 second
var g = 2* Math.PI * 391.995/44100;
var e = 2* Math.PI * 329.628/44100;
var c = 2* Math.PI * 261.626/44100;
// Fill the sample buffer array with values
for(var i=0; i<samples.length; i++){
samples[i] = Math.sin(g * i) + Math.sin(e * i) + Math.sin(c * i);
//samples[i] = Math.sin(c * i);
//samples[i] = Math.sin(g * i);
}
</script>
<!-- Play the audio out -->
<button onclick="output.mozWriteAudio(samples);">Play</button>
</body>
</html>
如果您填寫的samples[]
陣列與一個音符聽起來就好了。但是它用多個音符填充它並不像一個和絃。我的代碼中需要更改什麼來演奏和絃?
謝謝!這解決了它。 3個音符除以4後的邏輯是什麼?我正在編寫一個可以同時播放x個音符的應用程序,並且我需要知道通過什麼來劃分總和。例如,如果我同時彈奏六個音符,我會除以7嗎?有推薦我使用的配方嗎? – Greg 2011-01-14 03:34:49