Язык макросов музыки
Музыкальный макроязык (MML) — это язык описания музыки, используемый для секвенирования музыки на компьютерах и системах видеоигр .
Фон
[ редактировать ]Ранние функции автоматической генерации музыки использовались в аркадных играх , в которых использовалось множество компьютерных звуков. Примером ранней популярной аркадной игры с музыкой является The Circus от Exidy Corporation 1977 года.
Бум японских видеоигр был ознаменован в 1978 году появлением в японских игровых центрах ( аркадных автоматах ) игры Space Invaders от Taito . [1]
Вся музыка была проприетарной ( с закрытым исходным кодом ). Выпуск программируемого таймера Intel интервального в 1978 году имел большое значение. Генератор прямоугольных импульсов Intel 8253 Mode 3 использовался для музыки в комплекте компьютера MZ-40K (Microcomputer Doctor ( Maikon Hakase ). BASIC BASIC MASTER использовал 5-битный цифро-аналоговый преобразователь автоматического опорного Микрокомпьютер MB-6880(ja) Master ( BASIC Master , Basic Master ) музыкального сигнала. Также важной была разработка метода генерации с использованием программного обеспечения BASIC . [2] Машина была собрана компанией Hitachi, Ltd. и произведена в Японии в сентябре 1978 года.
МЗ-40К имел открытую архитектуру и исходные коды программ , поэтому был своего рода программным обеспечением с открытым исходным кодом . [3]
Версии
[ редактировать ]Классический ММЛ
[ редактировать ]Во внутренней архитектуре SP-1002 MONITOR IOCS появились первые команды классического MML. [4] и операционные системы SP-5001 BASIC на MZ-80K. 8-битном [5] компьютер. Сделано корпорацией SHARP в 1978 году в Японии . [6] Он включал в себя аппаратное обеспечение Intel 8253 и ввод-вывод с отображением памяти. утверждениями , связанными со звуком, Базовыми были MUSIC, TEMPO и BEEP. [7]
Синтаксис
[ редактировать ]Классический MML, используемый в BASIC, описан здесь. « Команды MML » предоставляются в операторе MUSIC. Ноты указаны в трехоктавном диапазоне. Песня – это последовательность монофонических тонов.
«+» (или в каком-то старом коде « ̄») обозначает верхнюю октаву, «-» (или в каком-то старом коде «_») указывает на нижнюю октаву. Символы «CDEFGAB» соответствуют шкале («Дореми Фасо Ласси»). Полутон обозначается символом «#» после ноты. За названиями нот следует длина тона, обозначаемая числом от 0 до 9. Аналогично, R указывает на паузу, а за ним следует число от 0 до 9, обозначающее длину.Длина звука Внутреннее значение × значения TEMPO. Длина тона Demisemiquaver равна 0 (внутреннее значение SP-1002 — 1) — целая нота — 9 (внутреннее значение SP-1002 — 32).Музыка воспроизводится при вызове программы IOCS SP-1002 $0030 . [8]
Ценить | Длина |
---|---|
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). [9]
10 TEMPO 420 A$="E5R1E3R0D3R0E3R0E1R0D1R0-G4R1"30 B$="F3R0F1R0F1R0A3R0F1R0E1R0D1R0D1R0E5R0"40 C$="C3R0C1R0C1R0E3R0C1R0-B1R0C1R0-B1R0-A1R0-A1-B5R0"50 D$="E1R0E1R0E1R0E1R0E1R0E1R0D1R0E1R0E1R0E1R0D1R0-A1R0-A1R0B3R1"60 E$="-A1R0-B1R0C1R0D1R0E1R0F1R0E1R0F3R1A3R1B1R0A1R0F3R0E3R0E1R0E4R0"100 MUSIC A$+B$+B$110 MUSIC C$+C$+B$120 MUSIC C$+D$+E$
Современный ММЛ
[ редактировать ]Современный MML первоначально появился в Microsoft BASIC и был распространен в начале 1970-х и 1980-х годов на 8-битной и 16-битной эпохи японских персональных компьютерах . В 1981 году NEC PC-6001 включал в себя Microsoft BASIC и программируемый звуковой генератор. MML был особенно популярен на персональных компьютерах NEC , таких как NEC PC-8801 . [10] С выпуском в 2001 году программного обеспечения mck (Music Creation Kit) для компиляции MML для воспроизведения музыки на Nintendo Entertainment System , [11] возросла осведомленность и использование MML. [12] MML в настоящее время популярен среди японских электронных музыкантов. [10] и музыканты, создающие чиптюны [13] как способ написания музыки для Nintendo Entertainment System .
Синтаксис
[ редактировать ]Современный MML возник как подъязык BASIC , который затем обычно включался в ПЗУ микрокомпьютеров. А PLAY
Оператор использует аргумент для определения строки тонов, воспроизводимых звуковым чипом. Код MML имеет простой текстовый формат, в котором буквы и цифры используются для описания музыкальных нот . воспроизводимых [10] Кроме того, различные реализации MML добавляют системные расширения, позволяющие параметры синтеза звука изменять с помощью специализированных команд или упрощать ввод обычных музыкальных фигур, таких как арпеджио .
Хотя многие платформы имеют собственные расширения и требования к регистру букв , а также другие незначительные синтаксические функции незначительно различаются в некоторых реализациях, основные синтаксические правила, команды и функции, которые определяют MML и присутствуют полностью или частично во всех реализациях, заключаются в следующем: [10] [14]
cdefgab
— Буквыa
кg
соответствуют музыкальной высоте соответствующей ноты и вызывают воспроизведение . Резкие ноты создаются путем добавления+
или#
и плоские ноты, добавив-
. Длина ноты определяется путем добавления числа, представляющего ее длину как часть целой ноты , например:c8
представляет до восьмую ноту , иf+2
полунота F♯ .p
— Пауза или отдых . Иногда такжеr
, хотя оригинальные IBM и Microsoft BASIC использовалиp
, [15] как и все клоны (например, акустические устройства Linux и BSD). [16] Длина паузы задается так же, как и длина ноты, например:r1
производит полный отдых .o
— Далее следует число,o
выбирает октаву, в которой будет играть инструмент.>
,<
— Используется для повышения или понижения октавы на одну октаву .l
— За которым следует число, указывает длину по умолчанию, используемую нотами или паузами, которые не определяют ее явно. Например,l8 g a b g l16 g a b g
производит серию из четырех восьмых , за которой следует серия из четырех шестнадцатых .v
— За которым следует число, задается громкость инструмента. Допустимый диапазон значений зависит от конкретного используемого звукового оборудования. Некоторые реализации также позволяют огибающую ADSR к амплитуде каждой ноты. применятьt
— За которым следует число, задает темп в ударах в минуту . На оборудовании с более чем одним звуковым каналом часто можно установить для каждого канала разный темп.
В дополнение к этому, большинство реализаций добавляют свои собственные ключевые слова и символы для специфичных для системы улучшений или расширений.
Пример
[ редактировать ]Ниже представлена транскрипция « Танца кукушек» в современном MML (с пробелами для ясности, хотя некоторые интерпретаторы MML потребуют удалить это перед воспроизведением).
t104l4>c16f16a>c8<a c16f16a>c8<a c8b-8>c8<b-8 g c8a8>c8<a8 f c16f16a>c8<a c16f16a>c8<a c8b-8>c8<b-8 g >c8<f2
SMX
[ редактировать ]Standard Musical eXpression (SMX) — это вариант Modern MML, предоставляемый Microsoft в QBASIC , BASICA и GW-BASIC . PLAY
заявление. [10] Версия, используемая GW-BASIC, является частью современной BSD, FreeBSD . [17] NetBSD , OpenBSD и MirOS ; см. спикер(4) для языка. [18]
Языки, платформы и программное обеспечение
[ редактировать ]- Epic Games от ZZT и Super ZZT , а также с открытым исходным кодом клон под названием MegaZeux используют очень компактный вариант MML для команды PLAY, с только одним каналом для динамика ПК.
- Microsoft QBASIC BASICA , имеют и GW- BASIC
PLAY
оператор, который принимает строковый аргумент в формате SMX. [19] [20] [21] Название «Язык музыкальных макросов» может происходить от GW-BASIC, который предоставлял возможность «воспроизводить музыку путем встраивания музыкального макроязыка в строковый тип данных». [22] Компилятор SBasic из немецкого журнала DOS Extra, выпущенный DMV Widuch, предлагает ту же команду PLAY, а программа BASIC из нескольких строк может быть скомпилирована в небольшой (несколько КиБ) инструмент для воспроизведения любых файлов MML (часто называемых *.PLY). ), заданный в командной строке.- Эрик С. Рэймонд написал драйвер UNIX System V, который предлагает /dev/speaker в формате, совместимом с GW-BASIC . [23] Впоследствии он был портирован на 386BSD и является современной операционной системой BSD . [18]
- Диалект BASIC NEC PC-8801 , N88-BASIC, использовал MML в своем
PLAY
заявление, как и несколько других реализаций BASIC, производимых или продаваемых NEC . [10] [24]- Chiptune Композитор Юзо Косиро создал сильно модифицированную версию. По словам Коширо, «сначала это был скорее язык в стиле BASIC, но я модифицировал его, чтобы он был больше похож на ассемблер . Я назвал его «Music Love». Я использовал его во всех играх Bare Knuckle Games». [25]
- были написаны различные утилиты MML Для семейства компьютеров NEC PC-9801 , включая PMD (Professional Music Driver). [12] композитор игры Масахиро Кадзихара (наиболее известный как KAJA), [26] который использовался композитором Рю Умэмото для таких игр, как EVE Burst Error и Grounseed , а также разработчиком игр ZUN для большинства его первых пяти игр Touhou Project .
- Утилиты mck, pmck и ppmck для создания музыки для Nintendo Entertainment System . [11] [27] и ряд других инструментов для создания музыки для другого оборудования, такого как Bandai WonderSwan , NEC PC Engine и Sega Mega Drive . [12]
- Утилита xpmck для создания музыки для различных систем, включая Master System , Game Gear , Mega Drive , Nintendo Game Boy и Commodore 64 . [28]
- Некоторые сотовые телефоны используют MML в качестве формата мелодии звонка . [29] Язык рингтонов RTTTL обладает многими характеристиками MML.
- , Была определена escape-последовательность позволяющая терминальным программам воспроизводить музыку, закодированную в MML. Из-за этого музыку в MML иногда называют ANSI Music. [30]
- В компьютерной системе MSX встроенный MSX BASIC также использует MML с командой PLAY. Строки, разделенные запятыми, представляют отдельные голосовые каналы. Расширения музыкального оборудования, такие как MSX-Music, MSX-Audio и MSX-MIDI, расширяют команду PLAY, так что через MML можно управлять также FM-чипами и внешними MIDI-устройствами.
- Музыкальная программа Sharp Pocket для компьютера PLAYX - Мой Архив .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. Программа функционирует аналогично IDE , позволяя пользователю писать, оптимизировать и тестировать код MML для различных инструментов.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Составлено « Томохиро Нисикадо » ( Tomohiro Nishikado/Tomohiro Nishikado ), работавшего в Pacific Industrial Co., Ltd. Все составлено самостоятельно.
- ^ PDF-файл;Микрокомпьютер BASIC MASTER MB-6880 Музыкальный метод [ постоянная мертвая ссылка ] - Кунихико ( 圀彦 ) , Нагай ( 長井 ) ; Терухиро ( английский ) , Такезава ( английский ) ; Казума ( Смотри ) , Ёсимура ( Смотри ) ; КаЦутоши ( январь ) , Тадзима 26 апреля 1979 г. ( ). «Hitachi Hyoron, апрель 1979 г. Особенности: микрокомпьютер, метод применения » digital.hitachihyoron . ХИТАЧИ. Архивировано из оригинала 8 мая. Получено 26 августа.
- ^ Остается Apple технология Open, разработанная Стивом Возняком в 1977 году, как и Apple Red book Apple Computers .
- ^ «Сабвуфер для монитора SHARP MZ.org MZ-80K $0030» . 20 сентября 2012 г. Архивировано из оригинала 26 сентября 2015 г. Проверено 19 сентября 2012 г.
- ^ ЦП - Z-80 Zilog. лицензированный вторичный источник
- ^ Нобуаки Охиши (20 сентября 2012 г.). "Лаборатория Nibbles. Музей SHARP, Фото и каталог МЗ-80К" .
- ^ SHARP Corporation; nagusa_kei (1978). Руководство по MZ-80 BASIC SP-5030 , стр. 110. -Документ (проверка) Верхняя версия SP-5030. «Твиттер oec_Nibbleslab» . 22 сентября 2012 г. -
«Твиттер PlayTrueName» . 22 сентября 2012 г. Проверено 22 сентября 2012 г.«twitter(twilog) PlayTrueName» . 22 сентября 2012 г. Проверено 28 декабря 2012 г. Корпорация SHARP (1978 г.) Базовое руководство корпорации SHARP. - ^ «Сабвуфер для монитора SHARP MZ.org MZ-80K $0030» . 20 сентября 2012 г. Архивировано из оригинала 26 сентября 2015 г. Проверено 19 сентября 2012 г. / «SHARP MZ.org Мониторный сабвуфер MZ-700 $0030» . 20 сентября 2012 г. Архивировано из оригинала 9 мая 2015 г. Проверено 19 сентября 2012 г.
- ^ Мотои, Кенкичи. «Точка зрения. Она сказала: «Ты играешь». Я плачу / Офис Авамомо» . Архивировано из оригинала 18 февраля 2013 г. Проверено 20 сентября 2012 г. Запрограммировано и организовано Мотои, Кенкичи. «Twitter @PlayTrueName Σ:D『Так долго просыпались с◎Программированием под звуки музыки» . Проверено 22 сентября 2012 г. Лицензия #AAAP (включая лицензию Creative Commons CC-BY-SA и текст лицензии на бесплатную документацию GNU ).
- ^ Jump up to: а б с д и ж Селфридж-Филд, Элеонора (1997). За пределами миди: Справочник музыкальных кодов . Кембридж: MIT Press . ISBN 0-262-19394-9 .
- ^ Jump up to: а б «Интернет-энциклопедия Chiptune VORC — mck» . Архивировано из оригинала 3 января 2008 г. Проверено 13 февраля 2008 г.
- ^ Jump up to: а б с «Интернет-энциклопедия Chiptune VORC — MML» . Архивировано из оригинала 23 ноября 2007 г. Проверено 13 февраля 2008 г.
- ^ «VORC: VGM или Chiptune 2001 года» . 31 декабря 2001 г.
- ^ Джонсон, Джеремия . «Руководство для начинающих MCK/MML» . Архивировано из оригинала 14 декабря 2007 г. Проверено 13 февраля 2008 г.
- ^ «Руководство по IBM BASIC, второе издание (май 1982 г.), версия 1.10» (PDF) . Архивировано из оригинала (PDF) 15 июня 2015 г. Проверено 26 марта 2016 г.
- ^ Документация по устройству динамика MirBSD
- ^ Страница руководства по динамику FreeBSD (4)
- ^ Jump up to: а б страница руководства динамика(4)
- ^ «Базовое руководство по QBasic». Корпорация Майкрософт. 1991.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Руководство IBM Personal Computer BASIC». Корпорация IBM. 1982.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Руководство БАЗИКА». Корпорация Майкрософт. 1982.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Руководство GW-BASIC». Корпорация Майкрософт. 1987.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Раймонд, Эрик (7 мая 1995 г.). «Работы Эрика Рэймонда с открытым исходным кодом» . Домашняя страница Эрика С. Рэймонда . Проверено 3 июля 2020 г.
- ^ Косиро, Юзо . «Интервью Юдзо Косиро» (Интервью). Беседовал Kikizo Games . Проверено 13 февраля 2008 г.
- ^ Щепаньяк, Джон. «Японские ретро-компьютеры: последний рубеж игр» . Хардкорные игры 101 . Проверено 29 марта 2011 г. Перепечатано с Ретро-геймер , 2009
- ^ «Инструментальная комната» (на японском языке) . Проверено 1 декабря 2019 г. .
- ^ «Интернет-энциклопедия Chiptune VORC — ppmck» . Архивировано из оригинала 12 октября 2006 г.
- ^ Свимм, Питер (21 декабря 2009 г.). «XPMCK — обновлен кроссплатформенный музыкальный компилятор» . Настоящий чип до смерти . Проверено 29 декабря 2011 г.
- ^ «Пришло время снова создавать свои собственные рингтоны? Преобразование MIDI-файлов и WAV-файлов в рингтоны». г. Проверено 13 февраля 2008 .
- ^ «ANSI Music — Технические подробности» . Проверено 16 января 2009 г.