আপনি যদি একজন সঙ্গীতপ্রেমী হন, কিংবা একজন শৌখিন বা পেশাদার সঙ্গীতশিল্পীও হন, তাহলে সম্ভবত আপনার বাড়িতে বাদ্যযন্ত্রের একটি বিশাল সংগ্রহ রয়েছে। সেগুলোকে নিখুঁতভাবে একসাথে মেলানোর জন্য, সবচেয়ে ভালো উপায় হলো একটি MIDI কন্ট্রোলার সংগ্রহ করা । দুর্ভাগ্যবশত, এই ডিভাইসগুলো সাধারণত বেশ ব্যয়বহুল হয়ে থাকে, তাই যাদের আর্থিক সামর্থ্য কম, তাদের পক্ষে এর সমস্ত সুবিধা গ্রহণ করা কঠিন হতে পারে।
MIDI কন্ট্রোলার কী, তা আরও ভালোভাবে বোঝার জন্য, MIDI শব্দটির পূর্ণরূপ হলো Musical Instrument Digital Interface । এটি এক ধরনের কন্ট্রোলার যা ইলেকট্রনিক বাদ্যযন্ত্রগুলোকে একে অপরের সাথে যোগাযোগ করতে সাহায্য করে। উদাহরণস্বরূপ, আপনার বাড়িতে যদি একটি ইলেকট্রনিক কিবোর্ড থাকে, তবে খুব সম্ভবত সেটিতে একটি MIDI ইন্টারফেস রয়েছে। আরও গভীরে যাওয়ার আগে, কিছু প্রযুক্তিগত বিবরণ ভিন্ন ইঙ্গিত দিলেও, এটা বোঝা অত্যন্ত জরুরি যে MIDI কোনো অডিও নয় ।
এই সাধারণ টিউটোরিয়ালটি দিয়ে আপনার নিজের এমআইডিআই নিয়ামক তৈরি করুন
একবার আমরা এটা বুঝে গেলে, এটা উপলব্ধি করা অবশ্যই অনেক সহজ হয়ে যাবে যে MIDI হলো মূলত একগুচ্ছ নির্দেশাবলী যা ১৬টি পর্যন্ত স্বাধীন চ্যানেল সমর্থন করতে সক্ষম , অর্থাৎ ১৬টি পর্যন্ত ভিন্ন ভিন্ন ডিভাইস একে অপরের সাথে স্বাধীনভাবে যোগাযোগ করতে পারে। এই ডিভাইসগুলোকে অবশ্যই একটি ৫-পিন DIN কেবলের মাধ্যমে সংযুক্ত করতে হবে, যা মূলত একটি কানেক্টরের ভেতরে পাঁচটি পিনযুক্ত একটি কেবল। প্রসঙ্গত উল্লেখ্য, ৫-পিন DIN কেবলের পরিবর্তে USB কেবল ব্যবহার করা বেশ প্রচলিত; যদি USB ব্যবহার করা হয়, তবে একটি USB-MIDI ইন্টারফেস তৈরি করতে হবে।
আর দেরি না করে, এখানে সেই লিঙ্কটি দেওয়া হলো যেখানে আপনি নিজের MIDI কন্ট্রোলার তৈরি করার জন্য প্রয়োজনীয় সমস্ত কাজ কীভাবে করতে হয়, তার একটি ধাপে ধাপে টিউটোরিয়াল পাবেন । এতে প্রচুর বর্ণনামূলক ছবিসহ সমস্ত প্রয়োজনীয় পদক্ষেপ দেখানো হয়েছে।
আরডুইনো দিয়ে কীভাবে আপনার নিজের এমআইডিআই নিয়ন্ত্রক তৈরি করবেন
বিভিন্ন ব্যক্তিগত ও পেশাগত কারণে অনেকেরই একটি সম্পূর্ণ কাস্টমাইজড মিডি কন্ট্রোলারের প্রয়োজন হয়। উদাহরণস্বরূপ, শিল্পী হিসেবে কর্মজীবনের কোনো এক পর্যায়ে একটি সস্তা মিডি কন্ট্রোলার কেনা তাদের প্রত্যাশা বা চাহিদা পূরণ করতে পারে না, আবার পরবর্তীতে একটি পেশাদার সংস্করণ বেছে নেওয়াটা প্রয়োজনীয় আর্থিক সংস্থান এবং এর বিপুল সংখ্যক বৈশিষ্ট্যের দিক থেকে অতিরিক্ত হয়ে যেতে পারে।
এর কারণে, আজ আমি আপনাকে যা যা প্রয়োজন তার সবই আপনাকে দেখাতে চাই যাতে আপনি এটির নির্মাণের জন্য আপনার যা প্রয়োজন উভয়ই নির্দেশ করে নিজের নিজস্ব মিডি কন্ট্রোলার তৈরি করতে পারেন এবং আপনাকে যে সফ্টওয়্যারটি ইনস্টল করতে হবে তা অফার করতে পারেন। বিশদ হিসাবে, এই প্রকল্পের জন্য একটি আরডুইনো বোর্ডের ব্যবহার প্রয়োজনীয়, একটি নিয়ন্ত্রণকারী যা এই কাজটি সম্পাদন করতে যথেষ্ট শক্তিশালী।
এমআইডিআই নিয়ন্ত্রক কী?

