সুচিপত্র:

Arpeggiating সিনথেসাইজার (মশা I): 6 টি ধাপ
Arpeggiating সিনথেসাইজার (মশা I): 6 টি ধাপ

ভিডিও: Arpeggiating সিনথেসাইজার (মশা I): 6 টি ধাপ

ভিডিও: Arpeggiating সিনথেসাইজার (মশা I): 6 টি ধাপ
ভিডিও: SA45 কেসিও বিক্রি করা হবে☎️01944439490 আগে কি সুন্দর দিন কাটাইতাম অসাধারণ গানের মিউজিক 2024, জুলাই
Anonim
Arpeggiating সিনথেসাইজার (মশা I)
Arpeggiating সিনথেসাইজার (মশা I)

মশা I হল একটি ছোট arpeggiating সিন্থেসাইজার যা একটি Arduino ন্যানো এবং Mozzi শব্দ সংশ্লেষণ লাইব্রেরি ব্যবহার করে। এটি বিশ-আট-ধাপের সিকোয়েন্স খেলতে পারে কিন্তু আপনি যত খুশি কাস্টম সিকোয়েন্স যোগ করতে পারেন। এটি সেট আপ করা তুলনামূলকভাবে সহজ এবং অনেক অংশের প্রয়োজন হয় না।

সরবরাহ:

  • Arduino Nano (বা যে কোন Arduino সত্যিই কাজ করা উচিত)
  • 5 ইএ পোটেন্টিওমিটার (10 কে লিনিয়ার)
  • 2 ইএ পুশ বোতাম
  • 1 ইএ এলইডি
  • 1 ইএ প্রতিরোধক (330 ওহম)
  • 2 ইএ প্রতিরোধক (1 কে)
  • 1 ইএ প্রতিরোধক (2 কে)
  • 1 ইএ ইলেক্ট্রোলাইটিক ক্যাপাসিটর (100 ইউএফ)
  • 1 ইএ সিরামিক ক্যাপাসিটর (33 এনএফ)
  • 1 এবং স্টেরিও জ্যাক
  • হুকআপ তার
  • ব্রেডবোর্ড

ধাপ 1: Arduino সেট আপ

Arduino সেট আপ করা হচ্ছে
Arduino সেট আপ করা হচ্ছে
Arduino সেট আপ করা হচ্ছে
Arduino সেট আপ করা হচ্ছে

প্রথমে, রুটিবোর্ডে ন্যানো নিয়ে আসি এবং আমাদের শক্তি সেট আপ করি:

  1. ব্রেডবোর্ডে ন্যানো রাখুন। উপরের ছবিতে দেখানো হিসাবে রাখুন। এটি রুটিবোর্ডের কেন্দ্র চ্যানেলটি ছড়িয়ে দেওয়া উচিত। আপনি এটিকে রুটিবোর্ডের এক প্রান্তে অবস্থিত করতে চাইবেন, যে দিকে ইউএসবি পোর্ট থাকবে। এইভাবে কেবলটি প্লাগ -ইন করার সময় কেবেলটি won'tুকবে না। যদি আপনি ইউনো বা মেগা এর মতো বড় Arduino ব্যবহার করেন, তাহলে আপনি অবশ্যই এটিকে রুটিবোর্ডে মাউন্ট করবেন না।
  2. আরডুইনোতে পাওয়ার রেল সংযুক্ত করুন। আপনার রুটিবোর্ডের একটি ধনাত্মক (লাল) রেলকে তারের বা জাম্পার তারের সাহায্যে Arduino এর 5V পিনের সাথে সংযুক্ত করুন। তারপর negativeণাত্মক (নীল) রেলগুলির মধ্যে একটিকে ন্যানোর জিএনডি পিনের সাথে সংযুক্ত করুন।
  3. একে অপরের সাথে পাওয়ার রেল সংযুক্ত করুন। রুটিবোর্ডের উভয় পাশে রেল বরাবর শক্তি পেতে, রুটিবোর্ডের উভয় পাশের রেলগুলিকে একে অপরের সাথে ধনাত্মক রেল থেকে অন্য দিকে ধনাত্মক রেল পর্যন্ত একটি তারের মাধ্যমে সংযুক্ত করুন। নেতিবাচক রেলগুলির সাথে এটি পুনরাবৃত্তি করুন।

ধাপ 2: নিয়ন্ত্রণ যোগ করা

নিয়ন্ত্রণ যোগ করা হচ্ছে
নিয়ন্ত্রণ যোগ করা হচ্ছে

মশা I নিয়ন্ত্রণের জন্য পাঁচটি পোটেন্টিওমিটার এবং দুটি বোতাম ব্যবহার করে।

Potentiometers:

  1. ব্রেডবোর্ডে হাঁড়ি রাখুন। পাত্রগুলি রাখুন যাতে প্রতিটি পিন তার নিজস্ব সারিতে থাকে।
  2. পাত্রগুলিকে পাওয়ার রেলের সাথে সংযুক্ত করুন। প্রতিটি পাত্রের বাম দিকের পিনটি (যদি আপনি গাঁটের দিকে তাকিয়ে থাকেন) রুটিবোর্ডের নেতিবাচক রেলগুলির সাথে সংযুক্ত করুন। প্রতিটি পাত্রের ডান পাশের পিনটি রুটিবোর্ডের একটি ইতিবাচক রেলগুলির সাথে সংযুক্ত করুন।
  3. আরডুইনোতে পাত্র সংযুক্ত করুন। প্রতিটি পাত্রের সেন্টার পিনটি আরডুইনোতে একটি এনালগ পিনের সাথে সংযুক্ত করুন। প্রথম পাত্রের সেন্টার পিনটি A0 এর সাথে, দ্বিতীয় পাত্রটি A1 এর সাথে এবং শেষ পাত্রটি A4 এর সাথে সংযুক্ত হওয়ার সাথে সংযুক্ত হয়।

পুশ বোতাম:

  1. রুটিবোর্ডে বোতাম রাখুন। দুটি পুশ বোতাম রুটিবোর্ডে রাখুন যাতে তারা কেন্দ্রের চ্যানেলটি ধরে রাখে।
  2. ইতিবাচক দিকগুলি সংযুক্ত করুন। রুটিবোর্ডের একপাশে, ধাক্কা-বোতামের পিনগুলির মধ্যে একটিকে ইতিবাচক রেলের সাথে সংযুক্ত করুন।
  3. নেতিবাচক দিকগুলি সংযুক্ত করুন। রুটিবোর্ডে 1K প্রতিরোধকগুলির মধ্যে একটি রাখুন যাতে এক প্রান্ত পুশ বোতামের অব্যবহৃত পিনের সাথে সংযুক্ত থাকে এবং প্রতিরোধকের অন্য দিকটি নেতিবাচক রেলের সাথে সংযুক্ত হয়।
  4. আরডুইনোতে বোতামটি সংযুক্ত করুন। সারিটিতে একটি তারের চালান যা বোতামটিকে নেতিবাচক রেলের সাথে D2 পিনের সাথে সংযুক্ত করে। অন্যান্য বোতামের সাথে একই কাজ করুন কিন্তু এটি D3 এর সাথে সংযুক্ত করুন।

ধাপ 3: আউটপুট যোগ করা

আউটপুট যোগ করা
আউটপুট যোগ করা

আমরা পিন 9 থেকে অডিও আউটপুট করছি এবং প্রতিটি ক্রমের প্রথম ধাপে একটি LED ফ্ল্যাশ করছি। এর জন্য কিভাবে হার্ডওয়্যার সেট আপ করবেন তা এখানে।

এলইডি

  1. ব্রেডবোর্ডে একটি ফাঁকা জায়গায় একটি এলইডি রাখুন।
  2. LED এর নেগেটিভ (সংক্ষিপ্ত) লেগটিকে নেগেটিভ রেল এর সাথে সংযুক্ত করুন।
  3. বর্তমান-সীমাবদ্ধ প্রতিরোধক রাখুন। LED এর ধনাত্মক (দীর্ঘ) পায়ে 330 ওহম প্রতিরোধকের একপাশে সংযুক্ত করুন। Arduino এর D4 পিন করতে প্রতিরোধকের অন্য দিকটি সংযুক্ত করুন।

অডিও আউটপুট

  1. আরসি নেটওয়ার্ক রাখুন। আরডুইনো থেকে আউটপুট সিগন্যাল পিন 9 থেকে আসছে কিন্তু কিছু স্পিকার হ্যান্ডেল করতে পারে তার চেয়ে সিগন্যাল কিছুটা গরম হতে পারে। এটিকে লাইন লেভেলের কাছাকাছি কিছুতে আনতে, আমি একটি আরসি নেটওয়ার্ক যুক্ত করেছি (নোট এবং ভোল্টের একটি ডিজাইনের উপর ভিত্তি করে)। ইমেজ/পরিকল্পিতভাবে দেখানো 2K রোধক সহ 33nF এবং 100uF ক্যাপাসিটারগুলি রাখুন। নিশ্চিত করুন যে ইলেক্ট্রোলাইটিক 100uF ক্যাপাসিটরটি ডান মেরুতা (পজেটিভ/লম্বা পা Arduino এ 9 পিন করতে যাচ্ছে এবং নেতিবাচক/ছোট পা জ্যাকের সাথে সংযুক্ত) এর সাথে সংযুক্ত রয়েছে।
  2. মাটিতে অডিও জ্যাকের নেতিবাচক দিকটি সংযুক্ত করুন। আপনার ব্যবহারের ধরন অনুসারে অডিও জ্যাক সংযোগগুলি কিছুটা পরিবর্তিত হবে, তবে সেগুলি সাধারণত একই রকম কাজ করে। আমাদের জ্যাকের হাতা মাটিতে সংযুক্ত করতে হবে। এটি কখনও কখনও একটি বিয়োগ চিহ্ন দ্বারা চিহ্নিত করা হয় বা "হাতা", "রিং", বা "gnd" হিসাবে লেবেলযুক্ত। যদি আপনার অডিও জ্যাকটিতে কোন লেবেল না থাকে, তাহলে আপনাকে ডেটশীটের সাথে পরামর্শ করতে হতে পারে অথবা জ্যাকটি ঘনিষ্ঠভাবে পরিদর্শন করতে হবে এবং জ্যাকের হাতা বা বাইরের রিংয়ের সাথে কোন পিনটি সংযুক্ত আছে তা আপনি নির্ধারণ করতে পারেন কিনা তা দেখুন।
  3. অডিও জ্যাকের ইতিবাচক দিকটি 100uF ক্যাপাসিটরের নেতিবাচক দিকের সাথে সংযুক্ত করুন। আমাদের অডিও সিগন্যাল এখন আরডুইনো পিন 9 থেকে আরসি নেটওয়ার্কের মাধ্যমে প্রবাহিত হয় এবং 100uF ক্যাপাসিটরের নেতিবাচক দিক থেকে বেরিয়ে আসে। আমরা এটিকে আমাদের অডিও জ্যাকের ইতিবাচক দিকের সাথে সংযুক্ত করব। এটি সাধারণত একটি প্লাস প্রতীক দ্বারা চিহ্নিত করা হয় বা "টিপ" লেবেলযুক্ত হতে পারে। আবার, যদি এটি লেবেলযুক্ত না হয়, তাহলে জ্যাকের ডগায় কোন পিনটি সংযুক্ত হবে তা বের করার জন্য আপনাকে এটি পরিদর্শন করতে হতে পারে। এছাড়াও, যদি আপনি একটি স্টিরিও জ্যাক ব্যবহার করেন, সেখানে একটি এল টিপ এবং আর টিপ সংযোগ থাকতে পারে। যেহেতু আমরা একটি মনো সংকেত আউটপুট করছি, আপনি কেবল টিপ সংযোগগুলির যেকোন একটিতে সংযোগ করতে পারেন।

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

আপনি সবকিছু সেট আপ করার পরে, সমস্ত সংযোগ সঠিক দেখতে এবং উপরের চিত্র এবং পরিকল্পিত মেলে কিনা তা দুবার পরীক্ষা করুন

ধাপ 4: কোড আপলোড করা

