সুচিপত্র:

আরেকটি MIDI থেকে CV বক্স: 7 টি ধাপ (ছবি সহ)
আরেকটি MIDI থেকে CV বক্স: 7 টি ধাপ (ছবি সহ)

ভিডিও: আরেকটি MIDI থেকে CV বক্স: 7 টি ধাপ (ছবি সহ)

ভিডিও: আরেকটি MIDI থেকে CV বক্স: 7 টি ধাপ (ছবি সহ)
ভিডিও: কিভাবে PDF ফাইল এডিট করবেন? | How to Edit PDF File Text (Bangla Tutorial) 2024, জুলাই
Anonim
আরেকটি MIDI থেকে CV বক্স
আরেকটি MIDI থেকে CV বক্স

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

KORG MS20/10 MIDI বাস্তবায়নের জন্য সবচেয়ে সহজ সিন্থ নয়: প্রথমত, তারা অক্টো/V (প্রতি ভেক্টর প্রতি 1V) এর পরিবর্তে Hz/V নিয়ন্ত্রণ (নিয়ন্ত্রণ ভোল্টেজ এবং নোট ফ্রিকোয়েন্সি মধ্যে রৈখিক সম্পর্ক) উপর নির্ভর করে; দ্বিতীয়ত, একটি নোট ট্রিগ করার জন্য আপনাকে অবশ্যই একটি নেগেটিভ গেট সিগন্যাল পাঠাতে হবে এবং ইনপুটটি গ্রাউন্ডে (S-Trig) সংক্ষিপ্ত করতে হবে, একটি +5 V সিগন্যাল (V-trig) নয়।

আজকাল এই ধরনের যন্ত্রগুলি নিয়ন্ত্রণ করার জন্য বিভিন্ন বাণিজ্যিক সমাধান রয়েছে (যেমন Arturia Beatstep Pro, Korg SQ-1, Kenton Solo) কিন্তু আমি একজন সস্তা জারজ এবং এমনকি "শব্দ না" ডিভাইসের জন্য 100 ইউরোও অনেক বেশি:)।

এখানে আমরা তারপর: আমি আপনাকে দেখাব কিভাবে একটি কম বাজেটের MIDI থেকে CV বক্স তৈরি করতে হয় একটি প্রাক-MIDI সিন্থের পিচ, গেট, বেগ এবং একটি বহিরাগত MIDI নিয়ামক (কীবোর্ড, DAW, সিকোয়েন্সার বা যাই হোক না কেন) এর সাহায্যে স্বয়ংক্রিয়ভাবে ।

"নতুন MS20 মিনি সম্পর্কে কি?"

যেহেতু প্রায় সবাই জানে, নতুন MS20 আসলে MIDI প্রস্তুত: একটি 5 মেরু MIDI সংযোগকারী সহ এবং USB সংযোগকারী সহ IN/OUT।

"সুতরাং, যদি আমার MS20 মিনি থাকে তবে এই জিনিসটি অকেজো!"

আচ্ছা, না। MS20 মিনি শুধুমাত্র নোট অন/অফ মেসেজ চিনতে পারে এবং কীবোর্ড বেগ সংবেদনশীল নয়। MS10/20 ভিনটেজ বা মিনি কীবোর্ড দিয়ে এটি কাটিয়ে ওঠার কোন উপায় নেই, কিন্তু মিডি বক্স এবং একটি বেগ সংবেদনশীল কীবোর্ড দিয়ে আপনি সোনালি। উপরন্তু, MIDI বাক্সের সাহায্যে আপনি ফিল্টার কাটঅফ (বা অন্য কোন ভোল্টেজ নিয়ন্ত্রণযোগ্য প্যারামিটার) স্বয়ংক্রিয় করতে পারেন অথবা বেগের উপর আগত MIDI নোট দ্বারা এটিকে সংশোধন করতে পারেন। আবার, একমাত্র MIDI চ্যানেল MS20 মিনি সাড়া দেয় চ্যানেল 1 এই বক্সের সাহায্যে আপনিও এই সীমা অতিক্রম করতে পারেন।

"যদি আমার একটি অক্টোবর/ভি সিন্থ থাকে?"

সমস্যা নেই! আমি যে কোডটি লিখেছি তা অক্টোবর/ভি সিনথেসাইজারের সাথে সামঞ্জস্যপূর্ণ (পরীক্ষিত নয়, তবে আমি আত্মবিশ্বাসী যে বাক্সের বাইরে কাজ করবে;))।

