سؤال

أريد أن أقوم بإنشاء تطبيق صغير يخلق أصوات MIDI. لم أتعامل أبدا مع الصوت في البرمجة، لذلك أود أن أبدأ بشيء أساسي ولديه وثائق جيدة. أريد أن أتمسك ببيثون لأنني أكثر راحة معها ولا أريد أن تطغى بنفسي، في البداية.

تقسيم وقتي حوالي 50/50 بين Windows و Ubuntu حتى شيء "يعمل فقط" على كلا النظامين سيكون مفيدا حقا.

أي اقتراحات؟

هل كانت مفيدة؟

المحلول

مكتبة ميديوتيل (استضافت هنا في Google Code) يفعل ما تريد: اكتب ملفات MIDI من مكتبة بيثون نقية. مرة واحدة لطيفة شيء عن ذلك (والإفصاح الكامل: أنا المؤلف) هو أنه لا يتعين عليك تتبع الأحداث المتوسطة المستوى المنخفضة مثل الملاحظات والمذكرة: إنها تعالجها لك.

كمثال لكتابة ملاحظة، سوف تفعل شيئا مثل:

MyMIDI = MIDIFile(1)
track = 0
channel = 0
pitch = 60
time = 0
duration = 1
volume = 100
MyMIDI.addNote(track,channel,pitch,time,duration,volume)

أتمنى أن يساعدك هذا

نصائح أخرى

كنت أبحث عن مكتبة بيثون نقية لتوليد ملف MIDI، مكتبة بيثون ميدي بيثون هو بالضبط ذلك.

من هذه القصاصة dzone., ، هناك إصدار ملف واحد من المكتبة أعلاه، smidi.py. (gist'd هنا للأجيال القادمة)

الاستخدام بسيط للغاية:

>>> import smidi
>>> m = smidi.MidiOutFile('out.mid')
>>> m.header()
>>> m.start_of_track()
>>> m.update_time(0)
>>> m.note_on(note=0x40)  # single note
>>> m.update_time(192)
>>> m.note_off(note=0x40) # stop it after 192
>>> m.update_time(0)
>>> m.end_of_track()
>>> m.eof()

يفترض أن يعمل على Windows (كما يستخدم المثال الأصلي C:\out.mid كسمي إخراج)، واختبرها على OS X

Pyportmidi. هو غلاف Python من Portmidi، الذي يوصف بأنه "مكتبة C عبر منصة C للسيطرة على MIDI في الوقت الحقيقي". أنا لم أستخدمها بنفسي، لكنها تبدو واعدة للغاية. ذكر صريح من القدرة على إرسال بيانات MIDI في الوقت الفعلي.

إذا كنت بحاجة فقط إلى إنشاء ملفات MIDI أو Process MIDI، فحاول Mingus.، إنها حزمة رائعة وتسمح أيضا بتجراج أعلى بكثير مثل الحبال والترات التقاليات والموازين وما إلى ذلك.

حاولت ثمانية حزم مدرجة على الويكي http://wiki.python.org/moin/pythoninmusic.وبعد لقد وجدت أن الشخص الذي music21 (http://web.mit.edu/music21/) كنت

  • الأكثر شمولية
  • أفضل تعليمي
  • أسهل لتثبيت على ويندوز

ولكن حسب طلبك للبساطة، أعتقد أنه ليس أبسط واحد. ولكن لم أستطع الحصول على أي من البرامج الأخرى لقراءة ملفات MIDI بطريقة قوية (لدي مجموعة متنوعة من تنسيقات ملفات MIDI الغريبة والرائعة التي شنقا)

تمت إضافة دعم MIDI (داخل وخارج) إلى Pygame 1.9، على الرغم من أنه في مرحلة التطوير ولم يتم توثيقه بشكل جيد للغاية حتى الآن، لكنه يعمل.

يتم تطوير دعم MIDI أيضا في خليفة Pygame، PgreLoaded (أو Pygame2).

لاحظ أيضا أنه على الرغم من أن Pygame لديه "لعبة" في العنوان، فإن استخداماتها تمتد إلى ما بعد تصميم لعبة فقط.

ينظر الى csounds..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top