جدول المحتويات:

MIDI آخر لصندوق السيرة الذاتية: 7 خطوات (بالصور)
MIDI آخر لصندوق السيرة الذاتية: 7 خطوات (بالصور)

فيديو: MIDI آخر لصندوق السيرة الذاتية: 7 خطوات (بالصور)

فيديو: MIDI آخر لصندوق السيرة الذاتية: 7 خطوات (بالصور)
فيديو: تصميم سيرة ذاتية احترافية من الالف للياء - How to make a CV (Curriculum Vitae) 2024, يوليو
Anonim
MIDI آخر لصندوق السيرة الذاتية
MIDI آخر لصندوق السيرة الذاتية

صندوق MIDI to CV آخر هو مشروع قمت بتطويره عندما طرق Korg MS10 بابي وحدث في الاستوديو الخاص بي. نظرًا لأن الإعداد الخاص بي يرتبط بشكل كبير بـ MIDI لأتمتة جميع الأدوات ومزامنتها ، عندما اشتريت MS10 ، كانت المشكلة الأولى التي واجهتها هي كيفية تنفيذ مثل هذا التحكم.

لا يعد Korg MS20 / 10 أسهل السينسات لتنفيذ MIDI: أولاً وقبل كل شيء ، يعتمدون على التحكم في Hz / V (الارتباط الخطي بين جهد التحكم وتردد الملاحظة) ، بدلاً من oct / V (1V لكل أوكتاف) ؛ ثانيًا ، لتشغيل ملاحظة ، يجب عليك إرسال إشارة بوابة سالبة واختصار الإدخال إلى الأرض (S-Trig) ، وليس إشارة +5 V (V-trig).

هناك العديد من الحلول التجارية للتحكم في مثل هذه الأدوات في الوقت الحاضر (مثل Arturia Beatstep Pro ، و Korg SQ-1 ، و Kenton Solo) ولكني لست حقًا رخيصًا ، وحتى 100 يورو تعتبر أكثر من اللازم بالنسبة لجهاز "لا يبدو":).

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

"ماذا عن جهاز MS20 mini الجديد؟"

كما يعلم أي شخص تقريبًا ، فإن MS20 الجديد جاهز بالفعل لـ MIDI: IN مع موصل MIDI 5 أقطاب و IN / OUT مع موصل USB.

"لذا ، إذا كان لدي MS20 mini ، فهذا الشيء لا طائل منه!"

حسننا، لا. يتعرف MS20 mini فقط على رسائل تشغيل / إيقاف تشغيل الملاحظة ولوحة المفاتيح ليست حساسة للسرعة. لا توجد طريقة للتغلب على هذا باستخدام لوحة المفاتيح القديمة أو المصغرة MS10 / 20 ، ولكن مع صندوق ميدي ولوحة مفاتيح حساسة للسرعة فأنت ذهبي. بالإضافة إلى ذلك ، باستخدام صندوق MIDI ، يمكنك أتمتة قطع الفلتر (أو أي معلمة أخرى قابلة للتحكم في الجهد) أو تعديلها بواسطة ملاحظة MIDI الواردة بشأن السرعة. مرة أخرى ، قناة MIDI الوحيدة التي تستجيب لها MS20 mini هي القناة 1. باستخدام هذا المربع ، يمكنك التغلب على هذا الحد أيضًا.

"ماذا لو كان لدي موالفة Oct / V؟"

لا مشكلة! الكود الذي كتبته متوافق مع أجهزة توليف Oct / V (لم يتم اختبارها ، لكنني واثق من أنها ستعمل خارج الصندوق ؛)).

الخطوة 1: !! ملاحظة الحذر - إخلاء المسؤولية

إن أجهزتك ذات قيمة عالية جدًا ولا ينبغي استخدامها لإجراء الاختبارات.

يمكن أن يؤدي اللعب بالكهرباء إلى إتلاف معداتك بشدة أو إلحاق الضرر بنفسك.

