كيف يمكنني التحويل بين midi إلى wav/mp3 في c#؟

StackOverflow https://stackoverflow.com/questions/1185392

  •  19-09-2019
  •  | 
  •  

سؤال

لقد بدأت مشروعًا صغيرًا يتضمن العمل مع ملفات MIDI.لقد كنت أتساءل، هل هناك أي كود C# أو VB.Net يقوم بالإرسال بين ملفات MIDI وWAV؟

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

المحلول

يمكنك محاولة واجهة بطريقة أو بأخرى مع الخمول, ، وهو مفتوح المصدر:

الخمول ++ هو توليف البرمجيات. يمكن أن تلعب ملفات MIDI من خلال تحويلها إلى بيانات الموجي PCM؛ امنحها بيانات MIDI جنبا إلى جنب مع ملفات بيانات الأداة الرقمية، ثم توليفها في الوقت الفعلي، والمستخدم. لا يمكن أن تلعب الأصوات فحسب، بل يمكن أيضا حفظ الموجي الذي تم إنشاؤه في الأقراص الثابتة مثل تنسيقات ملفات الصوت المختلفة.

Fluidsynth. هو مشروع مفتوح المصدر الذي تم تحديثه مؤخرا في الوريد مماثل:

Fluidsynth هو مزج برامج في الوقت الفعلي استنادا إلى مواصفات SoundFont 2.

يمكنك تنزيل بعض SoundFonts المجاني (بيانات PCM الفعلية المستخدمة من قبل هؤلاء المزج إلى "تقديم" ملفات MIDI) من المواقع هذه اللائحة.

نصائح أخرى

ملفات ميدي تحتوي فقط على ملاحظة الملاحظات والتحكم، وليس الأصوات. من أجل الحصول على الأصوات من ملف MIDI، يجب عليك اجتياز الملف من خلال توليفات الموسيقى أو أخذ العينات، مما سيؤدي إلى تحويل معلومات الملاحظة والتحكم إلى الأصوات الفعلية.

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

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

إذا كان لديك حزمة إنتاج موسيقى متطورة مثل cakewalk., ، يمكنك تحميل ملف MIDI في ذلك، وسوف يستخدم مكتبات الصوت على متنها لتقديم ملف صوت لك، ويمكن بالفعل القيام بذلك بشكل أسرع من الوقت الفعلي (أي لا يجب أن يلعب الصوت من خلال بطاقة الصوت والتقاط الإخراج).

أعتقد أن ما أحاول قوله هو أن هناك الكثير من الأجزاء المتحركة لهذا. لا توجد قطعة واحدة من التعليمات البرمجية أو وحدة نمطية من الدرجة التي ستقوم بذلك من أجلك.

هناك عدد من البرامج التي يمكنك شراؤها للقيام بذلك (google "تحويل midi إلى WAV")، ولكنني لم أجد مطلقًا كود .Net متاحًا للعامة يقوم بذلك (أعتقد أن بعض هذه البرامج مكتوبة بتنسيق . Net، لكن كود المصدر غير متوفر).

لدي صديق عبر الإنترنت يعمل على محول تجاري من MIDI إلى WAV، ولكنه غير موجود في .Net ولن يكون مفتوح المصدر.كما ذكر روبرت هارفي، هذه ليست مهمة بسيطة على الإطلاق، لأنها تتضمن بشكل أساسي كتابة مُركِّب البرامج الخاص بك (مهمة من قلبي).

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