2012-06-16 24 views
5

मैं व्यक्तिगत पिक्सेल के आरजीबीए मूल्यों के आधार पर एक तस्वीर को MIDI नोट्स में कनवर्ट करने के लिए एक स्क्रिप्ट लिख रहा हूं। हालांकि, मुझे लगता है कि आखिरी कदम काम नहीं कर रहा है, जो वास्तव में नोट्स को फाइल में आउटपुट करना है। मैंने MIDIUtil लाइब्रेरी का उपयोग करने का प्रयास किया है, हालांकि यह दस्तावेज सबसे महान नहीं है और मुझे इसे समझने की प्रतीत नहीं होती है। अगर कोई मुझे नोट्स को अनुक्रमित करने के बारे में बता सकता है (ताकि वे सभी शुरुआत में शुरू नहीं हो जाएं) इसकी सराहना की जाएगी।मैं पाइथन के साथ MIDI फ़ाइल कैसे लिख सकता हूं?

अग्रिम धन्यवाद।

+0

क्या आपको देरी लिखना याद आया? –

उत्तर

10

नमूना को देखते हुए, जैसे

from midiutil.MidiFile import MIDIFile 

# create your MIDI object 
mf = MIDIFile(1)  # only 1 track 
track = 0 # the only track 

time = 0 # start at the beginning 
mf.addTrackName(track, time, "Sample Track") 
mf.addTempo(track, time, 120) 

# add some notes 
channel = 0 
volume = 100 

pitch = 60   # C4 (middle C) 
time = 0    # start on beat 0 
duration = 1   # 1 beat long 
mf.addNote(track, channel, pitch, time, duration, volume) 

pitch = 64   # E4 
time = 2    # start on beat 2 
duration = 1   # 1 beat long 
mf.addNote(track, channel, pitch, time, duration, volume) 

pitch = 67   # G4 
time = 4    # start on beat 4 
duration = 1   # 1 beat long 
mf.addNote(track, channel, pitch, time, duration, volume) 

# write it to disk 
with open("output.mid", 'wb') as outf: 
    mf.writeFile(outf) 
+0

यदि आप पाइथन 3 का उपयोग कर रहे हैं, तो आपको उस पहली पंक्ति को 'midiutil.MidiFile3 आयात MIDIFile' से बदलना चाहिए। – Cai

+0

मैं इस पर ट्रैक संदेश कैसे जोड़ूं? – kurtosis

8

मैं जानता हूँ कि यह एक पुरानी पोस्ट है, लेकिन मैं पुस्तकालय के लेखक हूँ, और मुझे लगता है कि अजगर 2 और 3 समर्थन का उल्लेख करना चाहता था कुछ अब किया गया है एकीकृत और गूगल कोड के निधन के साथ कोड अब GitHub पर होस्ट की है और पिप के माध्यम से स्थापित किया जा सकता, अर्थात्:

pip install MIDIUtil 

प्रलेखन Read The Docs पर उपलब्ध है।

(टिप्पणी करने की कोशिश की, लेकिन मैं अनुभव अंक का अभाव है।)

अंत के ट्रैक संदेश स्वचालित रूप से जब फ़ाइल को डिस्क पर लिखा है बनाया जाता है।

+2

हाय मार्क। मेरे पास लगातार समय-टिकटें की एक फ़ाइल है, और फ़ाइल में प्रत्येक बार-स्टैंप के लिए, मैं एक नोट खेलना चाहता हूं, सी 64 मेजर कहें। कोई सुधार नहीं है, जैसे सुधार, टिकटों को यादृच्छिक हैं ... मैं कैसे करूँ मिडी फ़ाइल पर उन्हें "जैसा है" प्राप्त करें? – ajsp

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