لا يمكن أن أتحمل المسؤولية عن الأضرار التي لحقت بمعداتك / أجهزتك أو حتى أنت تأتي من أي من البرامج أو المخططات أو المعلومات أو الروابط التي أبلغت عنها في هذا الدليل.

لقد تم تحذيرك!

الخطوة الثانية: هندسة الأجهزة

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

- الملعب ، عن طريق تحويل خرج pwm إلى جهد تناظري لدفع VCO عبر محول رقمي إلى تناظري (DAC)

- السرعة ، عن طريق تصفية خرج pwm لقيادة VCA بفلتر RC بسيط

- تردد قطع المرشح ، عن طريق تصفية خرج pwm لقيادة VCF باستخدام مرشح RC بسيط

- بوابة ، مباشرة من مخرج رقمي في حالة V-trig (ضع 1Kohm في سلسلة مع الإخراج لتقليل استنزاف التيار) أو عن طريق مفتاح ترانزستور pnp بسيط خارج المخرج الرقمي (انظر التخطيطي المرفق بخطوة المخططات).

Arduino غير قادر على إخراج جهد ثابت بشكل مباشر ، ولكن نبضات 0 / + 5 V بفترات مختلفة (PWM). نحن في حاجة إلى محولات من الرقمية إلى التناظرية (DAC) من أجل المنصة. مرشحات RC هي أسهل DAC التي يمكنني التفكير فيها. يعد مرشح RC جيدًا بما يكفي لمضخم ومرشح التحكم في الجهد (VCA و VCF). تم تصميم مرشحات RC بحيث ينتج عنها تردد قطع أقل من 20 هرتز (أدنى تردد مسموع).

لقد أجريت بعض الاختبارات باستخدام مكثفات غير مستقطبة منخفضة السعة وانتهيت بقيمة سعة 0.1 فائق التوهج لتكون أفضل ملاءمة. تم اختباره جيدًا على MS20 MKII.

لسوء الحظ ، لا يمكننا الاعتماد على مرشح RC لقيادة مذبذب التحكم في الجهد (VCO) لأنه لن يكون دقيقًا بدرجة كافية (في مقياس Hz / V ، في الطرف السفلي ، تختلف نصف نغمات adiacend عن أقل من 0.02V ؛ في V / oct اثنين من أنصاف النغمات adiacent تختلف عن 0.083 V) ؛ سنستخدم IC DAC (MPC4725) لهذا الغرض.

حدود معروفة

الحد من جهد القيادة إلى 5 فولت (جهد خرج Arduino) ، يتم تغطية النطاق الكامل من 0 إلى 5 فولت للسرعة ؛ القطع نصف مغطى (-5 فولت إلى +5 فولت) ؛ يتم تغطية نطاق VCO جزئيًا حيث أنه في Hz / V ، يلزم وجود جهد 8 فولت للوصول إلى 440 هرتز A4. مع حد خرج 5 فولت ، يمكننا رفع المذبذب إلى تردد D4 في Hz / V.

الخطوة 3: قائمة المكونات

قائمة المكونات
قائمة المكونات
قائمة المكونات
قائمة المكونات
قائمة المكونات
قائمة المكونات

أنت في حاجة إلى:

1X Arduino UNO (أو نانو)

1X MPC4725 لوحة DAC

4X 1/8 "أو 1/4" موصلات أحادية

موصل MIDI 1X

1X 6N138 optocoupler

1X 1N4148 ديود

1X 220 أوم 1/4 واط المقاوم

1X470 أوم 1/4 واط المقاوم

1X 10 كيلو أوم 1/4 واط المقاوم

4X 1 كيلو أوم 1/4 واط المقاوم

2X 0.1 فائق التوهج مكثف

1X BC547 pnp الترانزستور (في حالة S-trig)

1X صندوق ABS (على الأقل 55 × 70 × 100 مم)

… ومن الواضح أن اللوح أو اللوح المثالي ، ومكواة اللحام ، وأسلاك اللحام والكابلات (2 متر من 28 AWG يجب أن يكون كافياً).

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

لقد استخدمت موصلًا إضافيًا لتزويد اردوينو بالطاقة ؛ ليس من الضروري أن يكون من الممكن توصيل وحدة التحكم الدقيقة مباشرة عبر موصل USB الصغير الموجود على اللوحة.

الخطوة 4: التوصيلات / المخططات

اتصالات / مخططات
اتصالات / مخططات
اتصالات / مخططات
اتصالات / مخططات
اتصالات / مخططات
اتصالات / مخططات

ميدي إن

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

لاحظ أنني أضفت مفتاحًا في مخطط MIDI IN (المفتاح 1): هذا ضروري عند تحميل رسم جديد إلى Arduino لأن opto يتداخل مع خط RX حتى بدون رسائل midi الواردة. يجب عليك فتح المفتاح قبل تحميل الرسم الخاص بك وإلا سيفشل IDE في تحميل الرسم الجديد.

يمكنك في النهاية تعديل الرسم التخطيطي لاستخدام اتصال برنامج تسلسلي.

DAC ، مرشح RC ، المركب

يظهر الاتصال لمرشحات DAC و RC و Synth (الملعب والبوابة والسرعة) في الرسم التخطيطي في الأعلى. لقد أخذت لوحة تصحيح Korg MS20 كمرجع ، لكنني اختبرت كل شيء على MS10 أيضًا. ليس للربط المباشر للسيرة الذاتية للسرعة بنقطة التصحيح "الكسب الأولي" لـ VCA أي تأثير (يجب أن أحفر هذا الشيء أكثر) ولكن إذا قمت بتوصيله بنقطة التصحيح "الإجمالي" ورفع مجموع الأواني الخارجية (MG / T. EXT)) ، سوف تسمع اختلافات نغمة لطيفة كدالة لسرعة النغمة.

لا تستخدم مخططاتي (والنموذج الأولي أيضًا) مقاومًا محددًا للتيار عند إخراج DAC ، ولكن من الجيد دائمًا وضع واحد لضمان عمر طويل لدوائرك. سيكون كافيا 220 أوم المقاوم.

لاحظ أنه في المخططات فوق 100 uF تم الإبلاغ عن أغطية إلكتروليتية ، لكنها بطيئة جدًا بسبب وقت شحن السعة. قبعات 0.1 فائق التوهج غير مستقطبة هي الاختيار الصحيح.

بوابة الخروج

في حالة قيامك بتسلسل موالفة متوافقة مع إشارات V-Trig (مشغل الجهد) ، سيكون المقاوم المتسلسل 1 كيلو أوم لتقليل استنزاف التيار كافياً ؛ في حالة موالفة S-Trig (مفتاح التشغيل) ، يمكنك استخدام دائرة تبديل PNP بسيطة (انظر المخطط المرفق).

الخطوة 5: البرنامج

البرنامج
البرنامج

حاولت أن أبقي الرسم واضحًا و "مقروءًا" قدر الإمكان.

لقد عملت على ورقة حسابية بسيطة وجدتها هنا لاشتقاق منحنى Voltage Vs Note # واستخدام المعادلة مباشرة في الميكروكونترولر. تظهر المعادلة في الرسم البياني في الأعلى. لقد استخدمت C2 كملاحظة مرجعية للحصول على علاقة ملاحظة Voltage Vs متوافقة مع Arp / Korg (C0 - 0.25V ، C1 - 0.5V ، C2 - 1V ، C3 - 2V ، C4 - 4V ، C5 - 8V وما إلى ذلك).

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

سنقوم بزيادة تردد pwm للمؤقت / العداد لتقليل تموج جهد الخرج (سهل مثل سطر من التعليمات البرمجية).

للحفاظ على استجابة الكود للبايت الوارد ، تعتمد الشفرة بشكل كبير على عمليات استدعاء الوظائف.

أنت في حاجة إلى مكتبات "Adafruit_MCP4725.h" في Sparkfun و Forty Seven Effects / Francois Best's "MIDI.h" لتجميعها! (شكراً جزيلاً لهؤلاء الأشخاص: لولا جهودهم لن يتحقق هذا المشروع أبدًا!).

