2011-12-11 6 views
7

मैंने कुछ कोड देखा, ऐसा लगता है कि सबकुछ कुछ गणित फ़ंक्शन तरंगें बना रहा है, लेकिन मैं एक सिंगल टोन या कस्टम एकल टोन के साथ बनाई गई कस्टम लहर चाहता हूं।मैं डेल्फी के साथ एक एकल स्वर या कस्टम तरंग कैसे खेल सकता हूं?

मैं इस How can I generate continuous tones of varying frequencies?

कौन सा मेरा उत्तर के करीब है पढ़ें। Assumin मैं उपरोक्त लिंक की तरह waveOutWrite का उपयोग करने वाला हूं, मुझे लगता है कि HWAVEOUT में प्रत्येक नमूने के लिए amp/freq की गणना कैसे की जाती है। Samples[i] := round(vol*sin(omega*t));

मान लिया जाये कि मैं कुछ amp के साथ एक 15KHz freq एकल स्वर चाहते हैं (जो कोई फर्क नहीं पड़ता), कैसे एक नमूना [1] गणना की जाएगी:

लिंक से कोड में यह इस तरह किया जाता है?

उत्तर

9

एक सतत (समय में) साइन वेव PI, है अच्छी तरह से, 3.14 ..., f हर्ट्ज में स्वर आवृत्ति और t सेकंड में समय है, A*sin(2*PI*f*t), जहां A कुछ आयाम है के रूप में परिभाषित किया जा सकता है।

अब, जब से तुम निरंतर समय नहीं है, के बाद से अपने समय असतत है, तो आप dt*it के स्थान पर स्थानापन्न और A*sin(2*PI*f*dt*i), जहां dt नमूनों या 1/sample rate और i के बीच का समय है नमूना नंबर मिलता है। आप इसे A*sin(2*PI*(f/Fs)*i) के रूप में वर्तनी कर सकते हैं। सावधान रहें कि एक बार जब आप एक निश्चित नमूना दर Fs (नमूने/दूसरे या बस एचजे में) चुनते हैं, तो उच्चतम स्वर Fs/2 Hz से अधिक नहीं हो सकता है।

+0

बहुत बहुत धन्यवाद! – MitziMeow

संबंधित मुद्दे

 संबंधित मुद्दे