Python WAV文件保存顺序错误

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 +=

我有一个程序可以在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")
这些文件中有很多数据,这就是为什么我猜测在保存以前的示例之前,生成一些注释并保存它们需要更长时间的原因。 每个样本的输出频率都是正确的,但它们听起来不正常


在转到下一个文件之前,是否要确保代码先写入并保存每个文件?我尝试将循环的顺序从正值更改为负值,但是在负值迭代中,样本被弄乱了。

没有足够的代码进行复制,但是,下面是一个使用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

我意识到我的文件播放器没有播放正确的文件,而且顺序很好!我意识到我的文件播放器没有播放正确的文件,而且顺序很好!