سأفترض أن لديك Arduino IDE جاهزًا على جهاز الكمبيوتر الخاص بك وأنت تعرف كيفية تحميل رسم تخطيطي على لوحة Arduino.

أنا لست مبرمجًا في الحياة الواقعية ، لذلك من المحتمل جدًا أن يكون الرسم التخطيطي مكتوبًا بطريقة أفضل. أنا منفتح على الاقتراحات (أتعلم دائمًا شيئًا ما يبحث في كود المبرمج ؛))

يتم كتابة ملاحظات إضافية في الكود أدناه. قم بتثبيت المكتبتين ، وافتح الرمز المرفق على IDE الخاص بك ، وقم بتوصيل اللوحة الخاصة بك ، وحدد نوع اللوحة وقم بالتحميل.

الخطوة 6: استكشاف الأخطاء وإصلاحها

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

1. تأكد من أن Arduino يتلقى رسائل MIDI بشكل صحيح

تحقق من قناة الإخراج التي تقوم لوحة المفاتيح أو DAW أو جهاز التسلسل بإخراج رسائل MIDI إليها. يستمع Arduino إلى القناة 1 بشكل افتراضي. قم بتحميل "TEST_MIDI_IN.ino" لقراءة رسالة ملاحظة واردة.

2. تحقق مرة أخرى من الأسلاك الخاصة بك

… أو أفضل: تحقق منهم ثلاث مرات! حافظ على وقتك لهذا.

3. تحقق من عنوان DAC والإخراج

يمكن تعيين DAC لتلقي البيانات على عنوان مختلف عن العنوان الذي قمت بتعيينه في الرسم التخطيطي. تحقق من العنوان عن طريق تشغيل "I2C_scanner.ino". إذا حدث خطأ "لم يتم العثور على جهاز" ، فتحقق من توصيلات DAC (تختلف مدخلات SDA و SCL في لوحات Arduino المختلفة!). إذا كان لديك منظار الذبذبات (حتى هذه الذبذبات الرقمية التي تبلغ قيمتها 15 يورو جيدة بما يكفي … وممتعة للعب بها!) يمكنك التحقق من إخراج DAC عن طريق تحميل مثال مولد الموجات المثلثية المتضمن في تثبيت مكتبة DAC.

تذكر أنه عند توصيل optocoupler بإدخال RX بلوحة اردوينو الخاصة بك ، فلن تتمكن من تحميل رسم تخطيطي جديد !! ضع مفتاحًا (يمكن أن يكون رابطًا بسيطًا) قبل دبوس RX.

معظم رسومات الاختبار هذه ليست لي أو على الأقل تستند إلى مواد موجودة عبر الإنترنت.

هذا الشيء يبدو غير متناغم بالنسبة لي !؟

هذه ليست مشكلة حقيقية: المعادلة المشتقة للتحكم في Hz / V "مثالية". يمكن أن يرتفع بعض الانحراف عن السلوك المثالي من +5 فولت الذي تقدمه ليس 5.000 فولت ، من DAC ومن الجهاز نفسه. لحل هذه المشكلة ، يجب أن تعمل على لحن الموالفة / مقياس الجهد الدقيق و "voilà" عنصر تحكم MIDI مضبوط تمامًا ؛)

الخطوة السابعة: روابط مفيدة

en.wikipedia.org/wiki/CV/gate

www.instructables.com/id/Send-and-Receive-…

www.songstuff.com/recording/article/midi_me…

pages.mtu.edu/~suits/NoteFreqCalcs.html

espace-lab.org/activites/projets/en-arduin…

learn.sparkfun.com/tutorials/midi-shield-h…

provideyourown.com/2011/analogwrite-conver…

www.midi.org/specifications/item/table-3-c…

arduino-info.wikispaces.com/Arduino-PWM-Fr…

sim.okawa-denshi.jp/en/PWMtool.php

موصى به: