আরডুইনো দিয়ে নিজের মিডিআই নিয়ন্ত্রক তৈরি করুন

এখন MIDI

আপনি যদি কোনও সংগীত প্রেমী বা সরাসরি কোনও অপেশাদার বা পেশাদার সংগীতশিল্পী হন তবে অবশ্যই আপনার বাড়িতে আপনি বাদ্যযন্ত্রের একটি বিশাল সংগ্রহ সংগ্রহ করেছেন। এই সমস্ত মিশ্রণটি নিখুঁতভাবে তৈরি করতে, একটি পাওয়া ভাল এমআইডিআই নিয়ন্ত্রক। দুর্ভাগ্যক্রমে, এই ধরণের অবজেক্টগুলি সাধারণত বেশ ব্যয়বহুল হয় যাতে অত্যধিক সংস্থানবিহীন কোনও ব্যক্তির তার দেওয়া সমস্ত কিছুতে সহজেই অ্যাক্সেস পাওয়া যায়।

একটি এমআইডিআই নিয়ন্ত্রক কী তা আরও ভালভাবে বুঝতে, আপনাকে বলুন যে এমআইডিআই শব্দটি এসেছে বাদ্যযন্ত্র ইনস্ট্রুমেন্ট ডিজিটাল ইন্টারফেস, অর্থাৎ, এক ধরণের নিয়ামক যা বৈদ্যুতিন বাদ্যযন্ত্রকে একে অপরের সাথে যোগাযোগ করতে পারে। বাড়িতে আপনার যদি একটি বৈদ্যুতিন কীবোর্ড থাকে, উদাহরণস্বরূপ, এটির এমআইডিআই ইন্টারফেস সম্ভবত হওয়ার চেয়ে বেশি। অগ্রসর হওয়া চালিয়ে যাওয়ার আগে, এমন কিছু প্রযুক্তিগত বিশদ রয়েছে যা অন্যকে বিশ্বাস করতে পারে, এটি অবশ্যই খুব স্পষ্ট হওয়া উচিত মিডি অডিও নয়.

এই সাধারণ টিউটোরিয়ালটি দিয়ে আপনার নিজের এমআইডিআই নিয়ামক তৈরি করুন

একবার আমরা এই সম্পর্কে পরিষ্কার হয়ে গেলে, আপনার পক্ষে নিশ্চিতভাবে বুঝতে আরও সহজ হবে যে মিডিআই কেবল একটি সরল নির্দেশিকা 16 টি পর্যন্ত স্বাধীন চ্যানেল সমর্থন করতে সক্ষম সেট করে, যার অর্থ 16 টি আলাদা আলাদা ডিভাইস একে অপরের সাথে স্বাধীনভাবে যোগাযোগ করতে পারে be এই ডিভাইসগুলিকে একটি 5-পিন ডিআইএন কেবলের মাধ্যমে সংযুক্ত করতে হবে, যা মূলত একটি সংযোগকারীটির ভিতরে পাঁচটি পিনযুক্ত একটি কেবল cable বিশদ হিসাবে, 5-পিন ডিআইএন পরিবর্তে একটি ইউএসবি ব্যবহার করা বেশ সাধারণ, একটি ইউএসবি ব্যবহারের ক্ষেত্রে আমাদের অবশ্যই একটি ইউএসবি-এমআইডিআই ইন্টারফেস তৈরি করতে হবে।

আরও অ্যাডো না করে, আমি আপনাকে সেই লিঙ্কটি দিয়ে রেখে দেব যেখানে আপনি এটি পেতে পারেন অভিভাবকসংবঁধীয় ধাপে ধাপে অনেক বর্ণনামূলক চিত্র যেখানে আমরা আমাদের নিজস্ব MIDI নিয়ামক তৈরি করতে প্রয়োজনীয় সমস্ত ক্রিয়া সম্পাদন করতে পারি।

সম্পর্কিত নিবন্ধ:
আমাদের রাস্পবেরি পাইতে পাই ব্যবহারকারীর নাম এবং পাসওয়ার্ড কীভাবে পরিবর্তন করবেন

আরডুইনো দিয়ে কীভাবে আপনার নিজের এমআইডিআই নিয়ন্ত্রক তৈরি করবেন

মিডি সংযোগকারী

অনেকে এমন ব্যক্তি যাঁকে ব্যক্তিগত এবং পেশাদার উভয় কারণে বিভিন্ন কারণে প্রয়োজন হয় use সম্পূর্ণ কাস্টম MIDI নিয়ামক কারণ সম্ভবত এবং উদাহরণস্বরূপ, একজন শিল্পী হিসাবে আপনার জীবনের এক পর্যায়ে, একটি ব্যয়বহুল এমআইডিআই কন্ট্রোলার কেনা আপনার প্রত্যাশা বা চাহিদাগুলি পূরণ করতে পারে না, যখন সময় আসে, পেশাদার সংস্করণ বেছে নেওয়া উভয় আর্থিক সংস্থানেই অতিরিক্ত হতে পারে you প্রয়োজন, পাশাপাশি তারা দিতে পারে এমন বিশাল সংখ্যক বৈশিষ্ট্য।

এর কারণে, আজ আমি আপনাকে যা যা প্রয়োজন তার সবই আপনাকে দেখাতে চাই যাতে আপনি এটির নির্মাণের জন্য আপনার যা প্রয়োজন উভয়ই নির্দেশ করে নিজের নিজস্ব মিডি কন্ট্রোলার তৈরি করতে পারেন এবং আপনাকে যে সফ্টওয়্যারটি ইনস্টল করতে হবে তা অফার করতে পারেন। বিশদ হিসাবে, এই প্রকল্পের জন্য একটি আরডুইনো বোর্ডের ব্যবহার প্রয়োজনীয়, একটি নিয়ন্ত্রণকারী যা এই কাজটি সম্পাদন করতে যথেষ্ট শক্তিশালী।

কীভাবে রোবট বানাবেন
সম্পর্কিত নিবন্ধ:
কীভাবে একটি রোবট তৈরি করবেন: 3 টি ভিন্ন বিকল্প

এমআইডিআই নিয়ন্ত্রক কী?

মিদি

মূলত, একটি মিডিআই কন্ট্রোলার বিভিন্ন বাদ্যযন্ত্র যন্ত্রগুলিকে একে অপরের সাথে সংযুক্ত করার জন্য দায়বদ্ধ, বিস্তৃতভাবে বলছেন। অনেকগুলি এমন একটি ডিভাইস যা একটি মিডি ইন্টারফেস অন্তর্ভুক্ত করে যদিও, এটি অবশ্যই খুব স্পষ্ট হতে হবে যেহেতু অনেক ব্যবহারকারী যারা প্রায়শই বিভ্রান্ত হন, এমআইডিআই কোনও অডিও ফাইল নয়, তবে একটি খুব সহজ নির্দেশাবলী যা কোনও যন্ত্র বিভিন্ন নিয়ন্ত্রণ তৈরি করতে পারে বা শব্দ বিন্যাস.

এমআইডিআই এর ভিতরে দুটি ভিন্ন ধরণের আছেএকদিকে আমাদের চেঞ্জ কন্ট্রোল নামে পরিচিত যেখানে এটির নিয়ামক নম্বর এবং 0 এবং 127 এর মধ্যে একটি মান রয়েছে this এর জন্য ধন্যবাদ, বার্তা জারি করা যেতে পারে যেখানে ভলিউম বা স্বরের মতো বিভিন্ন পরামিতি পরিবর্তন করা যায়। ডিআইডিআইএস অনুসারে কোন চ্যানেল এবং বার্তাগুলি সেট করা আছে এবং কীভাবে সেগুলি পরিবর্তন করতে হবে তা বোঝানোর জন্য পৃথক পৃথক যন্ত্রগুলি যা এমআইডিআই গ্রহণ করে তাদের সাথে একটি ম্যানুয়াল নিয়ে আসা উচিত।

দ্বিতীয় স্থানে আমাদের রয়েছে প্রোগ্রাম চেঞ্জ, এমন একটি সিরিজের বার্তাগুলি যা পরিবর্তন নিয়ন্ত্রণ তৈরির চেয়ে অনেক সহজ। এই ধরণের বার্তাগুলি কোনও ডিভাইসের প্রিসেট বা প্যাচ পরিবর্তন করতে ব্যবহৃত হয়। চেঞ্জ কন্ট্রোলের মতো, আপনার যন্ত্রের সাথে প্রস্তুতকারকের অবশ্যই একটি ম্যানুয়াল অন্তর্ভুক্ত করতে হবে যা নির্দিষ্ট বার্তা দ্বারা কোন প্রিসেটগুলি পরিবর্তন করা হয়েছে তা নির্দেশ করে।

