2011-11-09 15 views
15

मैं सी # में वर्चुअल पियानो बनाने की कोशिश कर रहा हूं, और स्क्रैच से संगीत नोट्स का एक पैमाने बनाना चाहता हूं।स्क्रैच से ध्वनि कैसे बनाएं C#

मुझे पता है कि मैं बस प्रत्येक नोट के लिए .wav फ़ाइलों का एक गुच्छा ढूंढ सकता हूं या बना सकता हूं, लेकिन यह उपयोगकर्ता की हार्ड डिस्क पर बहुत अधिक जगह बनाएगा और भविष्य में मेरे लिए बहुत सहज नहीं होगा।

तो एक उचित ध्वनि बनाने का कोई तरीका है - उदाहरण के लिए बी फ्लैट, सी # में .wav फ़ाइल का उपयोग किए बिना, कोड थोरुग सी # में, और यदि नहीं, तो क्या यह एक अलग भाषा में ऐसा करने का एक तरीका है - सी ++।

धन्यवाद, मैंने इसे यथासंभव स्पष्ट करने की कोशिश की है।

+2

+1 एक शांत प्रश्न के लिए - मुझे पता है कि यह संभव है लेकिन मुझे थोड़ा सा विचार नहीं है कि यह कैसे करें :) शुभकामनाएँ! –

+0

+1 हालांकि '.wav' फ़ाइलों में अधिक जगह नहीं लेती है, उनके बिना करने का कोई तरीका होना चाहिए – Dani

+1

[विकिपीडिया] (http://en.wikipedia.org/wiki/Note#Note_frequency_.28hertz.29) संगीत नोट्स को एक आवृत्ति में परिवर्तित करने के तरीके पर प्रवेश करें, आप अपने ध्वनि जेनरेटर में प्लग इन कर सकते हैं। – user786653

उत्तर

7

मैं इस लगता है कि यह मिलना चाहिए आप शुरू कर दिया लगता है:

http://blogs.msdn.com/b/dawate/archive/2009/06/24/intro-to-audio-programming-part-3-synthesizing-simple-wave-audio-using-c.aspx

संपादित करें: मैं जोड़ने चाहिए कि पैदा .wav नमूने के बिना लगता है और एक पियानो की नकल एक दूसरे के साथ अंतर पर कर रहे हैं।

यदि आप 'असली' पियानो ध्वनि प्राप्त करना चाहते हैं, तो नमूनों के साथ काम करना सबसे अच्छा है (यदि आप उन्हें फाइल सिस्टम में रखना नहीं चाहते हैं तो उन्हें स्मृति में रखें)। यदि आप सटीक नोट्स को उत्सर्जित करने का एक आसान तरीका चाहते हैं (जो वास्तविक पियानो की तरह कुछ भी नहीं लगता है) तो इसे प्रोग्रामेटिक रूप से करने का तरीका है!

+0

धन्यवाद, ऐसा लगता है कि मुझे जिस चीज की आवश्यकता है। मुझे आगे एक लंबी सड़क मिल गई है! –

+0

+1 अधिकतर आपके नाम के लिए संगीत के मेरे पसंदीदा टुकड़ों में से एक को श्रद्धांजलि है ... –

+0

@ डॉमर धन्यवाद, मेरा भी एक। मान लीजिए कि आप निश्चित रूप से अपने सबसे प्रसिद्ध _Toccata_ का जिक्र कर रहे हैं! – Widor

0

आप MIDI पर एक नज़र डालना चाहते हैं।

एक windows API है जिसे आप सी ++ में लपेट सकते हैं, फिर एक प्रबंधित इंटरफेस का पर्दाफाश कर सकते हैं जिसे आप सी # में उपभोग कर सकते हैं।

0

शायद MIDI लाइब्रेरी का उपयोग करने से मदद मिल सकती है? मैं इस मामले में नहीं हूं, लेकिन अगर आप ऑडियो फाइलों का उपयोग नहीं करना चाहते हैं तो यह एकमात्र चीज है जो मेरे दिमाग में आती है। इसके बारे में एक प्रश्न है here

0

Here आपको कम से कम एक ऑक्टेव के संगीत नोट्स (यह एक्स्टेंसिबल) के लिए स्क्रैच से पियानो ध्वनि बनाने के तरीके पर स्रोत सहित एक लेख मिलता है।

4

यदि आप एक पियानो अनुकरण करना चाहते हैं तो विशेष रूप से आपके पास केवल दो विकल्प हैं, जिनमें से एक नमूने का उपयोग करना है और दूसरा physical modelling है। शारीरिक मॉडलिंग के लिए डीएसपी (फ़िल्टरिंग, कन्वोल्यूशन इत्यादि) के कुछ सुंदर उन्नत ज्ञान की आवश्यकता होती है और एक पियानो निपटने के लिए एक चुनौतीपूर्ण साधन होगा लेकिन यह Pianoteq

नमूने के विषय पर, एक बनाने के लिए किया गया है पियानो जो कि एक दृढ़ एनालॉग के पास कहीं भी है, आपको आदर्श रूप से उनके बीच क्रॉसफैड्स के साथ विभिन्न वेगों के लिए एक से अधिक नमूना प्रति नोट की आवश्यकता होगी, लेकिन आप नमूने की कुल संख्या को कम करने के लिए नोट्स की सीमित सीमा पर नमूना का उपयोग कर दूर हो सकते हैं।

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