Python WAV文件保存顺序错误
我有一个程序可以在for循环上循环,并将正弦波保存为wav文件,以便为键盘创建一系列音调。循环从-int到+int,并在每次迭代中保存这些WAV文件。唯一的问题是,当它达到x=2左右时,文件顺序就混乱了。我不知道为什么会发生这种情况,也不知道如何解决Python WAV文件保存顺序错误,python,for-loop,audio,wav,Python,For Loop,Audio,Wav,我有一个程序可以在for循环上循环,并将正弦波保存为wav文件,以便为键盘创建一系列音调。循环从-int到+int,并在每次迭代中保存这些WAV文件。唯一的问题是,当它达到x=2左右时,文件顺序就混乱了。我不知道为什么会发生这种情况,也不知道如何解决 out_int = 0 for x in xrange(-43, 47, 1): CFreq = CFreq * 2**(x/12.) out_int +=
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")
这些文件中有很多数据,这就是为什么我猜测在保存以前的示例之前,生成一些注释并保存它们需要更长时间的原因。
每个样本的输出频率都是正确的,但它们听起来不正常
在转到下一个文件之前,是否要确保代码先写入并保存每个文件?我尝试将循环的顺序从正值更改为负值,但是在负值迭代中,样本被弄乱了。没有足够的代码进行复制,但是,下面是一个使用enumerate的示例,它将对后续的xrange元素进行排序。也许这将有助于保持波文件的顺序
for i, x in enumerate(xrange(-43, 47, 1)):
file_name = "file{0}-{1}.wav".format(i, x)
print file_name
输出:
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
file0--43.wav
file1--42.wav
file2--41.wav
file3--40.wav
|
|
file86-43.wav
file87-44.wav
file88-45.wav
file89-46.wav
但是,没有足够的代码可以复制,下面是一个使用enumerate的示例,它将对后续的xrange元素进行排序。也许这将有助于保持波文件的顺序
for i, x in enumerate(xrange(-43, 47, 1)):
file_name = "file{0}-{1}.wav".format(i, x)
print file_name
输出:
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
file0--43.wav
file1--42.wav
file2--41.wav
file3--40.wav
|
|
file86-43.wav
file87-44.wav
file88-45.wav
file89-46.wav
我意识到我的文件播放器没有播放正确的文件,而且顺序很好!我意识到我的文件播放器没有播放正确的文件,而且顺序很好!