我如何使用循环正确编码一些音频合成器?

How would I correctly code some audio synths using loops?

此 p5.js 草图效果不佳:https://codepen.io/truffel/pen/vJYGQv

这个有,它说明了我通过使用循环使我的代码更好一点的想法,但它没有音频:https://codepen.io/truffel/pen/brGpKb

我编写了同一个程序,通过重复很多相同的代码行,并手动更改其参数,但我想使用循环来缩短它。音频在我过去的代码(不使用循环的代码)中有效。

顺便说一句,从我的第一个代码笔开始,这个语法可以吗?

for (var k=0; k < envs.length; k++){

envs[i].setEnv();
envs[i].setOsc();

}

还有这个?

for (var j = 0; j < bubbles.length; j++){
             if(i == j && bubbles[i].bounce()){
                            playEnv[i](); } 

提前致谢

Stack Overflow 确实不是为一般 "how do I do this" 类型的问题设计的。这是针对特定 "I tried X, expected Y, but got Z instead" 类型的问题。话虽如此,我会尽力提供一般意义上的帮助。

你真的应该试着说得更具体,而不是说某事不起作用。您发布的第一个 CodePen 包含一个错误,因为它有不匹配的 { } 大括号。请尝试使用适当的缩进,以便更容易发现此类错误。

快速浏览一下您的代码,我注意到了这一点:

for (var k=0; k < envs.length; k++){
  envs[i].setEnv();
  envs[i].setOsc();
}

在这里,您使用 k 作为循环变量,但您使用的是 i。您希望这段代码做什么?您是否尝试调试它以查看到底发生了什么?

请尝试从较小的部分开始,并以更小的块进行工作。您不能通过复制粘贴一堆代码并希望它能工作来编写代码。您必须 break your problem down into smaller steps 然后一次一个地执行这些步骤。例如:您可以创建一个播放单个音符的基本草图吗?从那里开始工作,而不是试图让所有事情同时工作。祝你好运。