অংশগুলি আপনার নিজের বাড়িতে তৈরি এমআইডিআই কন্ট্রোলার তৈরি করার প্রয়োজন

মিডি সংযোগকারী স্কিম্যাটিক

আপনার নিজের এমআইডিআই কন্ট্রোলার তৈরি করতে সক্ষম হবার জন্য আপনার একটি আরডুইনো বোর্ডে যেমন ইতিমধ্যে আমরা উল্লেখ করেছি এর পাশাপাশি একাধিক টুকরো টুকরো প্রয়োজন। চালিয়ে যাওয়ার আগে, কেবল আপনাকে বলি যে সম্ভবত, ভবিষ্যতে আপনি প্রকল্পটি প্রসারিত করতে চান, আপনার আরও বেশি জিনিস প্রয়োজন, যদিও এই মুহুর্তে কয়েকটি টুকরো দিয়ে আপনার প্রচুর পরিমাণ রয়েছে।

আমাদের একটি মহিলা 5-মেরু ডিআইএন কেবল, 2 220 ওহম প্রতিরোধক, 2 মুহূর্তের সুইচ, 2 10 কে ওহম প্রতিরোধক, সংযোগ তার, একটি সার্কিট বোর্ড, এমআইডিআই কেবল এবং একটি এমআইডিআই ডিভাইস বা ইউএসবি ইন্টারফেসের প্রয়োজন হবে। কেবলমাত্র এই টুকরো দিয়ে আপনি নিজের এমআইডিআই নিয়ামক তৈরি করতে আমার পদক্ষেপগুলি অনুসরণ করে শুরু করতে পারেন।

প্রথম পদক্ষেপ

আরডুইনো মিডি স্কিমেটিক

শুরুর আগে আমি আপনাকে এমন একটি ছবি রেখে যাচ্ছি যেখানে আপনি আপনার এমআইডিআই তারের পিনগুলি দেখতে পাচ্ছেন, এইভাবে আমরা পিনগুলি সঠিকভাবে সনাক্ত করতে পারি এবং বিশেষত যেখানে প্রতিটিকে অবশ্যই যুক্ত থাকতে হবে। বিস্তৃতভাবে বলতে গেলে, এই মুহুর্তে আপনাকে যা করতে হবে তা হ'ল তারের 5 টি পিনটি 220 ওহম প্রতিরোধকের সাথে সংযুক্ত করা এবং সেখান থেকে আরডুইনো ট্রান্সমিট 1-তে, 4 টি একটি 220 ওম প্রতিরোধকের কাছে পিন করুন এবং সেখান থেকে পিনের সময় আরডুইনোর 5 ভি সকেটে 2 অবশ্যই আপনার নিয়ামকের গ্রাউন্ড সংযোগের সাথে সংযুক্ত থাকতে হবে।

এই পদক্ষেপটি শেষ হয়ে গেলে, আপনার এই ফটোতে একটি বিস্তারিত চিত্র নেই যা এই লাইনের ঠিক নীচে অবস্থিত, বোতামগুলি সংযোগ করার সময় এসেছে। এই বিভাগে ধারণাটি হ'ল ডিজিটাল রিড পিনটি ব্যবহার করে (কোনও বোতাম টিপে টিপে ট্রানজিস্টর ব্যবহার করতে সক্ষম হয়ে ওঠা ভোল্টেজ পরিবর্তিত হয় তা সনাক্ত করতে সক্ষম)। এর জন্য আমাদের কেবলমাত্র একটি বোতাম ব্যবহার করতে হবে যাতে এর বাম দিকটি আমরা এটি 5V এর সাথে সংযুক্ত করি, ডান দিকটি 220 ওহম প্রতিরোধের সাথে এবং সেখান থেকে স্থল পর্যন্ত, পরিবর্তে, আমরা ডান দিকটি পিন 6-এও সংযুক্ত করি দ্বিতীয় বোতামটি একইভাবে ইনস্টল করা হবে যদিও আপনি ডায়াগ্রামে দেখতে পাবেন, পিন 6 এর পরিবর্তে আমরা এটি 7 এ সংযুক্ত করি।

হোম মিডি নিয়ন্ত্রকের জন্য ব্যবহার করার জন্য সফ্টওয়্যার