ধাপ 1: !! সতর্কতার নোট - দাবিত্যাগ

আপনার যন্ত্রপাতি খুবই মূল্যবান এবং পরীক্ষা করার জন্য ব্যবহার করা উচিত নয়।

বিদ্যুতের সাথে খেলতে গিয়ে আপনার যন্ত্রপাতি মারাত্মকভাবে ক্ষতিগ্রস্ত হতে পারে বা নিজের ক্ষতি করতে পারে।

আমি এই নির্দেশে রিপোর্ট করা সফ্টওয়্যার বা স্কিম বা তথ্য বা লিঙ্কগুলির মধ্যে থেকে আপনার সরঞ্জাম/হার্ডওয়্যার বা এমনকি নিজের ক্ষতির জন্য দায়ী হতে পারি না।

তোমাকে সতর্ক করা হল!

পদক্ষেপ 2: হার্ডওয়্যার ইঞ্জিনিয়ারিং

এই ধরনের প্রকল্পগুলির সাথে কাজ করার সময় Arduino সহায়ক হয়। একটি বৃহৎ সম্প্রদায়ের অস্তিত্ব এবং খুব ভাল লাইব্রেরি যা প্রায় প্রতিটি সাধারণ কাজকে বিস্তৃত করে এটি সঠিক পছন্দ করে। এখানে বোর্ডকে এমনভাবে প্রোগ্রাম করা হবে যে এটি ইনকামিং MIDI ডেটা পড়বে এবং তারপর ড্রাইভে যথাযথ ভোল্টেজ পাঠাবে:

- পিচ, একটি পিডব্লিউএম আউটপুটকে এনালগ ভোল্টেজে রূপান্তর করে ডিজিটাল থেকে এনালগ কনভার্টার (ডিএসি) এর মাধ্যমে ভিসিও চালাতে

- একটি সহজ RC ফিল্টার দিয়ে VCA চালানোর জন্য একটি pwm আউটপুট ফিল্টার করে বেগ

- ফিল্টার কাটঅফ ফ্রিকোয়েন্সি, একটি সহজ RC ফিল্টার দিয়ে VCF চালানোর জন্য একটি pwm আউটপুট ফিল্টার করে

- গেট, সরাসরি ডিজিটাল আউট থেকে V-trig (বর্তমান ড্রেন কমাতে আউটপুট সহ 1Kohm ধারাবাহিকভাবে রাখুন) অথবা ডিজিটাল আউট থেকে সরল pnp ট্রানজিস্টর সুইচ করে দেখুন ।

Arduino সরাসরি স্থির ভোল্টেজ আউটপুট করতে সক্ষম নয়, কিন্তু বিভিন্ন সময় (PWM) সহ 0/+5 V ডাল। Theালার জন্য আমাদের ডিজিটাল টু এনালগ কনভার্টার (DAC) প্রয়োজন। RC ফিল্টার হল সবচেয়ে সহজ DAC যা আমি ভাবতে পারি। একটি RC ফিল্টার ভোল্টেজ নিয়ন্ত্রিত পরিবর্ধক এবং ফিল্টার (VCA এবং VCF) এর জন্য যথেষ্ট ভাল। আরসি ফিল্টারগুলি কাটঅফ ফ্রিকোয়েন্সি <20Hz (সর্বনিম্ন শ্রবণযোগ্য ফ্রিকোয়েন্সি) এর জন্য তৈরি করা হয়।

আমি কম ক্ষমতা নন পোলারাইজড ক্যাপাসিটর দিয়ে কিছু পরীক্ষা করেছি এবং আমি 0.1uF এর ক্ষমতা মান দিয়ে সেরা ফিট হয়েছি। একটি MS20 MKII তে ভাল পরীক্ষা করা হয়েছে।

দুর্ভাগ্যবশত, আমরা ভোল্টেজ নিয়ন্ত্রিত অসিলেটর (VCO) চালানোর জন্য একটি RC ফিল্টারের উপর নির্ভর করতে পারি না কারণ এটি যথেষ্ট সঠিক হবে না (Hz/V স্কেলে, নিচের প্রান্তে দুটি অ্যাডিসেন্ড সেমিটোন 0.02V এর চেয়ে কম; V তে /oct দুটি adiacent semitones 0.083 V এর জন্য আলাদা); আমরা এর জন্য একটি IC DAC (MPC4725) ব্যবহার করতে যাচ্ছি।

পরিচিত সীমা

ড্রাইভ ভোল্টেজ 5V (Arduino আউটপুট ভোল্টেজ) সীমাবদ্ধ, সম্পূর্ণ 0 থেকে 5V পরিসীমা বেগ জন্য আচ্ছাদিত করা হয়; cutoff অর্ধেক আচ্ছাদিত (-5V থেকে +5V); VCO পরিসীমা আংশিকভাবে আচ্ছাদিত হচ্ছে যে Hz/V এ 8 V এর ভোল্টেজ 440 Hz A4 এ পৌঁছানোর প্রয়োজন হবে। একটি 5V আউটপুট সীমা দিয়ে আমরা Hz/V তে D4 ফ্রিকোয়েন্সি পর্যন্ত অসিলেটরকে পিচ করতে পারি।

ধাপ 3: উপাদান তালিকা

উপাদান তালিকা
উপাদান তালিকা
উপাদান তালিকা
উপাদান তালিকা
উপাদান তালিকা
উপাদান তালিকা

আপনার প্রয়োজন আছে:

1 এক্স আরডুইনো ইউএনও (বা ন্যানো)

1X MPC4725 DAC বোর্ড

4X 1/8 "বা 1/4" মনো সংযোগকারী

1 এক্স MIDI সংযোগকারী

1X 6N138 অপটোকপলার

1X 1N4148 ডায়োড

1X 220 ওহম 1/4 W প্রতিরোধক

1X 470 ওহম 1/4 W প্রতিরোধক

1X 10K ওহম 1/4 W প্রতিরোধক

4X 1K ওহম 1/4 W প্রতিরোধক

2X 0.1 uF ক্যাপাসিটর

1X BC547 pnp ট্রানজিস্টর (S-trig এর ক্ষেত্রে)

1 এক্স এবিএস বক্স (কমপক্ষে 55 x 70 x 100 মিমি)

… এবং স্পষ্টতই রুটিবোর্ড বা পারফবোর্ড, সোল্ডার লোহা, সোল্ডার তার এবং তারগুলি (২ A এডব্লিউজির 2 মিটার যথেষ্ট হওয়া উচিত)।

লক্ষ্য করুন যে আমার প্রোটোটাইপের উপরের ছবিতে 100 ইউএফ ইলেক্ট্রোলিটিক ক্যাপ লাগানো আছে, কিন্তু ক্যাপাসিটি চার্জ টাইমের কারণে সেগুলি খুব ধীর। 0.1uF এর ক্যাপ্যাসিট্যান্স সঠিক পছন্দ।

আমি আমার আরডুইনোতে বিদ্যুৎ সরবরাহের জন্য একটি অতিরিক্ত সংযোগকারী ব্যবহার করেছি; অনবোর্ড মিনি ইউএসবি সংযোগকারীর মাধ্যমে সরাসরি মাইক্রোকন্ট্রোলারকে রস দেওয়া সম্ভব নয়।

ধাপ 4: সংযোগ/পরিকল্পনা

সংযোগ/পরিকল্পনা
সংযোগ/পরিকল্পনা
সংযোগ/পরিকল্পনা
সংযোগ/পরিকল্পনা
সংযোগ/পরিকল্পনা
সংযোগ/পরিকল্পনা

মিডি ইন

MIDI ইন সার্কিট সহজ এবং ভাল নেটে বর্ণিত। উদাহরণস্বরূপ Amanda Gassaei দ্বারা MIDI এবং Arduino এ এই চমৎকার নির্দেশনা নিন। আমি যাইহোক এই বিষয়ে নবম পরিকল্পিত করেছি।

লক্ষ্য করুন যে আমি MIDI IN স্কিমে একটি সুইচ যুক্ত করেছি (সুইচ 1): আরডুইনোতে একটি নতুন স্কেচ আপলোড করার সময় এটি প্রয়োজনীয় কারণ অপ্টো RX লাইনে হস্তক্ষেপ করে এমনকি আগত মিডি বার্তাগুলি ছাড়াই। আপনার স্কেচ আপলোড করার আগে আপনাকে অবশ্যই সুইচটি খুলতে হবে অথবা আইডিই নতুন স্কেচ আপলোড করতে ব্যর্থ হবে।

আপনি একটি সিরিয়াল সফ্টওয়্যার যোগাযোগ ব্যবহার করার জন্য অবশেষে স্কেচ পরিবর্তন করতে পারেন।

DAC, RC Filter, Synthesizer

DAC, RC ফিল্টার এবং Synth (পিচ, গেট এবং বেগ) এর জন্য সংযোগ উপরের ডায়াগ্রামে দেখানো হয়েছে। আমি একটি Korg MS20 প্যাচ প্যানেল রেফারেন্সের জন্য নিয়েছি, কিন্তু আমি MS10 তেও সবকিছু পরীক্ষা করেছি। VCA "প্রাথমিক লাভ" প্যাচ পয়েন্টের সাথে বেগ সিভির সরাসরি সংযোগের কোন প্রভাব নেই (আমাকে এই জিনিসটি আরও খনন করতে হবে) কিন্তু যদি আপনি এটিকে "মোট" প্যাচ পয়েন্টের সাথে সংযুক্ত করেন এবং আপনার মোট বহিরাগত পাত্রগুলি বাড়ান (MG/T. EXT), আপনি নোট বেগ একটি ফাংশন হিসাবে চমৎকার স্বর বৈচিত্র শুনতে হবে।

আমার স্কিম্যাটিক্স (এবং আমার প্রোটোটাইপও) DAC আউটপুটে একটি বর্তমান সীমাবদ্ধ প্রতিরোধক ব্যবহার করে না, তবে আপনার সার্কিটগুলিতে দীর্ঘ জীবন নিশ্চিত করার জন্য এটি স্থাপন করা সর্বদা একটি ভাল ধারণা। একটি 220 ohm প্রতিরোধক যথেষ্ট হবে।

লক্ষ্য করুন যে 100 ইউএফের উপরে স্কিম্যাটিক্সে ইলেক্ট্রোলাইটিক ক্যাপগুলি রিপোর্ট করা হয়েছে, কিন্তু ক্যাপাসিটি চার্জ টাইমের কারণে সেগুলি খুব ধীর। নন পোলারাইজড, 0.1uF ক্যাপ সঠিক পছন্দ।

গেট আউট

যদি আপনি V-Trig (ভোল্টেজ ট্রিগার) সংকেতগুলির সাথে সামঞ্জস্যপূর্ণ একটি সিন্থ ক্রম করতে যাচ্ছেন, বর্তমান ড্রেন কমাতে 1k ওহম সিরিজের প্রতিরোধক যথেষ্ট হবে; S-Trig (সুইচ ট্রিগার) সিন্থের ক্ষেত্রে, আপনি একটি সাধারণ PNP সুইচ সার্কিট ব্যবহার করতে পারেন (সংযুক্ত স্কিম দেখুন)।

ধাপ 5: সফটওয়্যার

সফটওয়্যার
সফটওয়্যার

আমি স্কেচ যতটা সম্ভব পরিষ্কার এবং "পাঠযোগ্য" রাখার চেষ্টা করেছি।

আমি একটি সাধারণ ক্যালক শীটে কাজ করেছি আমি এখানে একটি ভোল্টেজ বনাম নোট# বক্ররেখা এবং মাইক্রোকন্ট্রোলারে সরাসরি সমীকরণ ব্যবহার করতে পেয়েছি। সমীকরণটি উপরের গ্রাফে দেখানো হয়েছে। আমি একটি Arp/Korg অনুগত ভোল্টেজ বনাম নোট সম্পর্ক (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V এবং তাই) পেতে রেফারেন্স নোট হিসাবে C2 ব্যবহার করেছি।

আমি একটি ভাল টিউনিং পেতে খেলনা থেকে কিছু পরিবর্তনশীল সংজ্ঞায়িত ছিল … সঠিক মান খুঁজে পেতে আপনার সময় নিন। একটি টিউনার প্রয়োজন।

আমরা একটি টাইমার/কাউন্টারের pwm ফ্রিকোয়েন্সি বৃদ্ধি করতে যাচ্ছি আউটপুট ভোল্টেজ তরঙ্গ (কোডের লাইন হিসাবে সহজ) কমাতে।

ইনকামিং বাইটের জন্য কোডকে প্রতিক্রিয়াশীল রাখতে, কোডটি ফাংশন কলব্যাকের উপর অনেক বেশি নির্ভর করে।

স্পার্কফুনের "Adafruit_MCP4725.h" এবং ফর্টি সেভেন ইফেক্টস/ফ্রাঙ্কোয়া বেস্টের "MIDI.h" লাইব্রেরিগুলি সংকলনের জন্য আপনার প্রয়োজন! (এই ব্যক্তিদের অনেক ধন্যবাদ: তাদের প্রচেষ্টা ছাড়া এই প্রকল্পটি কখনই বাস্তবায়িত হবে না!)।

