首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WEB音频API创建雨点爆裂噪声

WEB音频API创建雨点爆裂噪声
EN

Stack Overflow用户
提问于 2020-04-28 22:09:40
回答 1查看 477关注 0票数 0

我正在尝试在javascript Web Audio API中创建rain。到目前为止,我已经为背景创建了一个低频隆隆噪声,我正在研究一个高频噪声,它将模仿雨滴的声音。然而,现在的高频噪声非常像白噪声,太强烈了,不可能是单个液滴。有没有人知道如何“分离”声音,让它听起来几乎像爆裂。Here是我希望高频噪音听起来像什么的链接,如果你增加最后一个滑块(紫色),你就可以听到它。

到目前为止,这是我的HTML代码

代码语言:javascript
复制
<script>
let context= new AudioContext();
let context2= new AudioContext();

let lowpass = context.createBiquadFilter();
  lowpass.type = 'lowpass';
  //lowpass.Q.value = -7.01;
  lowpass.frequency.setValueAtTime(80, context2.currentTime);

let gain = new GainNode(context);
  gain.gain.value= 0.4;

let gain2 = new GainNode(context2);
  gain2.gain.value= 0.02;

let highpass=context2.createBiquadFilter();
  highpass.type = 'highpass';
  highpass.Q.value = 2;
  //highpass.frequency.setValueAtTime(6000, context2.currentTime);

let distortion = context2.createWaveShaper();

let delay = context2.createDelay(90.0);




function StartAudio() {context.resume()};
context.audioWorklet.addModule('basicnoise.js').then(() => {
  let myNoise = new AudioWorkletNode(context,'noise-generator');

  myNoise.connect(lowpass);
  lowpass.connect(gain);
  gain.connect(context.destination);
});

function StartAudio2() {context2.resume()};
context2.audioWorklet.addModule('basicnoise.js').then(() => {
  let myNoise2 = new AudioWorkletNode(context2,'noise-generator');

  myNoise2.connect(highpass);
  highpass.connect(gain2);
  gain2.connect(delay);
  delay.connect(context2.destination);
});

我一直在尝试不同的函数,其中一些没有做很多事情,或者我只是没有正确地使用它们,因为我对音频API场景非常陌生。感谢任何帮助,因为这是一个学校项目,我知道其他一些学生想要发出火声,也可以从爆裂的噪音中受益!!谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-04-28 22:16:58

如果你认为下雨是一个物理过程,它基本上是许多表面撞击的声音(可能还有一些由气流创造的额外氛围)。当足够多的雨滴以足够快的速度撞击表面时,最终结果是噪声。

我认为一个真实的雨滴发生器会模拟许多单个的水滴在距离听众不同距离的表面上撞击(这会导致衰减和过滤)。

这就是说,如果你想尝试“爆裂”你现在正在运行的噪声发生器,试着随机地调节增益节点的增益值;在这里,有25%的机会发生器每20毫秒有效地静音(或者更多,考虑到计时器不是很精确)。

代码语言:javascript
复制
setInterval(() => {
  gain.gain.value=(Math.random() < 0.75 ? 0.4 : 0);
}, 20)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61482240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档