javascript - 如何将网络音频振荡器从 (-1,1) 缩放到 (x,y)

标签 javascript web-audio-api

我想将振荡器的信号从 (-1,1) 映射到 (x,y) 据我所知,到目前为止,增益节点可以用于此目的。

如果我将振荡器连接到值为 1 的增益节点,我会收到范围 (0,2) 内的信号

如果我将此信号输入另一个值为 0.25 的增益,我会收到范围 (0,0.5) 内的信号

但是如果我希望信号在 (0.5, 1) 范围内该怎么办?

我想知道为什么我们不能简单地将函数映射到信号上。

像 signal.map(function(x){return x + 0.5})

最佳答案

对于您提到的特定场景(“如果我希望我的信号在 (0.5, 1) 范围内?”),您应该将 (0,0.5) 信号连接到与 ConstantSourceNode 相同的节点:

var constant = new ConstantSourceNode( { offset: 0.5 } );
constant.connect( /* same node as your signal */ );

对于更一般的情况 - 例如,您想要进行非线性映射 - 使用 WaveShaperNode。

关于javascript - 如何将网络音频振荡器从 (-1,1) 缩放到 (x,y),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40827587/

相关文章:

javascript - 来自 PhantomJS 的 HTTP 请求?

javascript - Cargo Collective 传统分页

javascript - 在函数内部返回数据,但不在 html 上查看

javascript - 如何从一个中间件获取另一个中间件中的数据?

math - 计算 Web Audio API 滤波器在特定频率和 Q 因子下的响应

javascript - 如何使用 MSSQL 查询结果作为我的选择框选项

audio-recording - 从 AudioContext (Web Audio API) 录制声音

javascript - 如何使 Web Audio 中的 OscillatorNode 在 0 和 1 之间振荡?

javascript - Web Audio API - 奇怪的 5.1 行为

google-chrome - 如何使用网络音频 api 无缝循环声音