আমি অনুমান করব আপনার পিসিতে আপনার Arduino IDE প্রস্তুত আছে এবং আপনি জানেন কিভাবে আপনার Arduino বোর্ডে একটি স্কেচ লোড করতে হয়।

আমি বাস্তব জীবনে একজন কোডার নই, তাই সম্ভবত স্কেচটি আরও ভালভাবে লেখা যেতে পারে। আমি পরামর্শের জন্য উন্মুক্ত (আমি সবসময় কোডারের কোড দেখে কিছু শিখি;))

নিচের কোডে অতিরিক্ত নোট লেখা আছে। দুটি লাইব্রেরি ইনস্টল করুন, আপনার আইডিইতে সংযুক্ত কোডটি খুলুন, আপনার বোর্ডটি সংযুক্ত করুন, বোর্ডের ধরন নির্বাচন করুন এবং আপলোড করুন।

ধাপ 6: সমস্যা সমাধান

এমনকি যদি প্রকল্পটি নিম্ন স্তরের হয়, সেখানে অনেকগুলি জিনিস রয়েছে যা ভুল হতে পারে। আপনি যদি আপনার নিজের MIDI থেকে CV বক্স তৈরির চেষ্টা করার সময় সমস্যার সম্মুখীন হন, তাহলে এই পদক্ষেপগুলি অনুসরণ করুন:

1. নিশ্চিত হয়ে নিন যে Arduino সঠিকভাবে MIDI বার্তা গ্রহণ করছে

আপনার কীবোর্ড বা DAW বা Sequencer আউটপুট চ্যানেল পরীক্ষা করে MIDI বার্তাগুলি আউটপুট করছে। Arduino ডিফল্টভাবে চ্যানেল 1 শুনছে। একটি ইনকামিং নোটঅন মেসেজ পড়তে "TEST_MIDI_IN.ino" আপলোড করুন।

2. আপনার wirings দুবার চেক করুন

… বা আরও ভালো: ট্রিপল তাদের চেক করুন! এই জন্য আপনার সময় রাখুন।

3. DAC ঠিকানা এবং আউটপুট চেক করুন

আমি স্কেচে যে সেট করেছি তার চেয়ে ভিন্ন ঠিকানায় ডেটা গ্রহণের জন্য DAC সেট করা যেতে পারে। "I2C_scanner.ino" চালিয়ে ঠিকানা চেক করুন। যদি "কোন ডিভাইস পাওয়া যায় না" ত্রুটি ঘটে, আপনার DAC তারের পরীক্ষা করুন (SDA এবং SCL ইনপুট বিভিন্ন Arduino বোর্ডে ভিন্ন!)। যদি আপনার একটি অসিলোকোপ থাকে (এমনকি 15 ইউরোর ডিজিটাল অসিলোস্কোপগুলি যথেষ্ট ভাল … এবং খেলনা দিয়ে মজা!) আপনি DAC লাইব্রেরি ইনস্টলেশনের সাথে অন্তর্ভুক্ত ত্রিভুজ তরঙ্গ জেনারেটরের উদাহরণ আপলোড করে আপনার DAC এর আউটপুট পরীক্ষা করতে পারেন।

মনে রাখবেন যখন একটি অপটোকপলার আপনার আরডুইনো বোর্ডের RX ইনপুটের সাথে সংযুক্ত থাকে, তখন আপনি একটি নতুন স্কেচ আপলোড করতে পারবেন না !! RX পিনের আগে একটি সুইচ (এটি একটি সাধারণ জাম্পার হতে পারে) রাখুন।

এই পরীক্ষার স্কেচগুলির বেশিরভাগই আমার নয় বা কমপক্ষে বিদ্যমান অনলাইন সামগ্রীর উপর ভিত্তি করে।

এই জিনিসটি আমার কাছে সুরের বাইরে শোনাচ্ছে!?

এটি একটি বাস্তব সমস্যা নয়: Hz/V নিয়ন্ত্রণের জন্য প্রাপ্ত সমীকরণটি "আদর্শ"। আদর্শ আচরণ থেকে কিছু ড্রিফট +5V থেকে উঠতে পারে যা আপনি সরবরাহ করছেন 5.000V নয়, DAC থেকে এবং যন্ত্র থেকে। সমাধান করার জন্য আপনাকে অবশ্যই আপনার সিন্থ টিউন/ফাইন টিউন পোটেন্টিওমিটারে কাজ করতে হবে এবং "voilà" একটি পুরোপুরি টিউন করা MIDI নিয়ন্ত্রণ;)

ধাপ 7: দরকারী লিঙ্ক

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

প্রস্তাবিত: