المسارات
/
Python
Python
/
التمارين
/
مولّد السلالم الموسيقية
مولّد السلالم الموسيقية

مولّد السلالم الموسيقية

متوسط

التعليمات

السلالم الكروماتية

تعتمد السلالم في الموسيقى الغربية على السلّم الكروماتي (المكوّن من 12 نغمة). ويمكن التعبير عن هذا السلّم بمجموعة النغمات التالية:

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" سلّم المرفوعات عند الصعود وسلّم المنخفضات عند الهبوط. وفي نطاق هذا التمرين، يكون السلّم صاعدًا فقط.

المهمة

بمعطى نغمة قرار، أنشئ السلّم الكروماتي المكوّن من 12 نغمة بدءًا من نغمة القرار.

  • أزِح السلّم الأساسي بالشكل المناسب بحيث تُعاد النغمات الاثنتا عشرة كلها بدءًا من نغمة القرار المعطاة.
  • بالنسبة لنغمة القرار المعطاة، حدّد ما إذا كان السلّم سيُعاد بالمنخفضات أم بالمرفوعات.
  • أعِد كل النغمات بحروف كبيرة (باستثناء حرف b في المنخفضات) بصرف النظر عن حالة الأحرف في نغمة القرار المعطاة.

السلالم الدياتونية

تُبنى السلالم الدياتونية، وكل السلالم الأخرى المشتقّة من السلّم الكروماتي، على الفواصل. والفاصلة هي المسافة بين نغمتين.

أبسط فاصلة هي تلك التي بين نغمتين متجاورتين، وتُسمّى "درجة نصفية" أو "الثانية الصغرى" (وتُكتب أحيانًا بحرف "m" صغير). أمّا الفاصلة بين نغمتين تفصل بينهما نغمة وسيطة فتُسمّى "درجة كاملة" أو "الثانية الكبرى" (وتُكتب بحرف "M" كبير). وتُبنى السلالم الدياتونية باستخدام هاتين الفاصلتين فقط بين النغمات المتجاورة.

يمكن أن تحتوي السلالم غير الدياتونية على فواصل أخرى. فالفاصلة "الثانية الزائدة"، المكتوبة "A"، تفصل بينها نغمتان وسيطتان (مثلًا، من A إلى C أو من D♭ إلى E) أو "درجة كاملة" زائد "درجة نصفية". توجد أيضًا فواصل أصغر وأكبر، لكنها لن تظهر في هذا التمرين.

المهمة

بمعطى نغمة قرار ومجموعة من الفواصل، أنشئ السلّم الموسيقي بدءًا من نغمة القرار وباتّباع نمط الفواصل المحدّد.

يشبه هذا إنشاء السلالم الكروماتية، إلّا أنك ستُعيد N+1 نغمة مقابل N فاصلة بدلًا من إعادة 12 نغمة. النغمة الأولى هي دائمًا نغمة القرار المعطاة. بعد ذلك، تُحدَّد النغمة التالية لكل فاصلة في النمط بالانطلاق من النغمة السابقة وتخطّي عدد النغمات الذي تشير إليه الفاصلة.

على سبيل المثال، عند البدء من 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 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.