- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一条曲线——比如正弦曲线——以均匀的间隔采样到 Float32Array 中,称为 samples。曲线按值 采样。如果将样本(带有一些舍入)放在屏幕上,我们将得到如下内容:
1.0 | x x
0.5 | x x x x
0.0 | x x x x x
-0.5 | x x x x
-1.0 | x x
samples 数组的内容是这些数字:
0, 0.5, 1, 0.5, 0, -0.5, -1, -0.5, 0, ...
如您所见,曲线由每个给定样本的曲线的值 表示。我想创建一个 PeriodicWave从这些样本值中,可以通过使用 AudioContext.createPeriodicWave() 来完成.
但是,此方法接受以下参数而不是采样值:
我不太确定这些值对于一组采样值意味着什么。 如何将采样值转换为余弦项和正弦项?
编辑:采样的曲线不一定是正弦波或余弦波。它可以采用任意形状。
最佳答案
如果您真的只想获取波形,则只需使用 AudioBufferSource 并循环播放(作为 AudioBuffer)。
PeriodicWaves 有所不同 - 它们是一种通过改变每个谐波的相对系数来和谐地控制振荡器波形的方法。如果您在“imag”数组的第二个槽中创建了一个只有值“1”的 PeriodicWave,您将得到一个正弦波。同样,您可以通过控制高次谐波来创建方波、三 Angular 波或锯齿波 - 参见 https://en.wikipedia.org/wiki/Non-sinusoidal_waveform .这些浪潮最终可能变得非常富有 -
如果要将其转换为 PeriodicWave,则需要使用 FFT 算法将其转换为 PeriodicWave 使用的相对谐波强度集(https://en.wikipedia.org/wiki/Discrete_Fourier_transform 是一个不错的介绍)。网上有库可以执行此操作,例如 DSP.js ( https://github.com/corbanbrook/dsp.js/ )。
(这个以前叫Wavetable,但是也很迷惑。也许应该改名为HarmonicWaveTable?)
关于javascript - createPeriodicWave 从样本值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39722624/
我有一条曲线——比如正弦曲线——以均匀的间隔采样到 Float32Array 中,称为 samples。曲线按值 采样。如果将样本(带有一些舍入)放在屏幕上,我们将得到如下内容: 1.0 |
var ctx = new webkitAudioContext(); pw = ctx.createWaveshaper(); 每次我在 Google Chrome 中使用 CreatePe
我发现了一些使用 Web Audio API 进行乐器合成的库。 其中之一 (Band.js) 使用 createOscillator() 与振荡器类型(正弦波、方波等)结合 see source .
我是一名优秀的程序员,十分优秀!