有人能给我指出一个在 python 2.7 中生成音符和和弦的好库吗?我查看了 PythonInfoWiki,但运气不佳,PyAudio 只是崩溃了,似乎没有其他东西可以生成音调。
我不知道这是否有帮助,但这里有一些代码可以根据给定的频率和振幅合成复杂的声音:
import math
import wave
import struct
def synthComplex(freq=[440],coef=[1], datasize=10000, fname="test.wav"):
frate = 44100.00
amp=8000.0
sine_list=[]
for x in range(datasize):
samp = 0
for k in range(len(freq)):
samp = samp + coef[k] * math.sin(2*math.pi*freq[k]*(x/frate))
sine_list.append(samp)
wav_file=wave.open(fname,"w")
nchannels = 1
sampwidth = 2
framerate = int(frate)
nframes=datasize
comptype= "NONE"
compname= "not compressed"
wav_file.setparams((nchannels, sampwidth, framerate, nframes, comptype, compname))
for s in sine_list:
wav_file.writeframes(struct.pack('h', int(s*amp/2)))
wav_file.close()
synthComplex([440,880,1200], [0.4,0.3,0.1], 30000, "tone.wav")
这是我用来在 python 中生成音符和和弦的代码。您应该有第一个参数的频率列表、幅度列表(与第一个参数大小相同)、样本数和文件名。它将生成具有给定组合的 wav 文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)