मैं अजगर में एक शक्तिशाली सिंथेसाइज़र पर काम कर रहा हूं। मैंने सीधे .wav फ़ाइल पर लिखने के लिए कस्टम फ़ंक्शंस का उपयोग किया। ऐसे कार्यों में बनाया गया है जिनका उपयोग इस उद्देश्य के लिए किया जा सकता है। नमूना दर, प्रति नमूना बिट्स, चैनलों की संख्या, और संश्लेषण की अवधि को प्रतिबिंबित करने के लिए आपको .wav शीर्षलेख को संशोधित करने की आवश्यकता होगी।
यहां एक पाप तरंग जनरेटर का प्रारंभिक संस्करण है जो मूल्यों की एक सूची आउटपुट करता है जो बाइट फ़ाइल के डेटा पैरामीटर को लिखने के लिए बाइटियर के लिए उपयुक्त हो जाता है। [संपादित करें] एक रूपांतरण समारोह को सूची को लागू करने से पहले सूची को छोटे एंडियन हेक्स मानों में बदलने की आवश्यकता होगी। .wav विनिर्देश के विवरण के लिए नीचे WAVE पीसीएम ध्वनिफाइल प्रारूप लिंक देखें। [/ संपादित करें]
def sin_basic(freq, time=1, amp=1, phase=0, samplerate=44100, bitspersample=16):
bytelist = []
import math
TwoPiDivSamplerate = 2*math.pi/samplerate
increment = TwoPiDivSamplerate * freq
incadd = phase*increment
for i in range(int(samplerate*time)):
if incadd > (2**(bitspersample - 1) - 1):
incadd = (2**(bitspersample - 1) - 1) - (incadd - (2**(bitspersample - 1) - 1))
elif incadd < -(2**(bitspersample - 1) - 1):
incadd = -(2**(bitspersample - 1) - 1) + (-(2**(bitspersample - 1) - 1) - incadd)
bytelist.append(int(round(amp*(2**(bitspersample - 1) - 1)*math.sin(incadd))))
incadd += increment
return bytelist
एक नया संस्करण आवृत्ति, आयाम, और तरंग मापदंडों के चरण व्यवस्थित करने के लिए waveforms उपयोग कर सकते हैं। डेटा प्रारूप एक साथ तरंगों को मिश्रण और संयोजित करने के लिए तुच्छ बनाता है। यदि यह आपकी गली लगता है, तो WAVE PCM soundfile format देखें।
@ होचल वेल, यह कितना विडंबनापूर्ण है कि यह पहला Google परिणाम है जो विभिन्न खोजशब्दों के साथ खोज करने में एक दिन के बाद लौटाया गया है ... –
मैं [Pyo] (http://ajaxsoundstudio.com/pyodoc/index) की जांच करूंगा .html)। [यहां है] (http://ajaxsoundstudio.com/pyodoc/examples/02-controls/04-building-lfo.html) एक अच्छा प्रारंभिक उदाहरण। – mobeets