একবার আমরা সমস্ত হার্ডওয়্যার শেষ করে নিলে এখন আমাদের যন্ত্র এবং পরীক্ষার সংযোগ করার সময় এসেছে। তার আগে আমাদের একটি থাকা দরকার ইউএসবি-এমআইডিআই ইন্টারফেস এবং একটি এমআইডিআই তারের বোর্ডটি যা আমাদের কম্পিউটারের সাথে ডেটা প্রেরণ করছে তা সংযুক্ত করতে। এটি অর্জনের জন্য, আমরা ফ্রিটি সেভেন ইফেক্ট থেকে লোকদের দ্বারা তৈরি এমআইডিআই ভি 4.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
}

যদি সবকিছু ঠিকঠাক হয় তবে আপনি বাটন পরীক্ষায় যেতে পারেন, যদি এই পরীক্ষাটি আপনার পক্ষে কাজ করে না তবে আপনার অবশ্যই নিশ্চিত করতে হবে যে সমস্ত সংযোগগুলি সঠিক, সার্কিটটি ঠিক পূর্ববর্তী চিত্রের মতো, সার্কিটের মতো একটি এমআইডিআই তারের সাথে একটি ইউএসবি-এমআইডিআই ইন্টারফেসের সাথে সংযুক্ত, এমআইডিআই পোর্ট কেবলগুলি সঠিকভাবে সংযুক্ত রয়েছে, এমআইডিআই কেবলটি ইউএসবি-এমআইডিআই ইন্টারফেসের ইনপুটটির সাথে সংযুক্ত, আরডুইনো বোর্ড সঠিকভাবে বৈদ্যুতিক নেটওয়ার্কের সাথে সংযুক্ত এবং এতে যথেষ্ট শক্তি রয়েছে ...

বোতামগুলি সঠিকভাবে কাজ করে তা পরীক্ষা করে

আমরা যে নতুন কার্যকারিতা এবং কোডটি হারিয়ে যেতে পারি তা দিয়ে আমাদের প্রোগ্রামটি ফিড করা চালিয়ে যাওয়ার আগে এটি এক মুহুর্তের জন্য থেমে থাকা এবং বোতামগুলি সঠিকভাবে কাজ করে তা পরীক্ষা করুন। তাদের জন্য আমাদের নীচের কোডটি লোড করতে হবে:

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);

যেখানে মান এবং চ্যানেলের অবশ্যই পছন্দসই মান থাকতে হবে যা আপনি প্রদর্শন করতে চান।

অপারেশন উদাহরণ:


4 মন্তব্য, আপনার ছেড়ে

আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়বদ্ধ: মিগুয়েল অ্যাঞ্জেল গাটান
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।

      আলফ্রেড তিনি বলেন

    আরডুইনো আপনার নিজের দ্বারা প্রকল্প গ্রহণের জন্য আপনাকে অনেক সম্ভাবনার প্রস্তাব দেয় https://www.juguetronica.com/arduino । সেরা জিনিসগুলির মধ্যে একটি হ'ল আপনি বিশেষজ্ঞ না হয়েই শুরু করতে পারেন এবং শিখতে পারেন, এভাবে নিজেকে শিক্ষিত হতে অনুপ্রাণিত করে।

      ড্যানেল রোমান তিনি বলেন

    গ্রিটিংস।

    আমি এই দুর্দান্ত টিউটোরিয়ালটি চালিয়ে যাওয়ার চেষ্টা করছি ... তবে # অন্তর্ভুক্তিগুলি সম্পূর্ণ নয় ...

    আপনি আমাকে বলতে পারেন কোনটি প্রয়োজনীয়?

    আপনাকে অনেক ধন্যবাদ।

      উলে তিনি বলেন

    হ্যালো।
    আমি জ্যাক ইনপুটগুলির সাথে বোতামগুলি প্রতিস্থাপন করে একটি পাইজয়েলেকট্রিক সিগন্যাল আসবে এমন একটি বৈদ্যুতিন ড্রাম মডিউল তৈরি করতে চাই।
    এটা কি সম্ভব হবে?

      এডুয়ার্ডো ভ্যালেনজুয়েলা তিনি বলেন

    আপনি যদি এই কোডটি অন্তর্ভুক্ত করতে পারেন দয়া করে, আমি এই প্রকল্পে আগ্রহী।