我已经成功地用python生成了不同频率的正弦波.wav文件。 如果我想产生和声,例如,一个C大调长篇大论,我应该把每个音符的正弦波加在一起吗?你知道吗
当把两个音符加在一起时,比如说C和G,程序会产生正确的和声。但是,当我尝试添加第三个音符时,出现了溢出错误。如何才能成功地做到这一点。你知道吗
代码:
我把正弦波的数据放入一个有符号的短整数数组中。你知道吗
wave = array.array('h')
然后将多个波叠加在一起产生和声。你知道吗
for i in range(len(data)):
wave1[i] += wave2[i]
真管用!你知道吗
但是当我添加第三个数组(wave3)时,它溢出了。你知道吗
这是因为有符号短整数已达到其最大值。我正在用16位速率工作。问题仅仅是比特率太低吗?当创建具有许多和声的复杂音频时,比特率是否需要更高?我是不是完全错误地处理了这个问题?你知道吗
我不认为是拜登。你只需要规范化这些值,使它们适合。我已经重写了您的代码,因此它首先使用列表,然后将0到32767之间的所有值进行排列,并将其放入数组中。你知道吗
相关问题 更多 >
编程相关推荐