مسیرها
/
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♭

گام‌های ماژور و مینور و مدها زیرمجموعه‌هایی از این مجموعه‌ی دوازده‌نتی هستند. آن‌ها هفت نت دارند و به آن‌ها گام‌های دیاتونیک می‌گویند. مجموعه‌ی نت‌های این گام‌ها بسته به تونیک (نت شروع) با دیز یا بمل نوشته می‌شود. جدول زیر نشان می‌دهد که برای یک تونیک مشخص، از بیان بمل‌دار گام استفاده می‌شود یا از بیان دیزدار:

Key Signature Major Minor
طبیعی 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 استفاده کنیم، هشت نت زیر به‌دست می‌آید:

Note Reason
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 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.