【发布时间】:2016-10-09 03:30:00
【问题描述】:
我有一个程序在 for 循环上循环,并将正弦波保存为 wav 文件,以便为键盘创建一系列音调。循环从 -int 到 +int,并在每次迭代中保存这些 WAV 文件。唯一的问题是,当它达到 x = 2 左右时,文件顺序就会混乱。我不知道为什么会发生这种情况或如何解决它。
out_int = 0
for x in xrange(-43, 47, 1):
CFreq = CFreq * 2**(x/12.)
out_int += 1
.
.
.
wavdata = np.zeros(len(data), np.int16)
wavdata[:] = data / max(data) * 2**15
wavfile = wave.open("WavFiles/Modes_%02d_.wav" % (out_int), "wb")
这些文件中有很多数据,这就是为什么我猜测在保存以前的样本之前制作一些笔记并保存它需要更长的时间。 每个样本的输出频率是正确的,但它们听起来不正常。
有没有办法确保代码先写入并保存每个文件,然后再转到下一个文件?我尝试将循环的顺序从正值更改为负值,但随后负迭代的样本被搞砸了。
【问题讨论】: