3
任何人都可以指向一個好的庫,用於生成Python 2.7中的音符和和絃?我沒有太多的運氣看着PythonInfoWiki,PyAudio只是崩潰,沒有其他東西似乎產生音調。如何在python中生成音符或和絃?
任何人都可以指向一個好的庫,用於生成Python 2.7中的音符和和絃?我沒有太多的運氣看着PythonInfoWiki,PyAudio只是崩潰,沒有其他東西似乎產生音調。如何在python中生成音符或和絃?
我不知道這是否會幫助,但這裏的一些synthetizes基礎上給出了頻率和振幅一個複雜的聲音代碼:
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")
是這樣的代碼我使用產生的音符與和絃蟒蛇。您可以推薦第一個參數的頻率列表,一個幅度列表(與第一個參數大小相同),一些樣本和文件名稱。它會用給定的組合生成一個wav文件。
爲什麼不把前兩個參數作爲單個元組列表? '[(440,.4),(880,.3),(1200,.1)]' – user470379
...是的,你說得對,那是更好的方法。在這方面更有意義,謝謝你的提示! – Nemeth
有什麼地方我可以跟蹤這段代碼的開發(或者是一次性的?) - 可以在gpl應用中使用它嗎? – Sirex