با آردوینو کنترل کننده MIDI خود را بسازید

MIDI

اگر عاشق موسیقی هستید یا مستقیماً یک نوازنده آماتور یا حرفه ای هستید ، مطمئناً در خانه خود مجموعه بزرگی از آلات موسیقی را جمع کرده اید. برای اینکه تمام این ترکیبات کاملاً درست شود ، بهتر است a کنترل کننده MIDI. متأسفانه ، این نوع اشیا usually معمولاً بسیار گران قیمت هستند ، بنابراین دسترسی به هر شخصی که منابع زیادی داشته باشد برای فردی دشوار است.

برای درک بهتر اینکه یک کنترل کننده MIDI چیست ، به شما بگویید که کلمه MIDI از شما آمده است رابط دیجیتال ساز موسیقی، یعنی نوعی کنترل کننده که باعث می شود دستگاه های الکترونیکی موسیقی بتوانند با یکدیگر ارتباط برقرار کنند. به عنوان مثال اگر صفحه کلید الکترونیکی در خانه دارید ، احتمال اینکه دارای رابط MIDI باشد بسیار زیاد است. قبل از ادامه پیشرفت ، علی رغم اینکه جزئیات فنی خاصی وجود دارد که باعث می شود فرد خلاف این باور را داشته باشد ، باید روشن باشد که MIDI صوتی نیست.

با این آموزش ساده کنترل کننده MIDI خود را ایجاد کنید

وقتی این موضوع را روشن کردیم ، مطمئناً درک اینکه MIDI ساده است ساده تر خواهد بود مجموعه دستورالعمل قادر به پشتیبانی از 16 کانال مستقل است، به این معنی که حداکثر 16 دستگاه مختلف می توانند به طور مستقل با یکدیگر ارتباط برقرار کنند. این دستگاه ها باید از طریق یک کابل 5 پین DIN متصل شوند ، که در واقع یک کابل با پنج پایه در داخل یک اتصال است. به عنوان جزئیات ، استفاده از USB به جای DIN 5 پین کاملاً معمول است ، در صورت استفاده از USB ، باید یک رابط USB-MIDI ایجاد کنیم.

بدون زحمت بیشتر ، پیوندی را که می توانید آن را پیدا کنید برای شما می گذارم آموزش گام به گام با بسیاری از تصاویر توصیفی جایی که ما می توانیم تمام اقدامات لازم را برای ایجاد کنترل کننده MIDI خود انجام دهیم.

مقاله مرتبط:
نحوه تغییر نام کاربری و رمز عبور Pi در Raspberry Pi ما

چگونه می توان با استفاده از آردوینو کنترل کننده MIDI خود را ایجاد کرد

کانکتور میدی

بسیاری از آنها افرادی هستند که به دلایل مختلف اعم از شخصی و شغلی نیاز به استفاده از a کنترل کننده MIDI کاملاً سفارشی از آنجا که شاید و به عنوان مثال ، در برهه ای از زندگی شما به عنوان یک هنرمند ، خرید یک کنترل کننده MIDI ارزان قیمت ممکن است انتظارات یا نیازهای شما را برآورده نکند ، در حالی که زمان آن فرا می رسد ، انتخاب یک نسخه حرفه ای ممکن است در هر دو منبع مالی بیش از حد باشد. نیاز ، و همچنین تعداد زیادی از ویژگی های آنها می تواند ارائه دهد.

به همین دلیل امروز می خواهم هر آنچه را که نیاز دارید به شما نشان دهم تا بتوانید کنترلر MIDI خود را بسازید ، هم هر آنچه را که برای ساخت آن نیاز دارید نشان می دهد و هم نرم افزاری را که باید نصب کنید به شما ارائه می دهد. به عنوان جزئیات ، برای این پروژه استفاده از برد آردوینو ضروری است ، کنترلری که برای انجام این کار از قدرت کافی برخوردار باشد.

مقاله مرتبط:
نحوه ساخت ربات: 3 گزینه مختلف

کنترل کننده MIDI چیست؟

MIDI

اساساً ، یک کنترل کننده MIDI ، به طور کلی ، مسئول اتصال دستگاه های مختلف موسیقی به یکدیگر است. بسیاری از آنها ابزاری هستند که از یک رابط MIDI استفاده می کنند ، اگرچه این باید کاملاً واضح باشد زیرا بسیاری از کاربران اغلب گیج می شوند ، MIDI یک فایل صوتی نیست ، بلکه یک مجموعه دستورالعمل بسیار ساده است که یک ابزار می تواند دریافت کند. برای کنترل متفاوت یا تنظیمات صدا.

