2009-07-25 9 views
8

एकाधिक ट्रैक के साथ MIDI फ़ाइल (कालक्रम) को पढ़ने का सबसे अच्छा तरीका क्या है? (जावा)पढ़ना MIDI फ़ाइलें

नोट: मैं MIDI फ़ाइल नहीं खेलना चाहता हूं, बस संदेशों को पढ़ें।

युगल विचार:

यह ग्रहण करने के लिए कोई टिप्पणी घटनाओं 1/64 वां टिप्पणी की तुलना में कम कर रहे हैं सुरक्षित है? या मैं हर ट्रैक की यात्रा करनी चाहिए और केवल अन्य सभी टिक टिक के बाद अगले करने के लिए ले जाने के पटरियों

  • मान लें एक 1/64 वां टिप्पणी के अलावा कोई मिडी घटना में कम नहीं है, और कहा कि ठीक डेल्टा द्वारा वर्तमान स्थिति टिक गिनती चलते हैं।
  • जाएँ हर ट्रैक और अगले जल्द से जल्द टिक
+1

1/64 वें नोट्स मानना ​​सुरक्षित नहीं है, उदाहरण के लिए 1/128 भी मौजूद है। हालांकि, यह मानना ​​सुरक्षित है कि डेटा एक बाइट में संग्रहीत है। (आप मिडी मैसेज क्लास के साथ उन लोगों का आकलन कर सकते हैं)। –

+0

@yxk मुझे मिडी फ़ाइल से उचित शीट संगीत भी बनाना पसंद है। क्या आप शुरू करने और मेरे लिए शुरू करने के लिए मार्गदर्शन करते हैं? – Kalpesh

+0

एनील स्टूडियो में $ 60 विकल्प है जो मिडी फाइलों से शीट संगीत प्रिंट करेगा। इसके अलावा, किसी को भी MIDI फ़ाइल पढ़ने वाले किसी भी ओपन सोर्स जावा विकल्प पता है? –

उत्तर

0

जावा में करने के लिए प्रगति, आप के साथ एक मिडी फ़ाइल पढ़ सकते हैं:

try { 
     Sequencer sequencer = MidiSystem.getSequencer(); 
     sequencer.setSequence(MidiSystem.getSequence(yourMidiFile)); 
     sequencer.open(); 
     sequencer.start(); 
     while(true) { 
      if(sequencer.isRunning()) { 
       try { 
        Thread.sleep(1000); // Check every second 
       } catch(InterruptedException ignore) { 
        break; 
       } 
      } else { 
       break; 
      } 
     } 

} catch(Exception e) { 
     System.out.println(e.toString()); 
} finally { 
    // Close resources 
    sequencer.stop(); 
    sequencer.close(); 
} 

यह कोड आपके मिडी फ़ाइलों को पढ़ने चाहिए (कई देखते हैं, भले ही पटरियों)

+0

मैं अनुक्रम को खेलना नहीं चाहता, बस – yxk

+0

@srand में ईवेंट संदेश प्राप्त करें मुझे लगता है कि यह सिर्फ एक उदाहरण है, आप मिडी सिस्टम, अनुक्रम और ट्रैक कक्षाओं का उपयोग मिडीइवेंट्स में संग्रहीत करने के लिए कर सकते हैं फ़ाइल। –

+0

@ जैस्पर हाँ, यही वह है जो मैं वर्तमान में कर रहा हूं, हालांकि यह मिडी फ़ाइल (और क्रोनोलॉजिकल नहीं) का एक धारावाहिक/क्रमिक पठन है। – yxk

3

JFugue मिडी फ़ाइल पढ़ सकते हैं और संदेशों को क्रमिक क्रम में क्रमबद्ध कर सकते हैं।

परिणाम JFugue MusicStrings (उदाहरण के लिए, सी-तेज, 5 वें ऑक्टोव, पूरे नोट = "सी # 5W") के रूप में पढ़ा जा सकता है, या आप अपना खुद का पार्सर लिस्टर लिख सकते हैं और इसे मिडीपार्सर से जोड़ सकते हैं ताकि आप आउटपुट कर सकें आपका खुद का पाठ

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