变量 + 使用网络音频 api 和 jquery 的循环
variables + loops using web audio api and jquery
这是我一直在做的事情 link
http://79.170.40.170/johnhartmanportfolio.com/
和一些笔记
我建立了一个简单的 3 波段图形均衡器,目前正在连接滤波器。
如果您单击绿色按钮,将播放正弦波;红色按钮将停止它。
如果你移动任何推子(任何方向),低通滤波器将下降(如果你打开控制台,我将当前滤波器值输出到日志)
问题:我正在使用 if 循环来比较值,问题是一旦我达到 0,就好像我的另一个循环永远不会被查看。我不知道我做错了什么,也许 if 循环不合适?话虽如此,它让我重新审视了赋值和运算符,但我仍然卡住了任何帮助将不胜感激。
(仅 js)
$(document).ready(function() {
var context = new AudioContext();
var oscillator = context.createOscillator();
var volume = context.createGain();
var biquadFilter = context.createBiquadFilter();
biquadFilter.type = "lowshelf";
var eqValue = 1000;
biquadFilter.frequency.value = eqValue;
biquadFilter.gain.value = 1;
volume.gain.value = 0;
oscillator.start(0)
$("#playButton").click(function() {
oscillator.connect(volume);
volume.connect(biquadFilter)
biquadFilter.connect(context.destination);
volume.gain.value = 1;
});
$("#stopButton").click(function() {
volume.gain.value = 0;
});
$(".faderStyle").on("slide", function() {
if (eqValue = 0) {
biquadFilter.frequency.value += 10;
console.log(biquadFilter.frequency.value)
}
if (eqValue = 1000) {
biquadFilter.frequency.value -= 10;
console.log(biquadFilter.frequency.value)
return (eqValue);
}
return (eqValue)
});
$(".faderStyle").slider({
orientation: "vertical",
range: "min",
min: 0,
max: 1000,
value: 60
});
});
您的 if's
应该使用 ==
或 ===
进行比较。
等号运算符将始终设置您的变量值,这不是您想要的。
eqValue = 0
将始终评估为 false,应该是 eqValue === 0
eqValue = 1000
将始终评估为真,应该是 eqValue === 1000
这是我一直在做的事情 link
http://79.170.40.170/johnhartmanportfolio.com/
和一些笔记 我建立了一个简单的 3 波段图形均衡器,目前正在连接滤波器。 如果您单击绿色按钮,将播放正弦波;红色按钮将停止它。
如果你移动任何推子(任何方向),低通滤波器将下降(如果你打开控制台,我将当前滤波器值输出到日志)
问题:我正在使用 if 循环来比较值,问题是一旦我达到 0,就好像我的另一个循环永远不会被查看。我不知道我做错了什么,也许 if 循环不合适?话虽如此,它让我重新审视了赋值和运算符,但我仍然卡住了任何帮助将不胜感激。
(仅 js)
$(document).ready(function() {
var context = new AudioContext();
var oscillator = context.createOscillator();
var volume = context.createGain();
var biquadFilter = context.createBiquadFilter();
biquadFilter.type = "lowshelf";
var eqValue = 1000;
biquadFilter.frequency.value = eqValue;
biquadFilter.gain.value = 1;
volume.gain.value = 0;
oscillator.start(0)
$("#playButton").click(function() {
oscillator.connect(volume);
volume.connect(biquadFilter)
biquadFilter.connect(context.destination);
volume.gain.value = 1;
});
$("#stopButton").click(function() {
volume.gain.value = 0;
});
$(".faderStyle").on("slide", function() {
if (eqValue = 0) {
biquadFilter.frequency.value += 10;
console.log(biquadFilter.frequency.value)
}
if (eqValue = 1000) {
biquadFilter.frequency.value -= 10;
console.log(biquadFilter.frequency.value)
return (eqValue);
}
return (eqValue)
});
$(".faderStyle").slider({
orientation: "vertical",
range: "min",
min: 0,
max: 1000,
value: 60
});
});
您的 if's
应该使用 ==
或 ===
进行比较。
等号运算符将始终设置您的变量值,这不是您想要的。
eqValue = 0
将始终评估为 false,应该是 eqValue === 0
eqValue = 1000
将始终评估为真,应该是 eqValue === 1000