এখন যেহেতু হার্ডওয়্যারের সমস্ত সেটআপ, আমরা সফ্টওয়্যারটির পাশে কাজ করতে প্রস্তুত:

  1. আরডুইনো আইডিই চালু করুন। আপনার কম্পিউটারে, আরডুইনো আইডিই চালু করুন (যদি আপনার এটি না থাকে তবে আপনি এটি https://www.arduino.cc/en/software থেকে ডাউনলোড করতে পারেন)।
  2. মোজি লাইব্রেরি ডাউনলোড করুন। Mozzi লাইব্রেরি যা আমাদের Arduino কে সিনথেসাইজার হিসাবে ব্যবহার করতে দেয়। আপনার IDE এ এই লাইব্রেরিটি পেতে, মোজ্জি গিথুব পৃষ্ঠায় যান https://sensorium.github.io/Mozzi/download/। সবুজ "কোড" বোতামে ক্লিক করুন এবং ডাউনলোড জিপ নির্বাচন করুন।
  3. জিপ ফাইল থেকে মোজি লাইব্রেরি ইনস্টল করুন। Arduino IDE- এ, Sketch-> Include Library-> Add. ZIP Library- এ যান। আপনার এখন স্কেচ-> অন্তর্ভুক্ত লাইব্রেরি বিভাগের অধীনে তালিকাভুক্ত মোজি দেখতে হবে।
  4. Mosquito I Arduino কোডটি ডাউনলোড করুন। আপনি এটি আমার github সাইট https://github.com/analogsketchbook/mosquito_one থেকে পেতে পারেন। (মনে রাখবেন স্কিম্যাটিক্সগুলি সেখানেও পাওয়া যায় যদি আপনার তারের রেফারেন্সের জন্য প্রয়োজন হয়।
  5. আরডুইনোকে কম্পিউটারে সংযুক্ত করুন এবং কোডটি আপলোড করুন।

ধাপ 5: চারপাশে মেসিং

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

নিয়ন্ত্রণগুলি কী করে তা এখানে:

পাত্র:

হার: এটি নিয়ন্ত্রণ করে কত দ্রুত সিকোয়েন্সার ফিরে যায়। এটি নিচের দিকে ক্রমানুসারে আলাদা নোট চালায়। পুরোপুরি নতুন তরঙ্গাকৃতি তৈরি করতে এটিকে একসাথে নোটগুলিকে স্মিয়ার করে।

Legato: দ্বিতীয় পাত্র legato বা নোট দৈর্ঘ্য নিয়ন্ত্রণ করে। এটিকে বাম দিকে ঘুরিয়ে ছোট, স্টিক্যাটো নোট তৈরি করা হয়, এবং ডানদিকে বাঁকলে দীর্ঘ নোট তৈরি হয়।

পিচ: এটি ক্রমের জন্য বেস পিচ সেট করে। পিচ কন্ট্রোল MIDI মান নির্ধারণ করছে, তাই এটি ক্রমাগত পিচ শিফটের পরিবর্তে অর্ধেকের মধ্যে পিচ বৃদ্ধি/হ্রাস করে।

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

ফিল্টার: এই গাঁটটি লো পাস ফিল্টারের কাটঅফ ফ্রিকোয়েন্সি নিয়ন্ত্রণ করে। এটিকে বাম দিকে ঘুরানো উচ্চ ফ্রিকোয়েন্সিগুলিকে বন্ধ করে দেয় যা আরও বেশি ঝাঁকুনিযুক্ত শব্দ তৈরি করে, যখন এটি ডানদিকে ঘুরিয়ে একটি উজ্জ্বল শব্দ উৎপন্ন করে।

বোতাম:

মশার 20 টিরও বেশি সিকোয়েন্স রয়েছে যা এটি ডিফল্টভাবে খেলতে পারে। পুশ বোতামগুলি আপনাকে কোন ক্রমটি চলছে তা নির্বাচন করতে দেয়। একটি বোতাম আপনাকে সিকোয়েন্সের তালিকার উপরে নিয়ে যায় এবং অন্যটি তালিকার নিচে চলে যায়।

ধাপ 6: কাস্টমাইজেশন

কাস্টমাইজেশন
কাস্টমাইজেশন

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

বিদ্যমান ক্রমে নোট পরিবর্তন করা

সিকোয়েন্সগুলিকে নোট নামক অ্যারেতে সংরক্ষণ করা হয়। প্রতিটি নোট একটি MIDI নোট মান হিসাবে সংরক্ষণ করা হয়, তাই যদি আপনি একটি নির্দিষ্ট ক্রমে নোট পরিবর্তন করতে চান, শুধু সেই ক্রমের জন্য MIDI নোট সংখ্যা পরিবর্তন করুন। ডিফল্ট সেটআপ হল প্রতি ধাপে 8 টি ধাপ চালানো যাতে আপনি একটি ক্রমের মধ্যে 8 টি MIDI মান রাখতে পারেন (যদি আপনি বিভিন্ন ক্রমের দৈর্ঘ্য পেতে চান তবে নীচে দেখুন)।

একটি জিনিস লক্ষ্য করা যায়, পিচ নোব নোটস অ্যারেতে নির্দিষ্ট MIDI মানগুলিতে একটি নোট অফসেট যুক্ত করে। যখন গাঁটটি কেন্দ্রীভূত হয়, এটি অ্যারেতে নির্দেশিত MIDI নোটগুলি বাজায়, কিন্তু আপনি যখন পিচ নাবটি চালু করেন তখন এটি চালানো নোটগুলিতে একটি আধা-স্বন যোগ বা বিয়োগ করে।

নতুন সিকোয়েন্স যোগ করা

আপনি তালিকার শেষে একটি নতুন 8-নোট অ্যারে যুক্ত করে নোটস অ্যারেতে নতুন ক্রম যুক্ত করতে পারেন। যদি আপনি এটি করেন তবে নতুন সংখ্যার ক্রমগুলির সাথে মেলাতে আপনাকে numSequences ভেরিয়েবলের মান পরিবর্তন করতে হবে। উদাহরণস্বরূপ, NOTES অ্যারেটিতে ডিফল্টভাবে 21 টি সিকোয়েন্স আছে তাই numSequences ভেরিয়েবল 21 তে সেট করা আছে। যদি আপনি একটি নতুন ক্রম যোগ করেন, তাহলে আপনাকে numSequences ভেরিয়েবলকে 22 এ পরিবর্তন করতে হবে।

আপনি যত নতুন ক্রম যোগ করতে পারেন।

ক্রম দৈর্ঘ্য পরিবর্তন

আপনি যদি আপনার ক্রমগুলির দৈর্ঘ্য পরিবর্তন করতে চান (যদি আপনি 4-ধাপ বা 16-ধাপের ক্রম বলতে চান), আপনি এটি করতে পারেন, তবে একমাত্র সতর্কতা হল যে সমস্ত ক্রম একই দৈর্ঘ্যের হওয়া প্রয়োজন। আপনার ক্রমগুলির দৈর্ঘ্যের সাথে মেলাতে আপনাকে numNotes ভেরিয়েবল সেট করতে হবে।

অন্যান্য পরিবর্তন

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

মোজির কোডের কয়েকটি প্রধান অংশ রয়েছে যার মোটামুটি সুনির্দিষ্ট ব্যবহার রয়েছে এবং আমি সেগুলি নীচে তালিকাভুক্ত করেছি যা আপনাকে এবং তাদের কী কী জন্য ব্যবহার করা হয়েছে তার ধারণা দিতে:

  • সেটআপ () - যদি আপনি এই ফাংশনটির সাথে পরিচিত হওয়ার আগে Arduinos এর জন্য প্রোগ্রাম করেছেন এবং এটি মোজিতে একইভাবে ব্যবহৃত হয়। আমরা এটি বেশিরভাগই অসিলেটর, ফিল্টার ইত্যাদির জন্য ডিফল্ট সেটিংস সেটআপ করতে ব্যবহার করি।
  • updateControl () - এখানেই মোজি কোডের সিংহ ভাগ কাজ করছে। এখানেই আমরা পাত্র এবং বোতামের মানগুলি পড়ি, মানচিত্র তৈরি করি এবং সেই মানগুলিকে সিনথেসাইজারে খাওয়াই, এবং যেখানে সিকোয়েন্সিং করা হচ্ছে।
  • updateAudio () - এটি মোজ্জি লাইব্রেরি থেকে চূড়ান্ত আউটপুট। সাধারণত এখানে কোডটি খুব ছোট এবং দুর্বল রাখা হয় কারণ এই ফাংশনটি মোৎসি দ্বারা ঘড়ির চক্রকে সর্বাধিক করার জন্য ব্যবহার করা হচ্ছে। আপনি মশার কোডে দেখতে পাচ্ছেন, এটি কিছুটা রহস্যজনক হতে পারে কিন্তু আমরা মূলত আমাদের বিভিন্ন তরঙ্গাকৃতিগুলিকে সংমিশ্রণ/গুণমান করছি এবং তারপর একটি নির্দিষ্ট সংখ্যা পরিসরের সাথে মানানসই করার জন্য তাদের বিটশিফটিং করছি। এই ফাংশনটিকে খুব হালকা রাখা (সিরিয়াল কল বা রিডিং পিন নয়) এবং এর পরিবর্তে controlUpdate () ফাংশনে বেশিরভাগ জিনিস রাখুন। Mozzi ডকুমেন্টেশন বিস্তারিতভাবে এই বিস্তারিত।

প্রস্তাবিত: