ট্র্যাক
/
Python
Python
/
অনুশীলনী
/
স্কেল জেনারেটর
স্কেল জেনারেটর

স্কেল জেনারেটর

মধ্যম

নির্দেশনা

ক্রোম্যাটিক স্কেল

পাশ্চাত্য সঙ্গীতের স্কেলগুলো ক্রোম্যাটিক (১২-নোট) স্কেলের উপর ভিত্তি করে তৈরি। এই স্কেলটিকে নিচের পিচগুলোর একটি গ্রুপ হিসেবে প্রকাশ করা যায়:

A, A♯, B, C, C♯, D, D♯, E, F, F♯, G, G♯

একটি নির্দিষ্ট শার্প নোট (♯ চিহ্ন দিয়ে বোঝানো হয়) কে তার উপরের নোটের ফ্ল্যাট হিসেবেও প্রকাশ করা যায় (♭ চিহ্ন দিয়ে বোঝানো হয়), তাই ক্রোম্যাটিক স্কেলটি এভাবেও লেখা যায়:

A, B♭, B, C, D♭, D, E♭, E, F, G♭, G, A♭

মেজর ও মাইনর স্কেল এবং মোডগুলো এই বারো-পিচের সংগ্রহটির উপসেট। এগুলোতে সাতটি পিচ থাকে, আর এগুলোকে ডায়াটনিক স্কেল বলা হয়। এই স্কেলগুলোর নোটের সংগ্রহটি শার্প না ফ্ল্যাট দিয়ে লেখা হবে, তা টনিকের (শুরুর নোট) উপর নির্ভর করে। এখানে একটি টেবিল দেওয়া হলো, যা দেখায় কোনো নির্দিষ্ট টনিকের জন্য স্কেলের ফ্ল্যাট রূপটি ব্যবহার হবে না শার্প রূপটি:

কী সিগনেচার মেজর মাইনর
ন্যাচারাল C a
শার্প G, D, A, E, B, F♯ e, b, f♯, c♯, g♯, d♯
ফ্ল্যাট F, B♭, E♭, A♭, D♭, G♭ d, g, c, f, b♭, e♭

লক্ষ্য করুন, সঙ্গীত তত্ত্বের কমন রীতি অনুযায়ী ন্যাচারাল নোট "C" আর "a" উপরের দিকে উঠলে শার্প স্কেল অনুসরণ করে আর নিচের দিকে নামলে ফ্ল্যাট স্কেল অনুসরণ করে। এই অনুশীলনীর পরিধির মধ্যে স্কেলটি কেবল ঊর্ধ্বগামী।

কাজ

একটি টনিক দেওয়া থাকলে, সেই টনিক দিয়ে শুরু করে ১২ নোটের ক্রোম্যাটিক স্কেল তৈরি করুন।

  • বেস স্কেলটি যথাযথভাবে শিফট করুন, যাতে প্রদত্ত টনিক দিয়ে শুরু করে সব ১২টি নোট রিটার্ন করা হয়।
  • প্রদত্ত টনিকের জন্য নির্ধারণ করুন স্কেলটি ফ্ল্যাট না শার্প দিয়ে রিটার্ন করতে হবে।
  • প্রদত্ত টনিকের কেস যাই হোক না কেন, সব নোট বড় হাতের অক্ষরে রিটার্ন করুন (ফ্ল্যাটের b ছাড়া)।

ডায়াটনিক স্কেল

ডায়াটনিক স্কেল, এবং ক্রোম্যাটিক স্কেল থেকে উদ্ভূত অন্য সব স্কেল, ইন্টারভালের উপর নির্মিত। ইন্টারভাল হলো দুইটি পিচের মধ্যবর্তী ফাঁক।

সবচেয়ে সরল ইন্টারভাল হলো দুইটি পাশাপাশি নোটের মধ্যে, আর একে বলা হয় "হাফ স্টেপ", বা "মাইনর সেকেন্ড" (কখনো ছোট হাতের "m" দিয়ে লেখা হয়)। যে দুইটি নোটের মাঝে আরেকটি নোট থাকে, তাদের মধ্যবর্তী ইন্টারভালকে বলা হয় "হোল স্টেপ" বা "মেজর সেকেন্ড" (বড় হাতের "M" দিয়ে লেখা হয়)। ডায়াটনিক স্কেলগুলো পাশাপাশি নোটের মধ্যে কেবল এই দুইটি ইন্টারভাল ব্যবহার করে তৈরি হয়।

নন-ডায়াটনিক স্কেলগুলোতে অন্য ইন্টারভালও থাকতে পারে। একটি "অগমেন্টেড সেকেন্ড" ইন্টারভাল, যা "A" দিয়ে লেখা হয়, তাতে দুইটি মধ্যবর্তী নোট থাকে (যেমন A থেকে C, বা D♭ থেকে E), অথবা ένα "হোল স্টেপ" যোগ একটি "হাফ স্টেপ"। এর চেয়ে ছোট ও বড় ইন্টারভালও আছে, তবে সেগুলো এই অনুশীলনীতে আসবে না।

কাজ

একটি টনিক এবং এক সেট ইন্টারভাল দেওয়া থাকলে, টনিক দিয়ে শুরু করে নির্দিষ্ট ইন্টারভাল প্যাটার্ন অনুসরণ করে সঙ্গীতের স্কেল তৈরি করুন।

এটি ক্রোম্যাটিক স্কেল তৈরির মতোই, শুধু ১২টি নোট রিটার্ন করার বদলে N ইন্টারভালের জন্য N+1 নোট রিটার্ন করবেন। প্রথম নোটটি সবসময় প্রদত্ত টনিক। তারপর প্যাটার্নের প্রতিটি ইন্টারভালের জন্য, আগের নোট থেকে শুরু করে ইন্টারভালটি যত নোট বোঝায় সেটি এড়িয়ে গিয়ে পরের নোটটি নির্ধারণ করা হয়।

উদাহরণস্বরূপ, G দিয়ে শুরু করে সাতটি ইন্টারভাল MMmMMMm ব্যবহার করলে নিচের আটটি নোট পাওয়া যাবে:

নোট কারণ
G টনিক
A M বোঝায় G থেকে একটি হোল স্টেপ, G♯ এড়িয়ে
B M বোঝায় A থেকে একটি হোল স্টেপ, A♯ এড়িয়ে
C m বোঝায় B থেকে একটি হাফ স্টেপ, কিছুই এড়ায় না
D M বোঝায় C থেকে একটি হোল স্টেপ, C♯ এড়িয়ে
E M বোঝায় D থেকে একটি হোল স্টেপ, D♯ এড়িয়ে
F♯ M বোঝায় E থেকে একটি হোল স্টেপ, F এড়িয়ে
G m বোঝায় F♯ থেকে একটি হাফ স্টেপ, কিছুই এড়ায় না
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Python Exercism

স্কেল জেনারেটর শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Python ট্র্যাকের 17টি কনসেপ্ট146টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।