【发布时间】:2015-01-28 05:25:45
【问题描述】:
我正在尝试通过在两个 430Hz 和 450Hz 之间振荡来创建颤音,将 16 位样本存储在列表 wav 中。然而,可听频率似乎增加了整个剪辑的振荡范围。有谁知道为什么?
编辑:重写代码更清晰/简洁
# vibrato.py
maxamp = 2**15 - 1 # max signed short
wav = []
(t, dt) = (0, 1 / 44100)
while t < 6.0:
f = 440 + 10 * math.sin(2 * math.pi * 6 * t)
samp = maxamp * math.sin(2 * math.pi * f * t)
wav.append(samp)
t += dt
--
更新:因为响应使用 numpy,我将更新我的纯 python3 代码
# vibrato.py
maxamp = 2**15 - 1 # max signed short
wav = []
(t, dt) = (0, 1 / 44100)
phase = 0
while t < 6.0:
f = 440 + 10 * math.sin(2 * math.pi * 6 * t)
phase += 2 * math.pi * f * t
samp = maxamp * math.sin(phase)
wav.append(samp)
t += dt
【问题讨论】:
标签: python audio python-3.x trigonometry