মূলত, একটি মিডিআই কন্ট্রোলার বিভিন্ন বাদ্যযন্ত্র যন্ত্রগুলিকে একে অপরের সাথে সংযুক্ত করার জন্য দায়বদ্ধ, বিস্তৃতভাবে বলছেন। অনেকগুলি এমন একটি ডিভাইস যা একটি মিডি ইন্টারফেস অন্তর্ভুক্ত করে যদিও, এটি অবশ্যই খুব স্পষ্ট হতে হবে যেহেতু অনেক ব্যবহারকারী যারা প্রায়শই বিভ্রান্ত হন, এমআইডিআই কোনও অডিও ফাইল নয়, তবে একটি খুব সহজ নির্দেশাবলী যা কোনও যন্ত্র বিভিন্ন নিয়ন্ত্রণ তৈরি করতে পারে বা শব্দ বিন্যাস.
MIDI-এর মধ্যে দুই ধরনের চ্যানেল রয়েছে । একটিকে বলা হয় চেঞ্জ কন্ট্রোল, যাতে কন্ট্রোলার নম্বর এবং ০ থেকে ১২৭-এর মধ্যে একটি মান থাকে। এটি আপনাকে এমন মেসেজ পাঠাতে দেয় যা ভলিউম বা পিচের মতো বিভিন্ন প্যারামিটার পরিবর্তন করে। যে সমস্ত ইন্সট্রুমেন্ট MIDI সাপোর্ট করে, সেগুলোর সাথে একটি ম্যানুয়াল থাকা উচিত, যেখানে ব্যাখ্যা করা থাকে কোন চ্যানেল ও মেসেজগুলো ডিফল্টভাবে কনফিগার করা থাকে এবং কীভাবে সেগুলো পরিবর্তন করতে হয়।
দ্বিতীয় স্থানে আমাদের রয়েছে প্রোগ্রাম চেঞ্জ, এমন একটি সিরিজের বার্তাগুলি যা পরিবর্তন নিয়ন্ত্রণ তৈরির চেয়ে অনেক সহজ। এই ধরণের বার্তাগুলি কোনও ডিভাইসের প্রিসেট বা প্যাচ পরিবর্তন করতে ব্যবহৃত হয়। চেঞ্জ কন্ট্রোলের মতো, আপনার যন্ত্রের সাথে প্রস্তুতকারকের অবশ্যই একটি ম্যানুয়াল অন্তর্ভুক্ত করতে হবে যা নির্দিষ্ট বার্তা দ্বারা কোন প্রিসেটগুলি পরিবর্তন করা হয়েছে তা নির্দেশ করে।
অংশগুলি আপনার নিজের বাড়িতে তৈরি এমআইডিআই কন্ট্রোলার তৈরি করার প্রয়োজন
আপনার নিজের এমআইডিআই কন্ট্রোলার তৈরি করতে সক্ষম হবার জন্য আপনার একটি আরডুইনো বোর্ডে যেমন ইতিমধ্যে আমরা উল্লেখ করেছি এর পাশাপাশি একাধিক টুকরো টুকরো প্রয়োজন। চালিয়ে যাওয়ার আগে, কেবল আপনাকে বলি যে সম্ভবত, ভবিষ্যতে আপনি প্রকল্পটি প্রসারিত করতে চান, আপনার আরও বেশি জিনিস প্রয়োজন, যদিও এই মুহুর্তে কয়েকটি টুকরো দিয়ে আপনার প্রচুর পরিমাণ রয়েছে।
আমাদের একটি মহিলা 5-মেরু ডিআইএন কেবল, 2 220 ওহম প্রতিরোধক, 2 মুহূর্তের সুইচ, 2 10 কে ওহম প্রতিরোধক, সংযোগ তার, একটি সার্কিট বোর্ড, এমআইডিআই কেবল এবং একটি এমআইডিআই ডিভাইস বা ইউএসবি ইন্টারফেসের প্রয়োজন হবে। কেবলমাত্র এই টুকরো দিয়ে আপনি নিজের এমআইডিআই নিয়ামক তৈরি করতে আমার পদক্ষেপগুলি অনুসরণ করে শুরু করতে পারেন।
প্রথম পদক্ষেপ