داخل MIDI دو نوع مختلف وجود دارداز یک طرف ، یکی با نام Change Control وجود دارد که در آن شماره کنترلر وجود دارد و مقداری بین 0 و 127 دارد. با تشکر از این ، پیام هایی می توانند صادر شوند که پارامترهای مختلفی مانند میزان صدا یا میزان صدا را می توان تغییر داد. ابزارهای مختلفی که MIDI را می پذیرند باید یک کتابچه راهنمای همراه داشته باشند که توضیح دهد کدام کانال ها و پیام ها به طور پیش فرض تنظیم شده اند و نحوه تغییر آنها.

در وهله دوم ، برنامه Change Change را داریم ، یک سری پیامهایی که به نوبه خود بسیار ساده تر از پیامهای تغییر کنترل هستند. از این نوع پیام ها برای تغییر حالت از پیش تعیین شده یا وصله دستگاه استفاده می شود. همانند Change Change ، سازنده به همراه سازنده شما باید یک دفترچه راهنما داشته باشد که نشان می دهد چه تنظیمات از پیش تعیین شده توسط یک پیام خاص تغییر می کند.

قطعات مورد نیاز برای ساخت کنترل کننده MIDI خانگی خود

شماتیک اتصال میدی

برای اینکه بتوانید کنترلر MIDI خود را بسازید ، علاوه بر آنچه قبلاً اشاره کردیم ، به یک سری آردوینو به یک سری قطعات نیز احتیاج دارید. قبل از ادامه ، فقط به شما بگویید که شاید در آینده به دلیل اینکه می خواهید پروژه را گسترش دهید ، به چیزهای بیشتری احتیاج دارید ، گرچه در این زمان با چند قطعه مقدار زیادی خواهید داشت.

ما به یک کابل زنانه 5 قطب DIN ، 2 مقاومت 220 اهم ، 2 کلید لحظه ای ، 2 مقاومت 10 کیلو اهم ، سیم اتصال ، یک صفحه مدار ، کابل MIDI و یک دستگاه MIDI یا رابط USB نیاز داریم. با استفاده از این قطعات می توانید ، مراحل زیر را دنبال کنید ، و کنترلر MIDI خود را بسازید.

مراحل اول

شماتیک آردوینو میدی

قبل از شروع ، تصویری برای شما می گذارم که می توانید پایه های کابل MIDI خود را مشاهده کنید ، از این طریق می توان پین ها را به درستی شناسایی کرد و مخصوصاً مکان اتصال هر یک را. به طور کلی ، تنها کاری که شما باید در این مرحله انجام دهید اتصال پین 5 کابل به یک مقاومت 220 اهم و از آنجا به Arduino Transmit 1 ، پین 4 به یک مقاومت 220 اهم و از آنجا به سوکت 5 ولت آردوینو در حالی که پین ​​است ، است. 2 باید به اتصال زمینی کنترل کننده شما متصل شود.

پس از اتمام این مرحله ، شما یک نمودار دقیق در عکس ندارید که دقیقاً زیر این خط ها قرار گرفته است ، وقت آن است که دکمه ها را به هم متصل کنید. ایده این بخش این است که با استفاده از پین digitalRead (قادر به تشخیص ولتاژ رسیدن به آن) بتوانید با فشار دادن یک دکمه از ترانزیستور استفاده کنید. برای این کار فقط باید از یک دکمه استفاده کنیم تا در سمت چپ آن را به 5 ولت ، سمت راست را به یک مقاومت 220 اهم و از آنجا به زمین وصل کنیم در حالی که به نوبه خود ، سمت راست را نیز به پایه 6 متصل کنیم دکمه دوم نیز به همین ترتیب نصب خواهد شد اگرچه همانطور که در نمودار مشاهده می کنید به جای پایه 6 آن را به 7 متصل می کنیم.

نرم افزاری که برای کنترلر midi خانگی استفاده می شود

پس از پایان کار با تمام سخت افزارها ، زمان آن فرا رسیده است که ابزار خود را متصل کرده و آزمایش کنیم. قبل از آن ما نیاز به یک رابط USB-MIDI و کابل MIDI برای اتصال برد که در حال ارسال داده است ، با رایانه ما. برای رسیدن به این هدف ، ما کتابخانه MIDI v4.2 را که توسط بچه های چهل هفت اثر ساخته شده و باید آن را روی آردوینو نصب کرده و در پروژه گنجانده ایم ، انتخاب کرده ایم.

در مورد رایانه ، ما به برنامه ای نیاز خواهیم داشت که توانایی نظارت بر تمام داده های MIDI را دارد که از آردوینو به آن می رسند. برای این منظور ما امکانات مختلفی مانند MIDI Monitor (OS X) ، MIDI-OX (Windows) یا Kmidimon (Linux) داریم

برای انجام کمی تست ، ما فقط باید Arduino را به رایانه متصل کرده و کد زیر را اجرا کنیم:

