यह वास्तव में एक सैद्धांतिक प्रश्न है, लेकिन यहां यह जाता है:बराबर पावर क्रॉसफ़ेड?
मैं एक प्रभाव ऑडियो इकाई विकसित कर रहा हूं और इसे शुष्क और गीले सिग्नल के बीच एक समान पावर क्रॉसफ़ेड की आवश्यकता है।
लेकिन मैं शुष्क और गीली धाराओं के सिग्नल आयामों के लिए रैखिक फेडर से स्केलिंग कारक (लाभ) में मैपिंग फ़ंक्शन करने के सही तरीके से उलझन में हूं।
असल में, मैंने इसे cos/sin कार्यों या वर्ग जड़ों के साथ किया है ... अनिवार्य रूप से लॉगरिदमिक वक्र का अनुमान लगाया गया है। लेकिन अगर आयाम की हमारी धारणा शुरू करने के लिए लॉगरिदमिक है, तो क्या ये वक्र वास्तव में घातीय होने के लिए फेडर स्थिति को मैपिंग नहीं करना चाहिए?
अनुमान:
signal[i]
एक संकेत में ith नमूना मतलब हैयह मैं क्या मतलब है।
- प्रत्येक नमूना [0,1] के बीच आयामों के लिए एक फ़्लोट [-1, 1] है।
- हमारे जीयूआई नियंत्रण [0,1] से लेकर एक एनएसएसएलडर है, इसलिए यह सिद्धांत रैखिक में है।
fader
एनएसएसएलडर के मूल्य के साथ एक चर है।
पहले निरीक्षण: हम लघुगणक तरह से आयाम मानता। तो अगर हम एक रेखीय पिता है और केवल ऐसा करके एक संकेत के आयाम को समायोजित:
इस तथाकथित है: क्या हम (श्रवण, गणित की परवाह किए बिना) मानता रहे signal[i] * fader
की तर्ज पर कुछ है क्रैपी फेडर-इफेक्ट कहा जाता है: हम स्लाइडर में बाएं सेमेस्टर से गुंबद तक एक कठोर मात्रा में वृद्धि करते हैं और बीच में वॉल्यूम उस जोर से नहीं लगते हैं।
तो fader "दाएं" करने के लिए, हम इसके बजाय इसे एक डीबी स्केल में व्यक्त करते हैं और फिर, जहां तक सिग्नल का संबंध है, करते हैं: signal[i] * 10^(fader/20)
या, अगर हम इकाइयों को रखने या fader करने के लिए थे [0, 1], हम कर सकते हैं: signal[i] * (.001*10^(3*fader))
किसी भी तरह से है, जो हम अपने कोड में गुणा करने के लिए इस्तेमाल करेंगे पिता चर को NSSlider से हमारे नए मानचित्रण, इस तरह दिखता है अब:
जो हम वास्तव में चाहते हैं, क्योंकि हम तर्कसंगत रूप से आयाम को देखते हैं, इसलिए हम अनिवार्य रूप से मप्पी हैं रैखिक (एनएसएसएलडर रेंज 0-1) से घातीय और इस घातीय आउटपुट को हमारे लॉगरिदमिक धारणा को खिला रहा है। और यह पता चला है कि: log(10^x)=x
इसलिए हम एक रैखिक (उर्फ सही) तरीके में आयाम परिवर्तन को समझते हैं।
ग्रेट।
अब, मेरा विचार यह है कि दो संकेतों के बीच एक समान शक्ति क्रॉसफ़ेड (इस मामले में एयू में इनपुट को मिलाकर एक सूखा/गीला क्षैतिज एनएसएसएलडर और इसके द्वारा संसाधित आउटपुट) अनिवार्य रूप से वही है एक स्लाइडर दोनों परिकल्पनात्मक संकेतों पर अभिनय [i] और गीला [i]।
तो अगर 0 से 100 और करने के लिए अपने स्लाइडर पर्वतमाला सूखी पूर्ण छोड़ दिया और गीला पूर्ण दाएं), मैं की तर्ज पर कोड को रखना होगा है:
Float32 outputSample, wetSample, drySample = <assume proper initialization>
Float32 mixLevel = .01 * GetParameter(kParameterTypeMixLevel);
Float32 wetPowerLevel = .001 * pow(10, (mixLevel*3));
Float32 dryPowerLevel = .001 * pow(10, ((-3*mixLevel)+1));
outputSample = (wetSample * wetPowerLevel) + (drySample * dryPowerLevel);
जिनमें से ग्राफ होगा:
और पहले की तरह ही, क्योंकि हम आयाम लघुगणकीय अनुभव, इस घातीय मानचित्रण वास्तव में यह सुनिश्चित करना चाहिए कि हम कहाँ रैखिक रूप में crossfade सुनते हैं।
हालांकि, मैंने लॉग वक्र के अनुमानों का उपयोग करके क्रॉसफ़ेड के कार्यान्वयन को देखा है। मतलब, बजाय:
लेकिन इन घटता वास्तव में आयाम के बारे में हमारी धारणा लघुगणक जोर नहीं होगा?
मैं डीएसपी बहन साइट पर यह पूछने का सुझाव दूंगा: http://dsp.stackexchange.com/ –
मुझे लगता है कि मुझे अब तक यह मिला है, लेकिन मुझे उस साइट के बारे में पता नहीं था! – SaldaVonSchwartz
कूल। यदि आपको यह पता चला है, तो आपको अपने प्रश्न का उत्तर देना चाहिए - मैं एक के बारे में जानना चाहता हूं जिसके साथ आप आए थे। –