2008-12-07 9 views
9

में टोन जनरेशन मुझे एक स्वर उत्पन्न करने की आवश्यकता है जिसे मैं आवृत्ति और लहर में हेरफेर कर सकता हूं। एकमात्र लक्ष्य एक मूल पियानो बनाना है। क्या कोई जानता है कि मैं इसे कैसे प्राप्त कर सकता हूं?कोको टच

मेरे विकास मंच iPhone 2.x

उत्तर

2

चेक बाहर http://mda.smartelectronix.com/ है। वे ओपन सोर्स वीएसटी प्लगइन्स की श्रृंखला हैं। पियानो, ईपियानो या डीएक्स 10 के स्रोत को देखें। यह उतना आसान है जितना आप ढूंढने जा रहे हैं।

+0

पवित्र गाय। मुझे नहीं पता था कि वे खुले स्रोत गए थे। बहुत खुबस! – Nosredna

8

आप हमेशा sin तरंगों से शुरू कर सकते हैं। :-)

#include <cmath> 

typedef double Sample; 
typedef double Time; 

class MonoNote { 
protected: 
    Time start, duration; 
    virtual void internalRender(double now, Sample *mono) = 0; 
public: 
    MonoNote(Time s, Time d) : start(s), duration(d) {} 
    virtual ~MonoNote() {} 
    void render(double now, Sample *mono) { 
     if (start <= now && now < start + duration) { 
      internalRender(now, mono); 
     } 
    } 
}; 

class MonoSinNote : public MonoNote { 
    Time freq; 
    Sample amplitude; 
protected: 
    void internalRender(double now, Sample *mono) { 
     const double v = sin(2*M_PI*(now - start) * freq); 
     *mono += amplitude*v; 
    } 
public: 
    MonoSinNote(Time s, Time d, Time f, Sample a) : MonoNote(s, d), freq(f), amplitude(a) {} 
    ~MonoSinNote() {} 
}; 
7

पियानो अजीब है। रॉबर्ट मूग ने मार्च 1 9 80 में कीबोर्ड मैगज़ीन में इसके बारे में लिखा था। मौलिक (निम्नतम आवृत्ति आंशिक) धुन में है, लेकिन प्रत्येक उच्च हार्मोनिक चमकदार (या "तेज" या उच्च-पिच) होना चाहिए, और यह बढ़ती मात्रा से होना चाहिए।

नौवीं हार्मोनिक्स के माध्यम से दूसरा मौलिक से ज़ोरदार है। बीसवीं बीसवीं के बारे में जोर से हैं।

मूलभूत मात्रा वॉल्यूम और फिर डाइव में बढ़ जाती है, फिर यह वापस आती है। अन्य आंशिक रूपों में आकार ऊपर और नीचे आकार हैं। आंशिक ऊर्जा का आदान-प्रदान करते हैं ताकि समग्र वॉल्यूम कार्य करता है जैसा आप उम्मीद करेंगे। लेकिन यह आंशिक व्यापार ऊर्जा का झुंड है। मुझे लगता है कि अगर आपको सबसे कम कुछ अधिकार मिल गया है और अजीब इनहेर्मोनिक फैल गया है तो आप ठीक करेंगे।

आप एक सॉफ्टवेयर स्पेक्ट्रम विश्लेषक में कार्रवाई देख सकते हैं और सीख सकते हैं कि आपको क्या जानने की आवश्यकता है। योजक संश्लेषण शायद यह है कि मैं समस्या पर कैसे ले जाऊंगा।

2

डिफ़ॉल्ट आउटपुट नमूना कोड देखें जो साइन लहर बजाता है।

/डेवलपर/उदाहरण/CoreAudio/SimpleSDK/DefaultOutputUnit

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