2011-06-26 10 views
10

में संगीत नोट्स (पियानो ध्वनियों के साथ) संश्लेषित करना मैं एक संगीत वाद्ययंत्र पुस्तकालय (उदाहरण के लिए, एक पियानो ऑब्जेक्ट) का एक पायथन कार्यान्वयन करना चाहता हूं जिसका उपयोग मैं नोट्स की सूची और ध्वनि में एक अवधि को बदलने के लिए कर सकता हूं। उदाहरण के लिए, कुछ:पाइथन

import Piano 

pn = Piano() 
pn.play([note, note, ..., note], duration) 

क्या ऐसा कुछ पाइथन 2.7 के लिए मौजूद है? अगर यह नहीं करता है तो मैं इसे लागू करना चाहता हूं। मेरे पास वर्तमान में कुछ ऐसा है जो ऑडिएर का उपयोग करता है, लेकिन इसकी साइन लहरें इसलिए यह भयानक लगती है। क्या मिडी पियानो या उस तरह कुछ ऐसा करने का कोई तरीका है- मैं विंडोज 7 का उपयोग कर रहा हूं? क्या कोई कार्यान्वयन कदम है जिसे मैं उम्मीद नहीं कर सकता?

+0

संभव डुप्लिकेट [ध्वनियों के संश्लेषण के लिए कैसे?] (Http://stackoverflow.com/questions/790960/how-to-synthesize-sounds) –

उत्तर

8

@Marcelos जवाब के एक उप समूह: http://code.google.com/p/mingus/

Mingus प्रोग्रामर, संगीतकारों, संगीतकारों और शोधकर्ताओं द्वारा इस्तेमाल करते हैं और संगीत की जांच के लिए अजगर के लिए एक पैकेज है। मिंगस के मूल में संगीत सिद्धांत है, जिसमें अंतराल, तार, तराजू और प्रगति जैसे विषयों शामिल हैं।

MIDI पैकेज MIDI फ़ाइलों को सहेज और लोड कर सकता है, और - लेकिन कम से कम नहीं - सभी कंटेनरों और फ़्लूइडसिंथ अनुक्रमक उप-वर्ग के लिए एक सामान्य उद्देश्य अनुक्रमक प्रदान करता है। यह आपको पाइथन से सीधे कुछ ही पंक्तियों में अपने सभी डेटा संरचनाओं को चलाने की अनुमति देता है। अधिकांश icky समय और एमआईडीआई कोड आपके लिए एक साफ, अपेक्षाकृत सरल एपीआई छोड़कर, आपके लिए दूर किया गया है।

+0

धन्यवाद, यह वास्तव में सवाल का जवाब देता है। इच्छुक पार्टियों के लिए, मैं [मिडियूटिल] (http://code.google.com/p/midiutil/) –

+0

के साथ जो चाहता था उसका निर्माण समाप्त कर दिया यह एक महान पुस्तकालय है। जवाब के लिए धन्यवाद! कोड उदाहरण के लिए –

1

पाइथन में संगीत चलाने के बारे में कभी भी जानना चाहते हैं, तो here पर एक नज़र डालें।

11

मेरा एक छात्र बस Mingus का उपयोग कर सिर्फ इस इसलिए यहाँ है जल्दी कैसे linux पर जा पाने के लिए पर गाइड (ubuntu) करने के लिए शुरू हो गया है:

fluidsynth और Mingus स्थापित करें यदि आप उन्हें पहले से नहीं है :

$ sudo स्थापित fluidsynth

$ sudo easy_install Mingus

अब आप होना चाहिए apt-get अजगर और प्रकार खोलने में सक्षम:

>>> from mingus.midi import fluidsynth 
>>> fluidsynth.init('/usr/share/sounds/sf2/FluidR3_GM.sf2',"alsa") 

यह Mingus और initialises से आवश्यक सामान का आयात करता है alsa के माध्यम से खेलने के लिए नहीं है (जैक जो डिफ़ॉल्ट है) fluidsynth। तब:

>>> fluidsynth.play_Note(64,0,100) 

... और आप एक नोट सुनना चाहिए पियानो पर खेला (तर्क हैं: टिप्पणी संख्या, चैनल संख्या और वेग)।

अधिक जानकारी के लिए यहां जाएं:

https://code.google.com/p/mingus/wiki/tutorialFluidsynth

की
+0

+1! – qed