سؤال

أرغب في إنشاء مكون إضافي بسيط لـ VST يقوم بما يلي:

  1. تحليل دفق الصوت (مستوى الصوت، والإيقاع، وما إلى ذلك...)
  2. يحتوي على مشغلات على مخرجات المحلل (على سبيل المثال.افعل شيئًا عندما يكون الحجم > العتبة)
  3. إنشاء أحداث MIDI بناءً على المشغلات

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

المشكلة هي أنني لا أعرف كيفية القيام بذلك.هل يوجد دعم لاتصالات MIDI المباشرة مثل هذه في VSTs؟أو ربما أحتاج إلى نوع من "جهاز midi الافتراضي" للاتصالات البينية؟

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

المحلول

من المحتمل أن يكون حدسك هنا صحيحًا؛سيكون إنجاز هذه المهمة أسهل عن طريق كتابة جهاز MIDI افتراضي بدلاً من مكون VST الإضافي.من الممكن إرسال أحداث MIDI إلى جهاز تسلسل باستخدام استدعاء sendVstEventsToHost()، لكن المشكلة تكمن في أن الوثائق لا تحدد أبدًا كيفية تنفيذ الأمر يستضيف مطلوب للرد على هذه الأحداث.يتجاهلها العديد من المضيفين ببساطة، وأنا بالتأكيد لا أستطيع التفكير في مضيف يسمح بالتوجيه السهل من مكون إضافي إلى قناة MIDI (ربما plogue bidule؟).

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

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

يحرر:فيما يلي بعض الموارد حول كتابة برامج تشغيل MIDI لأنظمة مختلفة:

نصائح أخرى

لا تدعم مكونات VST الإضافية اتصالات midi المباشرة، ويمكن أن تحتوي فقط على منافذ دخل/خارج midi.

ومع ذلك، لا يزال من الممكن القيام بذلك، فأنت تحتاج فقط إلى مضيف يدعم توجيه midi من مكون إضافي إلى آخر.تتفوق هنا الأجهزة المضيفة المعيارية مثل EnergyXT وBidule وAudioMulch وConsole.تسمح جميعها بتوجيه الإشارات الصوتية والميدي بحرية (باستثناء عدم وجود مسارات للتعليقات).ولكن قد يكون ذلك ممكنًا أيضًا في المضيفين الذين لديهم رفوف أكثر "تقليدية" على طراز الخلاط.(على سبيل المثال، سوف يقوم AFAIK Reaper بإعادة توجيه أي ملف midi من مكون إضافي إلى آخر.)

إذا كنت ترغب في إنشاء البرنامج المساعد الخاص بك في .NET، فقم بإلقاء نظرة على VST.NET

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