শুরুর আগে আমি আপনাকে এমন একটি ছবি রেখে যাচ্ছি যেখানে আপনি আপনার এমআইডিআই তারের পিনগুলি দেখতে পাচ্ছেন, এইভাবে আমরা পিনগুলি সঠিকভাবে সনাক্ত করতে পারি এবং বিশেষত যেখানে প্রতিটিকে অবশ্যই যুক্ত থাকতে হবে। বিস্তৃতভাবে বলতে গেলে, এই মুহুর্তে আপনাকে যা করতে হবে তা হ'ল তারের 5 টি পিনটি 220 ওহম প্রতিরোধকের সাথে সংযুক্ত করা এবং সেখান থেকে আরডুইনো ট্রান্সমিট 1-তে, 4 টি একটি 220 ওম প্রতিরোধকের কাছে পিন করুন এবং সেখান থেকে পিনের সময় আরডুইনোর 5 ভি সকেটে 2 অবশ্যই আপনার নিয়ামকের গ্রাউন্ড সংযোগের সাথে সংযুক্ত থাকতে হবে।
এই পদক্ষেপটি শেষ হয়ে গেলে, আপনার এই ফটোতে একটি বিস্তারিত চিত্র নেই যা এই লাইনের ঠিক নীচে অবস্থিত, বোতামগুলি সংযোগ করার সময় এসেছে। এই বিভাগে ধারণাটি হ'ল ডিজিটাল রিড পিনটি ব্যবহার করে (কোনও বোতাম টিপে টিপে ট্রানজিস্টর ব্যবহার করতে সক্ষম হয়ে ওঠা ভোল্টেজ পরিবর্তিত হয় তা সনাক্ত করতে সক্ষম)। এর জন্য আমাদের কেবলমাত্র একটি বোতাম ব্যবহার করতে হবে যাতে এর বাম দিকটি আমরা এটি 5V এর সাথে সংযুক্ত করি, ডান দিকটি 220 ওহম প্রতিরোধের সাথে এবং সেখান থেকে স্থল পর্যন্ত, পরিবর্তে, আমরা ডান দিকটি পিন 6-এও সংযুক্ত করি দ্বিতীয় বোতামটি একইভাবে ইনস্টল করা হবে যদিও আপনি ডায়াগ্রামে দেখতে পাবেন, পিন 6 এর পরিবর্তে আমরা এটি 7 এ সংযুক্ত করি।
হোম মিডি নিয়ন্ত্রকের জন্য ব্যবহার করার জন্য সফ্টওয়্যার
একবার আমরা সমস্ত হার্ডওয়্যার একত্রিত করা শেষ করলে, আমাদের যন্ত্রটি সংযোগ করে পরীক্ষা করার পালা। তার আগে, ডেটা প্রেরণকারী বোর্ডটিকে আমাদের কম্পিউটারের সাথে সংযোগ করার জন্য একটি USB-MIDI ইন্টারফেস এবং একটি MIDI কেবলের প্রয়োজন হবে । এটি করার জন্য, আমরা ফর্টি সেভেন এফেক্টস-এর তৈরি MIDI v4.2 লাইব্রেরিটি বেছে নিয়েছি, যা আমাদের আরডুইনোতে অবশ্যই ইনস্টল করতে হবে এবং প্রজেক্টের অন্তর্ভুক্ত করতে হবে।
কম্পিউটারের ক্ষেত্রে, আমাদের এমন একটি প্রোগ্রামের প্রয়োজন হবে যা আরডুইনো থেকে আগত সমস্ত এমআইডিআই ডেটা তদারকি করতে সক্ষম। এর জন্য আমাদের বিভিন্ন সম্ভাবনা রয়েছে যেমন এমআইডিআই মনিটর (ওএস এক্স), এমআইডিআই-ওএক্স (উইন্ডোজ) বা কেমিডিমন (লিনাক্স)
একটি ছোট পরীক্ষা করতে আমাদের কেবল আমাদের কম্পিউটারে আরডিনোকে সংযুক্ত করতে হবে এবং নিম্নলিখিত কোডটি কার্যকর করতে হবে:
#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);
}
}
}
এই কোডটি কেবল সংকলন এবং সম্পাদন করতে হবে যাতে ইউএসবি তারের সাথে সংযুক্ত থাকে, প্রোগ্রামটি আমাদের জানায় যে কোনও বোতাম টিপানো হয়েছে কিনা।
আমরা আমাদের হোমমেড এমআইডিআই নিয়ামক তৈরি করি
একবার আমরা এই পরীক্ষাগুলি কার্যকর করার পরে, এটির জন্য আমাদের নিজস্ব এমআইডিআই নিয়ন্ত্রককে একত্রিত করার সময় এসেছে, আপনাকে কেবল নিম্নলিখিত কোডটি সংকলন করতে হবে:
#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);
}
}
}
বিশদ হিসাবে, আপনাকে বলুন যে আপনি এই মুহুর্তে MIDI আউটপুট দিয়ে Serial.println () কমান্ডটি ব্যবহার করতে পারবেন না, আপনি যদি কম্পিউটারে কোনও ধরণের বার্তা দেখাতে চান তবে কেবল পরিবর্তন করুন:
midiOut.sendControlChange(42,127,1);
দ্বারা:
midiOut.sendControlChange(value, channel);
যেখানে মান এবং চ্যানেলের অবশ্যই পছন্দসই মান থাকতে হবে যা আপনি প্রদর্শন করতে চান।
অপারেশন উদাহরণ:


