Музыкальный макроязык (MML) - это язык описания музыки, используемый для упорядочивания музыки на компьютерах и в системах видеоигр .
Задний план
Ранние функции автоматического создания музыки использовались в аркадных играх, в которых использовалось много компьютерных звуков. Примером ранней популярной аркадной игры с музыкой является The Circus от Exidy Corporation в 1977 году.
Бум японских видеоигр был ознаменован в 1978 году появлением в японских игровых центрах (игровых автоматах ) Space Invaders от TAITO Corporation . [1]
Вся музыка была проприетарной ( закрытый код ). Выпуск 1978 Программируемый интервал таймера с помощью Intel был значительным. Intel 8253 генератор Режим 3 Square Wave был использован для музыки, в комплект компьютера MZ-40K (микрокомпьютера доктор ( Maikon Хакасе ,マイコン博士/まいこんはかせ) ) от SHARP Corporation , сделанные в Японии в мае 1978 г. Другой Микрокомпьютер BASIC MASTER MB-6880 (ja) BASIC Master ( BASIC Master ,ベ ー シ ッ ク マ ス タ ー) использовал автоматический эталонный музыкальный сигнал с 5-битным цифро-аналоговым преобразователем. Также важной была разработка метода генерации с использованием программного обеспечения BASIC . [2] Машина была собрана Hitachi, Ltd. и произведена в Японии в сентябре 1978 года.
MZ-40K признаки открытой архитектуры и программные источники , поэтому вид программного обеспечения с открытым исходным кодом . [3]
Версии
Классический MML
Первые команды для классического MML появились во внутренней архитектуре операционных систем SP-1002 MONITOR IOCS [4] и SP-5001 BASIC на 8-битном [5] компьютере MZ-80K . Изготовлен корпорацией SHARP в 1978 году в Японии . [6] Он включал аппаратное обеспечение Intel 8253 и ввод-вывод с отображением памяти. BASIC- заявлениями, связанными со звуком, были MUSIC, TEMPO и BEEP. [7]
Синтаксис
Здесь описывается классический MML, используемый в BASIC . « Команды MML » передаются оператору MUSIC. Ноты указаны в трехоктавном диапазоне. Песня - это последовательность монофонических одиночных тонов.
«+» (или в каком-то старом коде « ̄») указывает верхнюю октаву, «-» (или в каком-то старом коде «_») указывает нижнюю октаву. Символы «CDEFGAB» соответствуют шкале («Doremi Faso Lassi»). Полутон обозначается следующим за нотой символом «#». За названиями нот следует длина тона, обозначенная числом от 0 до 9. Точно так же R обозначает паузу, а за ним следует число от 0 до 9, обозначающее длину. Длина звука Внутреннее значение × значения TEMPO. Длина звука Demisemiquaver - 0 (внутреннее значение SP-1002 - 1) - вся нота - 9 (внутреннее значение SP-1002 - 32). Музыка воспроизводится при вызове программы Call to $ 0030 SP-1002 IOCS . [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 ТЕМПО 4 20 A $ = "E5R1E3R0D3R0E3R0E1R0D1R0-G4R1" 30 B $ = "F3R0F1R0F1R0A3R0F1R0E1R0D1R0D1R0E5R0" 40 C $ = "C3R0C1R0C1R0E3R0C1R0-B1R0C1R0-B1R0-A1R0-А1-B5R0" 50 D $ = "E1R0E1R0E1R0E1R0E1R0E1R0D1R0E1R0E1R0E1R0D1R0-A1R0-A1R0B3R1" 60 Е $ = "-A1R0-B1R0C1R0D1R0E1R0F1R0E1R0F3R1A3R1B1R0A1R0F3R0E3R0E1R0E4R0" 100 МУЗЫКА A $ + B $ + B $ 110 $ МУЗЫКА C $ + C $ + B $ 120 МУЗЫКА + E C $ + D
Современный MML
Современный MML первоначально появился в Microsoft BASIC и был распространен в начале 1970-х и 1980-х годах на японских персональных компьютерах 8-битной и 16-битной эпохи . NEC PC-6001 включены Microsoft BASIC и звуковой генератор Программируемый в 1981. MML был особенно популярен на NEC персональных компьютеров «s, таких как NEC PC-8801 . [10] С выходом ГОК (Создание музыки Kit) программным обеспечением для составления MML для воспроизведения музыки на 2001 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
представляет собой C восьмую , а также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
- За которым следует число, задает темп в ударах в минуту . На оборудовании с более чем одним звуковым каналом часто можно установить разный темп для каждого канала.
В дополнение к этому, большинство реализаций добавляют свои собственные ключевые слова и символы для системных улучшений или расширений.
SMX
Стандартная музыкальная выразительность (SMX) представляет собой вариант современного MML , предоставленную корпорацией Майкрософт в QBASIC , BASICA и GW-BASIC «s PLAY
заявлении. [10] Версия, используемая GW-BASIC, является частью современных BSD, FreeBSD , [17] NetBSD , OpenBSD и MirOS ; язык см. в динамике (4). [18]
Языки, платформы и программное обеспечение
- Ep Games «ы Z и Супер ZZT , а также с открытым исходным кодом клона под названием MegaZeux , использует очень компактный вариант MML для команды просмотра, только с одним каналом для PC Speaker
- Microsoft «s QBASIC , BASICA , и GW-BASIC Все номера оснащены
PLAY
оператор , который принимает строку аргумент в формате SMX. [19] [20] [21] Название «Музыкальный макроязык» может происходить от GW-BASIC, который предоставил возможность «воспроизводить музыку путем встраивания музыкального макроязыка в строковый тип данных». [22] Компилятор SBasic из немецкого журнала DOS Extra, созданный DMV Widuch, предлагает ту же команду PLAY, а программа BASIC из нескольких строк может быть скомпилирована в небольшой (несколько KiB) инструмент для воспроизведения любых файлов MML (часто называемых * .PLY) в командной строке.- Эрик С. Реймонд написал драйвер UNIX System V, который предлагает / dev / динамик в формате, совместимом с GW-BASIC . [23] Впоследствии он был портирован на 386BSD и представляет собой современные операционные системы BSD . [18]
- NEC PC-8801 «s BASIC диалект, N88-BASIC, используемый MML в своем
PLAY
заявлении, как и несколько других реализаций BASIC , производимым или реализуемым на NEC . [10] [24]- Композитор Chiptune Юзо Коширо создал сильно модифицированную версию. По словам Коширо, «сначала это был язык в стиле BASIC, но я изменил его, сделав его более похожим на Assembly . Я назвал его« Music Love ». Я использовал его во всех играх Bare Knuckle Games». [25]
- Для семейства компьютеров NEC PC-9801 были написаны различные утилиты MML , в том числе 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 для создания музыки для различных систем, включая Sega Master System , Sega Game Gear , Sega Mega Drive , Nintendo Game Boy и Commodore 64 . [28]
- Некоторые сотовые телефоны используют MML в качестве формата мелодии звонка . [29] RTTTL язык мелодия обладает многими характеристиками MML.
- Была определена управляющая последовательность, позволяющая терминальным программам воспроизводить музыку, закодированную в MML. Из-за этого музыку в MML иногда называют ANSI Music. [30]
- На MSX компьютерной системы, встроенный в MSX BASIC также использует MML с Плей-командой. Строки, разделенные запятыми, представляют собой отдельные голосовые каналы. Расширения музыкального оборудования, такие как MSX-Music, MSX-Audio и MSX-MIDI, расширяют команду PLAY, чтобы также FM-чипами и внешними MIDI-устройствами можно было управлять через MML.
- Музыкальная программа для карманного компьютера Sharp PLAYX - MyArchive .Nihongo -> ja: ケ ッ ト コ ン ピ タ の 子.
- Macrotune - это бесплатный редактор MML, доступный для Windows и OS X, а также предлагает общие библиотеки для разработчиков программного обеспечения / игр.
- FlopPI-Music ( заархивированная старая страница документации ) использует расширенный формат с заголовком файла с метаданными (такими как Автор, Название и т. Д.), Новой строкой, а затем по одной строке для каждого нотоносца, с поддержкой нескольких инструментов, с линейными линиями. Он предназначен для вывода до восьми 3,5-дюймовых гибких дисков через порты Raspberry Pi GPIO. Он также содержит автономный синтаксический анализатор MML и библиотеку и утилиту экспортера MusicXML , протестированные с помощью MuseScore , что позволяет легко отлаживать файлы MML с массовым параллелизмом, распечатывать протоколы оценок (в идеале после некоторой минимальной постобработки, но значения по умолчанию обычно разборчивы) и т. Д. Floppi-Music и MMLlib - это бесплатное программное обеспечение, написанное на чистом Python.
- И Petit Computer, и SmileBASIC предлагают
BGMPLAY
функции, которые могут принимать либо предустановленную дорожку MML, либо одну, предоставленную в виде строки. - MMO под названием Mabinogi позволяет игрокам набирать MML код на в игре партитуру свитки , которые затем могут быть воспроизведены для всех близлежащих услышать , используя оборудованный инструмент. Из-за этого социального аспекта пользователи часто создавали свои собственные MML-версии популярных песен и загружали их на фан-сайты . Игра также обучает пользователей синтаксису через книги навыков, которые удваиваются как способ разблокировать более высокий предел размера при написании кода.
- Программа для Windows под названием 3MLE была создана пользователем Mabinogi для помощи в написании свитков MML. Программа работает аналогично IDE , позволяя пользователю писать, оптимизировать и тестировать код MML для различных инструментов.
Смотрите также
- Chiptune
- Электронная музыка
- HTML5 аудио
- MIDI
- Формат мобильного приложения синтетической музыки
Рекомендации
- ↑ Составлено « Томохиро Нисикадо » (西 角 友 宏 / に し か ど と も ひ ろ), работал в Pacific Industrial Co., Ltd. Все скомпилировано самостоятельно.
- ^ Файл PDF; Микрокомпьютер BASIC MASTER MB-6880 Музыкальный метод [ постоянная мертвая ссылка ] - Кунихико (圀 彦) , Нагай (長 井) ; Терухиро (輝 洋) , Такэдзава (竹 澤) ; Кадзума (一 馬) , Йошимура (吉 村) ; КаЦутоши (活 利) , Таджима (田島) (26 апреля 1979 г.). «Hitachi Hyoron, апрель 1979 г. Особенности: микрокомпьютер, метод применения» . digital.hitachihyoron . HITACHI. Архивировано из оригинала 8 мая 2015 года . Проверено 26 августа 2013 года .
- ^ Остается Apple Открытая технология Стива Возняка в 1977 году, как Apple Red book Apple Computers .
- ^ "Монитор SHARP MZ.org MZ-80K до $ 0030" . 2012-09-20. Архивировано из оригинала на 2015-09-26 . Проверено 19 сентября 2012 .
- ^ ЦП являетсялицензированным вторичным источником Z-80 Zilog.
- ^ Нобуаки Охиси (2012-09-20). "Лаборатория грызунов.Музей ШАРП, МЗ-80К Фото и каталог" .
- ^ Корпорация SHARP; nagusa_kei (1978). MZ-80 BASIC SP-5030 マ ニ ュ ア ル. Корпорация SHARP. п. 110.-Документ (валидация) Верхняя версия SP-5030 «Твиттер oec_Nibbleslab» . 2012-09-22.-
«Твиттер PlayTrueName» . 2012-09-22 . Проверено 22 сентября 2012 .«Твиттер (сумерки) PlayTrueName» . 2012-09-22 . Проверено 28 декабря 2012 .Корпорация SHARP (1978). MZ-80 BASIC マ ニ ュ ア ル. Корпорация SHARP. п. 110. - ^ "Монитор SHARP MZ.org MZ-80K до $ 0030" . 2012-09-20. Архивировано из оригинала на 2015-09-26 . Проверено 19 сентября 2012 ./ "Монитор SHARP MZ.org MZ-700 до $ 0030" . 2012-09-20. Архивировано из оригинала на 2015-05-09 . Проверено 19 сентября 2012 .
- ^ Мотои, Кенкичи. «Точка зрения глаза. Она сказала:« Ты играешь «Я плачу / Офис Авамомо» » . Архивировано из оригинала на 2013-02-18 . Проверено 20 сентября 2012 . Запрограммировано и организовано Мотои, Кенкичи. «Twitter @PlayTrueName Σ: D Так долго просыпайтесь в ◎ Программирование на звук музыки» . Проверено 22 сентября 2012 .Лицензия #AAAP (включая Creative Commons CC-BY-SA и текст лицензии GNU Free Documentation License. ).
- ^ а б в г д е Селфридж-Филд, Элеонора (1997). Помимо Midi: Справочник музыкальных кодов . Кембридж: MIT Press . ISBN 0-262-19394-9.
- ^ а б "Интернет-энциклопедия чиптюнов VORC - mck" . Архивировано из оригинала на 2008-01-03 . Проверено 13 февраля 2008 .
- ^ а б в "Интернет-энциклопедия чиптюнов VORC - MML" . Архивировано из оригинала на 2007-11-23 . Проверено 13 февраля 2008 .
- ^ "VORC: VGM или Chiptune года 2001" . 2001-12-31.
- ^ Джонсон, Иеремия . «Руководство для начинающих MCK / MML» . Архивировано из оригинала на 2007-12-14 . Проверено 13 февраля 2008 .
- ^ "Руководство IBM BASIC, второе издание (май 1982 г.), версия 1.10" (PDF) . Архивировано из оригинального (PDF) 15 июня 2015 года . Проверено 26 марта 2016 .
- ^ Документация к акустическим устройствам MirBSD
- ^ Справочная страница динамика FreeBSD (4)
- ^ a b страница руководства по динамику (4)
- ^ "Руководство по QBasic". Корпорация Майкрософт. 1991 г. Цитировать журнал требует
|journal=
( помощь ) - ^ "Руководство IBM Personal Computer BASIC". Корпорация IBM. 1982 г. Цитировать журнал требует
|journal=
( помощь ) - ^ "Руководство по BASICA". Корпорация Майкрософт. 1982 г. Цитировать журнал требует
|journal=
( помощь ) - ^ "Руководство по GW-BASIC". Корпорация Майкрософт. 1987 г. Цитировать журнал требует
|journal=
( помощь ) - ^ Раймонд, Эрик (7 мая 1995 г.). «Работы Эрика Раймонда с открытым исходным кодом» . Домашняя страница Эрика С. Раймонда . Дата обращения 3 июля 2020 .
- ^ Коширо, Юзо . "Интервью Юдзо Коширо" (Интервью). Беседовал Kikizo Games . Проверено 13 февраля 2008 .
- ^ Щепаниак, Джон. «Японские ретро-компьютеры: последний рубеж игр» . Хардкорные игры 101 . Проверено 29 марта 2011 . Перепечатано с Ретро Геймер, 2009 г.
- ^ «ツ ー ル の お 部屋» (на японском) . Проверено 1 декабря 2019 .
- ^ "VORC Internet Chiptune Encyclopedia - ppmck" . Архивировано из оригинала на 2006-10-12.
- ^ Swimm, Питер (21 декабря 2009 г.). «Обновлен XPMCK - кроссплатформенный музыкальный компилятор» . Настоящий чип до смерти . Проверено 29 декабря 2011 года .
- ^ «着 信 メ ロ デ ィ る 時代 に? ──MIDI フ ァ イ ル や WAV フ ァ イ ル 着 メ ロ に 変 換» . ITmedia, Inc. 2001-04-03 . Проверено 13 февраля 2008 .
- ^ "Музыка ANSI - Технические подробности" . Проверено 16 января 2009 .