का उपयोग कर ऑडियो बफर आवृत्ति को कैसे बदलें/संशोधित करें मैं वेब ऑडियो एपीआई के साथ प्रयोग कर रहा हूं और मेरा लक्ष्य डिजिटल गिटार बनाना है जहां प्रत्येक स्ट्रिंग में एक वास्तविक गिटार का प्रारंभिक ध्वनि स्रोत होता है जो स्ट्रिंग को खोलता है और तो मैं गतिशील रूप से सभी अन्य fret स्थिति ध्वनि उत्पन्न करना चाहता हूँ। इस विषय में कुछ शोध के बाद (यह मेरे लिए बिल्कुल नया है) ऐसा लगता है जैसे स्रोत ध्वनि नमूना की आवृत्ति को बदलकर इसे हासिल किया जा सकता है।वेब ऑडियो एपीआई
समस्या यह है कि मैंने संश्लेषित पाप तरंगों को बदलने के लिए बहुत सारे एल्गोरिदम देखे हैं लेकिन ऑडियो नमूना की आवृत्ति को बदलने के लिए कुछ भी नहीं है। यहाँ मेरी कोड का एक नमूना मैं कैसे इस लागू करने के लिए कोशिश कर रहा हूँ का एक बेहतर विचार दे रहा है: तो वहाँ तुम्हारे पास है
// Guitar chord buffer
var chordBuffer = null;
// Create audio context
var context = new webkitAudioContext();
// Load sound sample
var request = new XMLHttpRequest();
request.open('GET', 'chord.mp3', true);
request.responseType = 'arraybuffer';
request.onload = loadChord;
request.send();
// Handle guitar string "pluck"
$('.string').mouseenter(function(e){
e.preventDefault();
var source = context.createBufferSource();
source.buffer = chordBuffer;
// Create javaScriptNode so we can get at raw audio buffer
var jsnode = context.createJavaScriptNode(1024, 1, 1);
jsnode.onaudioprocess = changeFrequency;
// Connect nodes and play
source.connect(jsnode);
jsnode.connect(context.destination);
source.noteOn(0);
});
function loadChord() {
context.decodeAudioData(
request.response,
function(pBuffer) { chordBuffer = pBuffer; },
function(pError) { console.error(pError); }
);
}
function changeFrequency(e) {
var ib = e.inputBuffer.getChannelData(0);
var ob = e.outputBuffer.getChannelData(0);
var n = ib.length;
for (var i = 0; i < n; ++i) {
// Code needed...
}
}
- मैं ध्वनि चला सकता है ठीक है, लेकिन एक हार का एक सा पर हूँ में कोड बनाने के लिए कब आने के लिए फ़्रीक्वेंसी फ़ंक्शन जो तार नमूने आवृत्ति को बदल देगा, इसलिए यह स्ट्रिंग पर एक और फेट स्थिति की तरह लग रहा था। इस कोड के साथ किसी भी मदद की सराहना की जाएगी या इस बात पर राय होगी कि मैं जो भी करने का प्रयास कर रहा हूं वह भी संभव है।
धन्यवाद!
के साथ इसका उपयोग जांचें आप एक नमूना बना रहे हैं। आप एक स्ट्रिंग की तुलना में कई और नमूने चाहते हैं। कम से कम, यदि आप सभ्य ध्वनि चाहते हैं तो आप प्रति आठ नमूने चाहते हैं। फिर भी, एक गिटार सिर्फ नमूने के साथ फिर से बनाने के लिए एक बहुत जटिल उपकरण है। – Brad