#include
#include
#include
#include
#include

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // crear objeto de salida MIDI llamado midiOut

void setup() {
Serial.begin(31250); // configuracion de serial para MIDI
}

void loop() {
midiOut.sendControlChange(56,127,1); // envío de señal MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(1000); // retraso
midiOut.sendProgramChange(12,1); // envío de una señal MIDI PC -- 12 = valor, 1 = canal
delay(1000); // retraso de 1 segundo
}

اگر همه چیز خوب پیش رفته باشد ، می توانید به تست دکمه بروید ، در صورتی که این تست برای شما جواب نداد باید مطمئن شوید که تمام اتصالات درست است ، مدار دقیقاً همان نمودار قبلی است ، مدار با کابل MIDI به رابط USB-MIDI متصل می شود، کابلهای پورت MIDI به درستی متصل شده اند ، کابل MIDI به ورودی رابط USB-MIDI متصل است ، برد Arduino به درستی به شبکه الکتریکی متصل است و دارای قدرت کافی است ...

تست صحیح عملکرد دکمه ها

قبل از ادامه تغذیه برنامه خود با قابلیت های جدید و کدی که می توانیم در آن گم شویم ، ارزش آن را دارد که لحظه ای متوقف شوید و تست کنید که دکمه ها به درستی کار می کنند. برای آنها ما باید کد زیر را بارگیری کنیم:

const int boton1 = 6; // asignacion del boton a una variable
const int boton2 = 7; // asignacion del boton a una variable

void setup() {
Serial.begin(9600); // configuracion del serial
pinMode(boton1,INPUT); // configuracion del boton1 como entrada
pinMode(boton2,INPUT); // configuracion del boton2 como entrada
}

void loop() {

if(digitalRead(boton1) == HIGH) { // prueba de estado del boton1
delay(10); // retraso
if(digitalRead(boton1) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 1 funciona correctamente!"); // log
delay(250);
}
}

if(digitalRead(boton2) == HIGH) { // prueba de boton 2
delay(10); // retraso
if(digitalRead(boton2) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 2 funciona correctamente!"); // log
delay(250);
}
}

}

این کد فقط باید کامپایل و اجرا شود تا با اتصال کابل USB ، برنامه به ما بگوید که آیا یکی از دکمه ها را فشار داده اید.

ما کنترل کننده MIDI خانگی خود را ایجاد می کنیم

هنگامی که این تست ها را اجرا کردیم ، وقت آن است که کنترلر MIDI خود را برای آن جمع کنیم ، شما فقط باید کد زیر را کامپایل کنید:

#include
#include
#include
#include
#include

const int boton1 = 6; // asignamos boton a la variable
const int boton2 = 7; // asignamos boton a la variable

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut

void setup() {
pinMode(boton1,INPUT); // configuracion del boton1 como una entrada
pinMode(boton2,INPUT); // configuracion del boton2 como una entrada
Serial.begin(31250); // configuracion MIDI de salida
}

void loop() {
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado de nuevo
midiOut.sendControlChange(56,127,1); // envío un MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonTwo) == HIGH) { // nueva comprobacion de estado
midiOut.sendControlChange(42,127,1); // envío un MIDI CC -- 42 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}
}

به عنوان جزئیات ، به شما بگوییم که این بار نمی توانید از دستور Serial.println () با خروجی MIDI استفاده کنید ، اگر می خواهید نوعی پیام را در رایانه نشان دهید ، فقط تغییر دهید:

midiOut.sendControlChange(42,127,1);

por:

midiOut.sendControlChange(value, channel);

جایی که مقدار و کانال باید مقادیر دلخواهی را داشته باشند که می خواهید نمایش داده شوند.

مثال عملیاتی:


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

4 نظر ، نظر خود را بگذارید

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.

  1.   آلفرد dijo

    آردوینو امکانات زیادی را برای انجام پروژه های خود به شما ارائه می دهد https://www.juguetronica.com/arduino . یکی از بهترین چیزها این است که شما می توانید بدون داشتن تخصص شروع کنید و به یادگیری ادامه دهید ، بنابراین به خود انگیزه می دهید تا خودآموخته شوید.

  2.   دنل رومن dijo

    سلام.

    من سعی می کنم این آموزش خارق العاده را انجام دهم اما # موارد کامل نیستند.

    ممکن است به من بگویید کدام یک لازم است؟

    بسیار متشکرم.

  3.   زنگ بزن dijo

    سلام.
    من می خواهم با جایگزینی دکمه ها با ورودی های جک که یک سیگنال پیزوالکتریک به آن می رسد ، یک ماژول درام الکترونیکی بسازم.
    آیا امکان انجام آن وجود دارد؟

  4.   ادواردو والنزوئلا dijo

    لطفا اگر می توانید شامل این کد شوید ، من علاقه مند به این پروژه هستم.