لغة الماكرو الموسيقية
لغة الماكرو الموسيقية (MML) هي لغة وصف موسيقى تستخدم في تسلسل الموسيقى على أنظمة الكمبيوتر وألعاب الفيديو .
خلفية
استُخدمت وظائف توليد الموسيقى التلقائية المبكرة في ألعاب الفيديو التي تستخدم أصوات الكمبيوتر، والتي كانت تستخدم العديد من الأصوات الحاسوبية. ومن الأمثلة على إحدى ألعاب الآركيد الشعبية المبكرة التي تحتوي على موسيقى لعبة The Circus من شركة Exidy Corporation في عام 1977.
تم الإعلان عن ازدهار ألعاب الفيديو اليابانية في عام 1978 بظهور لعبة Space Invaders من إنتاج شركة Taito في مراكز الألعاب اليابانية ( صالات الألعاب الترفيهية ) . [1]
كانت الموسيقى كلها مملوكة ( مغلقة المصدر ). كان إصدار Intel للمؤقت الزمني القابل للبرمجة عام 1978 مهمًا. تم استخدام مولد Intel 8253 Mode 3 Square Wave للموسيقى، في مجموعة الكمبيوتر MZ-40K (Microcomputer Doctor ( Maikon Hakase ،マイコン博士/まいこんはかせ) ) بواسطة شركة SHARP ، صنع في اليابان في مايو 1978. كمبيوتر صغير آخر BASIC MASTER MB-6880(ja) BASIC Master ( BASIC Master ،ベ ー シ ッ ク マ ス タ) ، يستخدم إشارة مرجعية آلية لمحول الموسيقى 5 بت D/A. ومن المهم أيضًا تطوير طريقة للتوليد باستخدام برنامج BASIC . [2] تم تجميع الآلة بواسطة شركة هيتاشي وصُنعت في اليابان في سبتمبر 1978. استخدمت MZ-40K بنية مفتوحة ومصادر برمجية ، وبالتالي كانت نوعًا من البرامج مفتوحة المصدر .
الإصدارات
اللغة الإنجليزية: MML الكلاسيكية
ظهرت الأوامر الأولى للغة MML الكلاسيكية في البنية الداخلية لنظامي التشغيل SP-1002 MONITOR IOCS [3] وSP-5001 BASIC على جهاز الكمبيوتر MZ-80K 8 بت [4] . تم تصنيعها بواسطة شركة SHARP Corporation في عام 1978 في اليابان . [5] وقد تضمنت أجهزة Intel 8253 وإدخال/إخراج مُخصص للذاكرة. كانت عبارات BASIC المتعلقة بالصوت هي MUSIC وTEMPO وBEEP. [6]
بناء الجملة

يتم وصف MML الكلاسيكي كما يستخدم في BASIC هنا. يتم توفير " أوامر MML " لبيان MUSIC. يتم تحديد النوتات في نطاق ثلاثي الأوكتاف. الأغنية عبارة عن سلسلة من النغمات المفردة.
"+" (أو في بعض الرموز القديمة، " ̄") يشير إلى الأوكتاف العلوي، و"-" (أو في بعض الرموز القديمة، "_") يشير إلى الأوكتاف السفلي. تتوافق الأحرف "CDEFGAB" مع مقياس ("Doremi Faso Lassi"). يتم الإشارة إلى نصف النغمة عن طريق اتباع النغمة بحرف "#". تتبع أسماء النغمات طول النغمة، والذي يتم الإشارة إليه برقم من 0 إلى 9. وبالمثل، يشير R إلى استراحة، ويتبعه أيضًا رقم من 0 إلى 9 يشير إلى الطول. طول الصوت القيمة الداخلية × قيم الإيقاع. طول النغمة Demisemiquaver هو 0 (القيمة الداخلية SP-1002 هي 1) - النغمة الكاملة هي 9 (القيمة الداخلية SP-1002 هي 32). الموسيقى التي يتم تشغيلها على روتين برنامج Call to $0030 SP-1002 IOCS . [7]
| قيمة | طول |
|---|---|
| 0 | 1/32 |
| 1 | 1/16 |
| 2 | منقط 1/16 |
| 3 | 1/8 |
| 4 | منقط 1/8 |
| 5 | 1/4 |
| 6 | منقط 1/4 |
| 7 | 1/2 |
| 8 | منقط 1/2 |
| 9 | 1 |
البيانات TEMPO n هي 1-9، الأبطأ 1.TEMPO 4 مشابه لـ T=120.
مثال
فيما يلي الأغنية اليابانية الشهيرة " tōryanse " المكتوبة باستخدام MML في MZ-731 SHARP S-BASIC 1Z-007B (متوافق مع SP-5001 Upper). [8]
10 إيقاع 4 20 أ$ = "E5R1E3R0D3R0E3R0E1R0D1R0-G4R1" 30 ب$ = "F3R0F1R0F1R0A3R0F1R0E1R0D1R0D1R0E5R0" 40 ج$ = "C3R0C1R0C1R0E3R0C1R0-B1R0C1R0-B1R0-A1R0-A1-B5R0" 50 د$ = "E1R0E1R0E1R0E1R0E1R0E1R0D1R0E1R0E1R0E1R0D1R0-A1R0-A1R0B3R1" 60 إ$ = "-A1R0-B1R0C1R0D1R0E1R0F1R0E1R0F3R1A3R1B1R0A1R0F3R0E3R0E1R0E4R0" 100 موسيقى A$ + B$ + B$ 110 موسيقى C$ + C$ + B$ 120 موسيقى C$ + D$ + E$
اللغة الإنجليزية:MML الحديثة
ظهرت لغة MML الحديثة في الأصل في Microsoft BASIC وكانت شائعة في أوائل السبعينيات والثمانينيات على أجهزة الكمبيوتر الشخصية اليابانية في عصر 8 بت و 16 بت . تضمن جهاز NEC PC-6001 لغة Microsoft BASIC ومولد الصوت القابل للبرمجة في عام 1981. كانت لغة MML شائعة بشكل خاص على أجهزة الكمبيوتر الشخصية من NEC ، مثل NEC PC-8801 . [9] مع إصدار برنامج mck (مجموعة إنشاء الموسيقى) عام 2001 لتجميع لغة MML لتشغيل الموسيقى على نظام Nintendo Entertainment System ، [10] زاد الوعي باستخدام لغة MML. [11] تحظى لغة MML بشعبية كبيرة حاليًا بين الموسيقيين الإلكترونيين اليابانيين [9] والموسيقيين الذين يصنعون نغمات رقاقات [12] كطريقة لكتابة الموسيقى لنظام Nintendo Entertainment System .
بناء الجملة
نشأت لغة MML الحديثة كلغة فرعية من لغة BASIC ، ثم تم تضمينها عمومًا في ذاكرة القراءة فقط على أجهزة الكمبيوتر الصغيرة. PLAYتستخدم العبارة وسيطة لتحديد سلسلة من النغمات التي تعزفها شريحة الصوت. يحتوي كود MML على تنسيق نصي بسيط حيث يتم استخدام الأحرف والأرقام لوصف النوتات الموسيقية التي يجب عزفها. [9] بالإضافة إلى ذلك، تضيف العديد من تطبيقات MML امتدادات للنظام تسمح بتغيير معلمات توليف الصوت بأوامر متخصصة أو لتبسيط إدخال الأشكال الموسيقية الشائعة مثل الأربيجيوس .
على الرغم من أن العديد من المنصات تتميز بامتدادات مخصصة ومتطلبات حالة الأحرف والميزات النحوية البسيطة الأخرى تختلف قليلاً في بعض التنفيذات، فإن قواعد بناء الجملة الأساسية والأوامر والميزات التي تحدد MML والموجودة كليًا أو جزئيًا في جميع التنفيذات هي كما يلي: [9] [13]
cdefgab— الحروفaالتيgتتوافق مع النغمات الموسيقية وتتسبب في عزف النغمة المقابلة. يتم إنتاج النغمات الحادة بإضافة+أو#، والنغمات المسطحة بإضافة-. يتم تحديد طول النغمة بإضافة رقم يمثل طولها ككسر من نغمة كاملة — على سبيل المثال،c8يمثل نغمة ثمن C ، ونصف نغمة F♯ .f+2p— وقفة أو استراحة . وفي بعض الأحيان أيضًاr، على الرغم من استخدام IBM وMicrosoft BASIC الأصليp، [14] كما تفعل جميع النسخ (على سبيل المثال، أجهزة مكبرات الصوت Linux وBSD). [15] يتم تحديد طول الاستراحة بنفس الطريقة التي يتم بها تحديد طول النغمة — على سبيل المثال،r1ينتج استراحة كاملة .o— متبوعًا برقم،oيحدد الأوكتاف الذي سيتم تشغيل الآلة فيه.>,<— تستخدم لرفع أو خفض درجة واحدة .l— يتبعه رقم، يحدد الطول الافتراضي المستخدم بواسطة النوتات أو السكونات التي لا تحدد واحدة صراحةً. على سبيل المثال،l8 g a b g l16 g a b gينتج سلسلة من أربع نوتات ثمنية تليها سلسلة من أربع نوتات سادسة عشرية .v— يتبعه رقم، ويحدد مستوى صوت الآلة. ويعتمد نطاق القيم المسموح بها على الأجهزة الصوتية المحددة المستخدمة. وتسمح بعض التطبيقات أيضًا بتطبيق مغلف ADSR على سعة كل نغمة.t— يتبعه رقم، ويضبط الإيقاع بعدد النبضات في الدقيقة . وفي الأجهزة التي تحتوي على أكثر من قناة صوتية، من الممكن غالبًا ضبط كل قناة على إيقاع مختلف.
بالإضافة إلى ذلك، تضيف معظم التنفيذات كلماتها الرئيسية ورموزها الخاصة لتحسينات أو ملحقات خاصة بالنظام.
مثال
فيما يلي نسخة MML الحديثة من رقصة الوقواق (مع مساحة بيضاء من أجل الوضوح، على الرغم من أن بعض مترجمي MML سيطلبون إزالة هذه المساحة قبل التشغيل).
ت104 ل4 > ج16ف16 أ>ج8<أ ج16ف16 أ>ج8<أ ج8 ب-8>ج8<ب-8 ج8 أ8>ج8<أ8 ف ج16ف16 أ>ج8<أ ج16ف16 أ>ج8<أ ج8 ب-8>ج8<ب-8 ج >ج8 <ف2
إس إم إكس
Standard Musical eXpression (SMX) هو أحد أشكال Modern MML التي تقدمها Microsoft في QBASIC و BASICA وبيان GW-BASIC . PLAY[ 9] الإصدار المستخدم بواسطة GW-BASIC هو جزء من BSDs الحديثة و FreeBSD و [16] NetBSD و OpenBSD و MirOS ؛ راجع speaker(4) للغة. [17]
اللغات والمنصات والبرمجيات
- تستخدم ZZT و Super ZZT من Epic Games ، بالإضافة إلى النسخة المستنسخة مفتوحة المصدر المسماة MegaZeux، إصدارًا مضغوطًا للغاية من MML لأمر PLAY، مع قناة واحدة فقط لمكبر صوت الكمبيوتر الشخصي
- تتميز لغات QBASIC و BASICA و GW-BASIC من Microsoft
PLAYبجملة تأخذ وسيطة سلسلة بتنسيق SMX. [18] [19] [20] قد يكون اسم "لغة ماكرو الموسيقى" نشأ مع GW-BASIC، التي وفرت مرفقًا "لتشغيل الموسيقى عن طريق تضمين لغة ماكرو الموسيقى في نوع بيانات السلسلة." [21] يقدم مُجمِّع SBasic من مجلة DOS Extra الألمانية، الذي أنتجته DMV Widuch، نفس أمر PLAY، ويمكن تجميع برنامج BASIC مكون من بضعة أسطر في أداة صغيرة (بضعة كيلوبايت) لتشغيل أي ملفات MML (غالبًا ما تسمى *.PLY) الواردة في سطر الأوامر.- كتب إريك إس. رايموند برنامج تشغيل لنظام UNIX System V يوفر /dev/speaker بتنسيق متوافق مع GW-BASIC . [22] تم نقله لاحقًا إلى 386BSD وهو موجود في أنظمة التشغيل BSD الحديثة . [17]
- استخدمت لهجة BASIC لجهاز NEC PC-8801، N88-BASIC، لغة MML في بيانها ، كما
PLAYفعلت العديد من التطبيقات الأخرى للغة BASIC التي أنتجتها أو باعتها شركة NEC . [9] [23]- قام مؤلف Chiptune Yuzo Koshiro بإنشاء نسخة معدلة بشكل كبير. وفقًا لكوشيرو، "كانت في البداية أقرب إلى لغة BASIC، لكنني قمت بتعديلها لتصبح شيئًا أشبه بلغة Assembly . وأطلقت عليها اسم "Music Love". استخدمتها في جميع ألعاب Bare Knuckle ." [24]
- تم كتابة العديد من أدوات MML لعائلة أجهزة الكمبيوتر NEC PC-9801 ، بما في ذلك PMD (Professional Music Driver) [11] بواسطة مؤلف الألعاب Masahiro Kajihara (المعروف باسم KAJA)، [25] والذي استخدمه المؤلف Ryu Umemoto لألعاب مثل EVE Burst Error و Grounseed ، وكذلك بواسطة مطور الألعاب ZUN لمعظم ألعاب Touhou Project الخمس الأولى .
- أدوات mck وpmck وppmck لإنشاء موسيقى نظام Nintendo Entertainment ، [10] [26] وعدد من الأدوات الأخرى لإنشاء الموسيقى لأجهزة أخرى، مثل Bandai WonderSwan و NEC PC Engine و Sega Mega Drive . [11]
- أداة xpmck لإنشاء الموسيقى لأنظمة مختلفة، بما في ذلك Master System ، وGame Gear ، وMega Drive ، و Nintendo Game Boy ، و Commodore 64. [ 27]
- تستخدم بعض الهواتف الخلوية MML كتنسيق لنغمة الرنين . [28] تُظهر لغة نغمة الرنين RTTTL العديد من خصائص MML.
- تم تعريف تسلسل هروب للسماح لبرامج المحطة الطرفية بتشغيل الموسيقى المشفرة في MML. وبسبب هذا، تسمى الموسيقى في MML أحيانًا موسيقى ANSI. [29]
- في نظام كمبيوتر MSX ، يستخدم MSX BASIC المدمج أيضًا MML مع أمر PLAY. تمثل السلاسل المنفصلة بفواصل قنوات صوتية منفصلة. تعمل توسعات الأجهزة الموسيقية مثل MSX-Music وMSX-Audio وMSX-MIDI على توسيع أمر PLAY بحيث يمكن أيضًا التحكم في شرائح FM وأجهزة MIDI الخارجية من خلال MML.
- روتين موسيقى كمبيوتر Sharp Pocket PLAYX - MyArchive.Nihongo -> ja:ポケットコンピュータの製品一覧.
- Macrotune هو محرر MML مجاني متاح لنظامي التشغيل Windows وOS X كما يوفر أيضًا مكتبات مشتركة لمطوري البرامج/الألعاب.
- يستخدم FlopPI-Music (صفحة الوثائق القديمة المؤرشفة) تنسيقًا ممتدًا مع رأس ملف مع بيانات وصفية (مثل المؤلف والعنوان وما إلى ذلك)، وسطر جديد، ثم سطر واحد لكل موظف، ويدعم آلات متعددة، مع خطوط شريطية. تم تصميمه لإخراج ما يصل إلى ثمانية محركات أقراص مرنة مقاس 3½ بوصة على منافذ Raspberry Pi GPIO. كما يحتوي على محلل MML مستقل ومكتبة ومصدر MusicXML، تم اختباره مع MuseScore ، مما يسمح بتصحيح أخطاء ملفات MML المتوازية الكتلة بشكل سهل، وطباعة ورقة النتيجة (مثاليًا بعد بعض المعالجة اللاحقة البسيطة، ولكن الإعدادات الافتراضية تكون واضحة عادةً)، إلخ. - Floppi-Music وMMLlib عبارة عن برنامج مجاني مكتوب بلغة Python الخالصة.
- يقدم كل من Petit Computer وSmileBASIC
BGMPLAYوظائف يمكنها إما أخذ مسار MML محدد مسبقًا أو مسار مقدم على شكل سلسلة. - تسمح لعبة MMO تسمى Mabinogi للاعبين بكتابة رمز MML على مخطوطات النوتة الموسيقية داخل اللعبة والتي يمكن تشغيلها بعد ذلك ليتمكن كل من حولك من سماعها باستخدام أداة مجهزة . وبسبب هذا الجانب الاجتماعي، غالبًا ما يصنع المستخدمون إصدارات MML الخاصة بهم من الأغاني الشعبية ويحملونها على مواقع المعجبين . كما تعلم اللعبة المستخدمين قواعد اللغة من خلال كتب المهارات، والتي تعمل أيضًا كطريقة لفتح حد حجم أعلى عند كتابة الرمز. توفر لعبة ArcheAge MMO نفس الميزات.
- تم إنشاء برنامج Windows يسمى 3MLE بواسطة مستخدم Mabinogi للمساعدة في كتابة مخطوطات MML. يعمل البرنامج بشكل مشابه لبيئة التطوير المتكاملة ، مما يسمح للمستخدم بكتابة وتحسين واختبار كود MML لأدوات مختلفة.
انظر أيضا
مراجع
- ^ تم تجميعها بواسطة " توموهيرو نيشيكادو " (西角友宏/にしかどともひろ) وعملت في شركة Pacific Industrial Co., Ltd. وتم تجميعها كلها بمفردها.
- ^ ملف PDF؛ Micro Computer BASIC MASTER MB-6880 طريقة الموسيقى [ رابط ميت دائم ] - Kunihiko (圀彦) ، Nagai (長井) ؛ تيروهيرو (輝洋) ، تاكيزاوا (竹澤) ؛ كازوما (一馬) ، يوشيمورا (吉村) ؛ كاتسوتوشي (活利) ، تاجيما (田島) (26 أبريل 1979). "هيتاشي هيورون أبريل 1979 الميزات الخاصة: كمبيوتر صغير، طريقة التطبيق". هيتاشيهيورون . هيتاشي. مؤرشفة من الأصلي في 8 مايو 2015 . تم الاسترجاع 26 أغسطس 2013 .
- ^ "SHARP MZ.org MZ-80K monitor sub $0030". 2012-09-20. مؤرشف من الأصل في 2015-09-26 . تم الاسترجاع في 2012-09-19 .
- ^ وحدة المعالجة المركزية هي Z-80 Zilog مصدر ثانوي مرخص
- ^ نوبواكي أوهيشي (2012-09-20). "مختبر نيبلز. متحف شارب، صور وكتالوج MZ-80K".
- ^ شركة شارب؛ ناجوسا_كي (1978). MZ-80 BASIC SP-5030 (マニュアル) . شركة شارب. ص. 110.
- وثيقة (التحقق) الإصدار العلوي SP-5030 "twitter oec_Nibbleslab". 2012-09-22.-
"twitter PlayTrueName". 2012-09-22. تم الاسترجاع2012-09-22."twitter(twilog) PlayTrueName". 2012-09-22 . تم الاسترجاع 2012-12-28 . شركة شارب (1978). MZ-80 BASIC (マニュアル) . شركة شارب. ص. 110. - ^ "SHARP MZ.org MZ-80K monitor sub $0030". 2012-09-20. مؤرشف من الأصل في 2015-09-26 . تم الاسترجاع في 2012-09-19 ./ "شاشة SHARP MZ.org MZ-700 بسعر أقل من 0030". 2012-09-20. مؤرشف من الأصل في 2015-05-09 . تم الاسترجاع في 2012-09-19 .
- ^ موتوي، كينكيتشي. "وجهة نظر العين. قالت "أنت تلعب" أنا أبكي/مكتب أوامومو". مؤرشف من الأصل في 2013-02-18 . تم الاسترجاع في 2012-09-20 . تم برمجة وترتيب الأغنية بواسطة موتوي، كينكيتشي. "تويتر @PlayTrueName Σ:D『لقد مر وقت طويل منذ أن استيقظت على ◎البرمجة على صوت الموسيقى" . تم الاسترجاع في 2012-09-22 . مرخصة #AAAP(بما في ذلك Creative Commons CC-BY-SA ونص رخصة التوثيق الحرة GNU.).
- ^ abcdef Selfridge-Field, Eleanor (1997). Beyond Midi: The Handbook of Musical Codes . Cambridge: MIT Press . ISBN 0-262-19394-9.
- ^ "موسوعة VORC Internet Chiptune - mck". مؤرشف من الأصل في 2008-01-03 . تم الاسترجاع في 2008-02-13 .
- ^ abc "VORC Internet Chiptune Encyclopedia - MML". مؤرشف من الأصل في 2007-11-23 . تم الاسترجاع في 2008-02-13 .
- ^ "VORC: VGM أو Chiptune of The Year 2001". 2001-12-31.
- ^ جونسون، جيرميا . "دليل المبتدئين لـMCK/MML". مؤرشف من الأصل في 2007-12-14 . تم الاسترجاع في 2008-02-13 .
- ^ "دليل IBM BASIC، الإصدار الثاني (مايو 1982)، الإصدار 1.10" (PDF) . مؤرشف من الأصل (PDF) في 2015-06-15 . تم الاسترجاع في 2016-03-26 .
- ^ توثيق جهاز مكبر الصوت MirBSD
- ^ صفحة دليل مكبر الصوت FreeBSD(4)
- ^ صفحة دليل مكبر الصوت ab (4)
- ^ "دليل QBasic". شركة مايكروسوفت. 1991.
{{cite journal}}: تتطلب المجلة الاستشهاد بها|journal=( مساعدة ) - ^ "دليل لغة البرمجة الأساسية IBM Personal Computer BASIC". شركة IBM. 1982.
{{cite journal}}: تتطلب المجلة الاستشهاد بها|journal=( مساعدة ) - ^ "دليل BASICA". شركة مايكروسوفت. 1982.
{{cite journal}}: تتطلب المجلة الاستشهاد بها|journal=( مساعدة ) - ^ "دليل GW-BASIC". شركة مايكروسوفت. 1987.
{{cite journal}}: تتطلب المجلة الاستشهاد بها|journal=( مساعدة ) - ^ رايموند، إيريك (7 مايو 1995). "أعمال إيريك رايموند مفتوحة المصدر". الصفحة الرئيسية لإريك إس رايموند . تم الاسترجاع في 3 يوليو 2020 .
- ^ كوشيرو، يوزو . "مقابلة يوزو كوشيرو" (مقابلة). أجرتها Kikizo Games . تم الاسترجاع في 2008-02-13 .
- ^ Szczepaniak, John. "Retro Japanese Computers: Gaming's Final Frontier". Hardcore Gaming 101. تم الاسترجاع في 2011-03-29 .أعيد طبعه من مجلة Retro Gamer ، 2009
- ^ "ツ ル の お 部 屋" (باللغة اليابانية) . تم الاسترجاع 2019-12-01 .
- ^ "موسوعة VORC Internet Chiptune - ppmck". مؤرشف من الأصل في 12 أكتوبر 2006.
- ^ Swimm, Peter (21 ديسمبر 2009). "XPMCK - Cross Platform Music Compiler Kit updated". True Chip Till Death . تم الاسترجاع في 29 ديسمبر 2011 .
- ^ “着信メロディは再び自分で作る時代に?──MIDIファイルやWAVファイルを着メロに変換”. ITmedia, Inc. 2001-04-03 . تم الاسترجاع 2008-02-13 .
- ^ "ANSI Music - The Technical Details" . تم الاسترجاع في 2009-01-16 .
