- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个软件音频合成器,到目前为止,我已经设法一次播放一个音调。
我的目标是使其具有复音性,即当我按下 2 个键时,它们都处于事件状态并产生声音(我知道扬声器一次只能输出一个波形)。
从我到目前为止所读的内容来看,要实现您应该做的伪复音效果,就是将具有不同幅度的音调相互添加。
我拥有的代码太大而无法完整发布,但我已经对其进行了测试并且它是正确的(它实现了我上面描述的内容,至于何时它是正确的事情,我不再那么确定了)
这是我混音的一些伪代码
sample = 0.8 * sin(2pi * freq[key1] * time) + 0.2 * sin(2pi * freq[key2] * time)
最佳答案
从声音向后工作,“跳动”声音是由相隔 5 或 6 Hz 附近的两个音高产生的声音。 (我无法计算每秒的确切节拍数。)您演奏的是 Midi 36 (C2) = 65.4Hz 和 Midi 37 (C#2) 69.3Hz 吗?这些可以预计以大约每秒 4 次的速度跳动。 Midi 48 和 49 将接近每秒 8 次。
我听到的音高听起来更像是 A 而不是 C。而 A2 (110) + A#2 (116.5) 的节拍率可能与听到的相匹配。
我会仔细检查您在两种场景(单声道和立体声)中使用的代码是否真正发送了您认为的频率。
你使用什么采样率?我想知道结果是否可能是由于您的数据生成过程中每秒样本数异常低而造成的伪影。我听到的音调有很多正弦函数的泛音。我假设谐波是由于步骤相对较少(看起来非常“ block 状”的信号)而导致缺乏平滑度。
我不确定我的推理是否正确,但也许这是一个合理的场景。假设您的计算机能够以 44100 fps 的速度发送信号。这应该能够很好地解码一个相当“ block 状”的正弦波(有很多谐波)。由于 block 状产生的高频内容(超过奈奎斯特值)可能会出现一些混叠。
让我们进一步假设您的加法函数不是以 44100 fps 发生,而是以低得多的采样率发生。这将降低奈奎斯特并增加混叠。因此,与单独输出信号的情况相比,混合声音更容易受到混叠相关失真的影响。
关于audio - 与 "real"完全不同的合成复音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59277694/
我创建了一个振荡器,它实际上可以播放单个音符,但不支持同时播放两个或更多音符...我怎样才能让它成为复音? $(window).load(function(){ window.AudioContext
想象一下基于触摸的应用程序类似钢琴。现在所要做的就是将不同的声音文件分配给不同的键。我正在使用 SoundPool 类,但出现了以下问题: 声音不会同时播放。我很少听到两种声音一起演奏 播放声音时未检
我似乎无法创建两个具有独立增益包络的振荡器。 下面的代码创建了两个按钮,每个按钮以不同的音高播放正弦音。当我单击第一个按钮时,我听到音量应有的增长。但是,当我单击第二个按钮时,音调的 react 就像
我是一名优秀的程序员,十分优秀!