我正在使用网络音频 API 进行这个小实验,我希望垂直轴影响振荡器的增益值(参见下面的小提琴)。我需要将画布顶部到画布底部之间的值缩放到 0 和 1 之间的值,以便 Y 轴上的鼠标移动事件在听觉上影响增益。我认为这是一个一般数学问题,可以应用于任何数字范围,但我只是不知道该怎么做。
var audioContext = new webkitAudioContext();
oscillator = undefined ;
$("#myCanvas").mousedown(function() {
var osc = audioContext.createOscillator();
gainNode = audioContext.createGainNode();
oscillator = osc;
oscillator.start(0);
});
$("#myCanvas").mouseup(function() {
oscillator.stop();
});
$("#myCanvas").mousemove(function(event) {
console.log(event.pageX);
console.log(event.pageY);
oscillator.type = "sawtooth";
gainNode.gain.value = (event.pageX);
oscillator.connect(gainNode);
gainNode.connect(audioContext.destination);
oscillator.frequency.value = event.pageX;
});
Run Code Online (Sandbox Code Playgroud)
您将自己的价值除以可能的最大值。
假设您的值为 50,值的范围为 0 到 100,则 50/100 = 0.5。
同样,如果您的值为 0,则 0/100=0。
如果您的值为 100,则 100/100=1。
| 归档时间: |
|
| 查看次数: |
3699 次 |
| 最近记录: |