সুচিপত্র:

বেসিক Arduino MIDI কন্ট্রোলার: 5 টি ধাপ
বেসিক Arduino MIDI কন্ট্রোলার: 5 টি ধাপ

ভিডিও: বেসিক Arduino MIDI কন্ট্রোলার: 5 টি ধাপ

ভিডিও: বেসিক Arduino MIDI কন্ট্রোলার: 5 টি ধাপ
ভিডিও: DIY Arduino Midi Controller for Line6 M5 2024, নভেম্বর
Anonim
বেসিক Arduino MIDI কন্ট্রোলার
বেসিক Arduino MIDI কন্ট্রোলার

ভূমিকা:

আমি Arduino এর সাথে কাজ করার জন্য নতুন কিন্তু আমি আশা করি অন্যদের শিক্ষা দিয়ে এবং মতামত পেয়ে আমার জ্ঞান প্রসারিত করব। এটি একটি খুব মৌলিক MIDI নিয়ামক যার 4 টি বোতাম এবং একটি পোটেন্টিওমিটার রয়েছে। এই প্রকল্পের রূপরেখা এইরকম দেখাচ্ছে:

1. রুটিবোর্ড তৈরি করুন

2. Arduino এ স্কেচ আপলোড করুন

3. চুলহীন MIDI এবং অভ্যন্তরীণ MIDI লুপ (loopbe1) বুঝুন

4. আপনার MIDI কে একটি DAW (Ableton) এ রুট করুন

সরবরাহ

1 x Arduino মেগা 2560

1 এক্স রুটি বোর্ড

1 এক্স ইউএসবি কেবল

1 এক্স পটেন্টিওমিটার

4 x কৌশল বোতাম

4 x 120 ওহম প্রতিরোধক

ব্রেডবোর্ডের জন্য 14 x জাম্পার কেবল

ধাপ 1: ব্রেডবোর্ড তৈরি করা

বিল্ডিং আউট দ্য ব্রেডবোর্ড
বিল্ডিং আউট দ্য ব্রেডবোর্ড
বিল্ডিং আউট দ্য ব্রেডবোর্ড
বিল্ডিং আউট দ্য ব্রেডবোর্ড

আপনার ব্রেডবোর্ডটি সংযুক্ত করুন যাতে সমস্ত উপাদান উপরের চিত্র 1 এর সাথে মেলে। প্রতিটি বাটন ইমেজ ২ এর মতো দেখতে হবে। বাটনের ইনপুটগুলি হল Arduino তে 2, 3, 4 এবং 5 এবং পোটেন্টিওমিটারের মাঝের পিনটি ANALOG ইনপুট A0 এর সাথে সংযুক্ত।

ধাপ 2: স্কেচ আপলোড করা

স্কেচ আপলোড করা হচ্ছে
স্কেচ আপলোড করা হচ্ছে

Arduino IDE তে নিচের কোডটি কপি করে পেস্ট করুন। "টুলস" এর অধীনে সঠিক বোর্ড নির্বাচন করুন এবং Arduino এ স্কেচ আপলোড করুন।

বাইট নোটন = 144; // কমান্ডবাইট নোটের উপর নোট; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5; int potPin = A0; বুলিয়ান currentState = LOW; // বর্তমান বোতাম স্টেট এর জন্য স্ট্রোজ বুলিয়ান lastState = LOW; // শেষ বোতাম স্টেট ভয়েড সেটআপের জন্য স্টোরেজ pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // এইবার আমরা পিনটিকে ইনপুট সিরিয়াল হিসাবে শুরু করব। বাইট বেগ = মানচিত্র (পটভাল, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); যদি (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, বেগ); // 127 বেগ বিলম্বের সাথে নোট 60 চালু করুন (200); // বোতাম ডিবাউন্সিং এর অপরিশোধিত রূপ} অন্যথায় (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // turn note 60 off delay (2); // বাটন ডিবাউন্সিং এর অশোধিত রূপ} lastState = currentState; currentState = digitalRead (buttonPin2); যদি (currentState == HIGH && lastState == LOW) {// যদি বোতামটি শুধু MIDImessage (নোটন, 61, বেগ) চাপানো হয়েছে; // 127 বেগ বিলম্ব (200) সহ // নোট 60 চালু করুন; debouncing} অন্যথায় যদি (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // turn note 60 off delay (2); // বাটন debouncing এর অশোধিত রূপ} lastState = currentState; currentState = digitalRead (buttonPin3); যদি (currentState == HIGH && lastState == LOW) {// যদি বোতামটি শুধু MIDImessage (নোটন, 62, বেগ) চাপানো হয়েছে; // 127 বেগ বিলম্ব (200) সহ // নোট 60 চালু করুন; // বোতামের অশোধিত রূপ debouncing} অন্যথায় যদি (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // turn note 60 off delay (2); // বাটন debouncing এর অশোধিত রূপ} lastState = currentState; currentState = digitalRead (buttonPin4); যদি (currentState == HIGH && lastState == LOW) {// যদি বোতামটি শুধু মিডিমেসেজ (নোটন, 63, বেগ) চাপানো হয়েছে; // 127 বেগ বিলম্ব (200) সহ // নোট 60 চালু করুন; debouncing} অন্যথায় যদি (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // turn note 60 off delay (2); // বাটন debouncing এর অশোধিত রূপ} lastState = currentState; } // MIDI বার্তা অকার্যকর MIDImessage পাঠান (বাইট কমান্ড, বাইট ডেটা 1, বাইট ডেটা 2) {সিরিয়াল.লেখ (কমান্ড); Serial.write (data1); Serial.write (data2); }

আমি এখনও সাধারণভাবে কোড লেখার জন্য খুব নতুন….. যাদের একটু বেশি অভিজ্ঞতা আছে তারা সম্ভবত এটি পরিষ্কার করতে পারে…

ধাপ 3: চুলহীন MIDI এবং অভ্যন্তরীণ MIDI লুপগুলি বোঝা

চুলহীন MIDI এবং অভ্যন্তরীণ MIDI লুপগুলি বোঝা
চুলহীন MIDI এবং অভ্যন্তরীণ MIDI লুপগুলি বোঝা
চুলহীন MIDI এবং অভ্যন্তরীণ MIDI লুপগুলি বোঝা
চুলহীন MIDI এবং অভ্যন্তরীণ MIDI লুপগুলি বোঝা
চুলহীন MIDI এবং অভ্যন্তরীণ MIDI লুপগুলি বোঝা
চুলহীন MIDI এবং অভ্যন্তরীণ MIDI লুপগুলি বোঝা

আরডুইনোকে হেয়ারলেস MIDI এর মতো একটি সিরিয়াল ব্রিজের মধ্য দিয়ে চালাতে হবে তারপর একটি অভ্যন্তরীণ MIDI লুপের মাধ্যমে যেমন loopbe1 (অথবা Mac এর জন্য IAC বাস)।

দ্রষ্টব্য: আপনি আরডুইনোতে একটি স্কেচ আপলোড করতে পারবেন না যখন এটি চুলহীন MIDI সিরিয়াল ব্রিজের সাথে সংযুক্ত থাকে।

হেয়ারলেস MIDI সিরিয়াল পোর্টে আপনার Arduino নির্বাচন করুন এবং MIDI আউট এ loopbe1 অথবা IAC বাস।

দ্রষ্টব্য: লুপবি 1 ব্যবহার করার সময় নি mশব্দ নেই তা নিশ্চিত করুন।

ধাপ 4: আপনার DAW এর সাথে সংযোগ স্থাপন

আপনার DAW এর সাথে সংযুক্ত হচ্ছে
আপনার DAW এর সাথে সংযুক্ত হচ্ছে

যদি আপনি হেয়ারলেস MIDI অ্যাপে সিগন্যাল পাচ্ছেন যখন আপনি ব্রেডবোর্ডে একটি বোতাম চাপবেন (লাইট জ্বলবে) আপনি একটি DAW তে MIDI ডেটা পাঠাতে সক্ষম হবেন। আমি Ableton ব্যবহার করেছি কিন্তু কোন DAW কাজ করা উচিত। নিশ্চিত করুন যে আপনার অভ্যন্তরীণ MIDI লুপ (loopbe1) আপনার DAW পছন্দগুলিতে সক্ষম হয়েছে (Ableton এ আপনি "ট্র্যাক" সক্ষম করতে চান)। পরবর্তী, উপরের ছবিতে দেখানো হিসাবে MIDI লুপ (loopbe1) এ আপনার MIDI ট্র্যাক ইনপুটগুলির একটি নির্বাচন করুন।

ধাপ 5: খেলুন

Image
Image

বোতামগুলি এখন অন্য যেকোন MIDI নিয়ামকের মতো কাজ করবে! পটেন্টিওমিটার DAW- এ পাঠানো নোটের গতি পরিবর্তন করবে। উপরের (খুব অন্ধকার …) ভিডিওটি একটি দুর্দান্ত পিয়ানো শব্দ দেখায়!

প্রস্তাবিত: