Hudební makro jazyk - Music Macro Language

Music Macro Language (MML) je jazyk popisu hudby používaný při sekvenování hudby v počítačových a videoherních systémech .

Pozadí

Funkce rané automatické generace hudby byly použity v arkádových hrách, které používaly mnoho počítačových zvuků. Příkladem rané populární arkádové hry s hudbou je The Circus od společnosti Exidy Corporation v roce 1977.

Rozmach japonských videoher byl ohlášen v roce 1978 vystoupením Space Invaders od Taita v japonských herních centrech ( Amusement arcade ) .

Hudba byla celá proprietární ( uzavřený zdroj ). Vydání programovatelného intervalového časovače společností Intel v roce 1978 bylo významné. Intel 8253 Režim 3 Square Wave generátor byl použit pro hudbu, v soupravě počítači MZ-40K (mikropočítače Doctor ( Maikon hakase ,マイコン博士/まいこんはかせ) ) by SHARP Corporation , vyrobený v Japonsku v květnu 1978. Další Micro počítač BASIC MASTER a MB-6880 (ja) BASIC Master ( BASIC Master ,ベ ー シ ッ ク マ ス タ ー) používal automatický referenční signál převaděče hudby 5Bit D / A. Důležitý byl také vývoj metody generování pomocí softwaru BASIC . Stroj byl sestaven společností Hitachi, Ltd. a vyroben v Japonsku v září 1978.

MZ-40K představoval otevřenou architekturu a programové zdroje , byl tedy jakousi open source softwarem .

Verze

Klasická MML

První příkazy pro klasický MML se objevily ve vnitřní architektuře SP-1002 MONITOR IOCS a SP-5001 BASIC Operating Systems na 8bitovém počítači MZ-80K . Vyrobeno společností SHARP Corporation v roce 1978 v Japonsku . Obsahuje hardware Intel 8253 a I / O mapované paměti. Zvukově související BASIC prohlášení byla MUSIC, TEMPO a BEEP.

Syntax

Skenování stránky 110 v příručce Sharp Corporation MZ-80 BASIC Manual z roku 1987, která popisuje původ syntaxe MML.

Zde je popsán klasický MML používaný v BASICu . Do příkazu MUSIC se dodávají „ příkazy MML “. Poznámky jsou specifikovány v rozsahu tří oktáv. Píseň je sekvence mono jednotlivých tónů.

„+“ (nebo v nějakém starém kódu „ ̄“) označuje horní oktávu, „-“ (nebo v starém kódu „_“) označuje nižší oktávu. Znaky „CDEFGAB“ odpovídají měřítku („Doremi Faso Lassi“). Půltón je označen následováním poznámky se znakem '#'. Za názvy tónů následuje délka tónu, označená číslem od 0 do 9. Podobně R označuje odpočinek a je také následováno číslem od 0 do 9 označujícím délku. Délka zvuku Interní hodnota × hodnoty TEMPO. Délka tónu Demisemiquaver je 0 (SP-1002 Interní hodnota je 1) - Celá nota je 9 (SP-1002 Interní hodnota je 32). Hudba přehrávaná při volání do rutiny programu IOCS SP-1002 $ 0030 .

Délka zvuku
Hodnota Délka
0 1/32
1 1/16
2 tečkovaný 1/16
3 1/8
4 tečkovaná 1/8
5 1/4
6 tečkovaná 1/4
7 1/2
8 tečkovaný 1/2
9 1

Výkazy TEMPO n jsou 1–9, nejpomalejší 1. TEMPO 4 je podobné T = 120.

Příklad

Níže je populární japonská píseň „ tōryanse “ napsaná pomocí MML v MZ-731 SHARP S-BASIC 1Z-007B (kompatibilní s SP-5001 Upper).

 10 TEMPO 4
 20 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$

Moderní MML

Moderní MML původně objevil v Microsoft BASIC a byl obyčejný v časných 1970 a 1980 o 8-bitové a 16-bitové éry japonských osobních počítačů . NEC PC-6001 součástí Microsoft Basic a Programovatelný zvukový generátor v roce 1981. MML byl obzvláště populární na NEC s osobními počítači, jako je NEC PC-8801 . S vydáním softwaru mck (Music Creation Kit) z roku 2001 pro kompilaci MML pro přehrávání hudby na Nintendo Entertainment System se zvýšilo povědomí a používání MML. MML je v současné době populární mezi japonskými elektronickými hudebníky a hudebníky, kteří vytvářejí chiptunes jako způsob psaní hudby pro systém Nintendo Entertainment System .

Syntax

Moderní MML vznikl jako subjazyk jazyka BASIC , který byl poté obvykle zahrnut do ROM na mikropočítačích. Příkaz PLAYpomocí argumentu definuje řetězec tónů, které zvukový čip přehrával. MML kód má jednoduchý textový formát, ve kterém se písmena a číslice používají k popisu hudebních not, které se mají přehrávat. Kromě toho různé implementace MML přidávají rozšíření systému, která umožňují měnit parametry zvukové syntézy pomocí specializovaných příkazů nebo zjednodušit zadávání běžných hudebních postav, jako jsou arpeggia .

Ačkoli mnoho platforem obsahuje vlastní rozšíření a požadavky na velká a malá písmena a další drobné syntaktické funkce se v některých implementacích mírně liší, základní pravidla syntaxe, příkazy a funkce, které definují MML a jsou přítomny jako celek nebo zčásti ve všech implementacích, jsou následující:

  • cdefgab - Písmena, akterá godpovídají hudebním výškám a způsobí přehrání odpovídající noty . Ostré poznámky se vyrábějí připojením +nebo #, a ploché poznámky přidáním textu -. Délka poznámky je dána připojením číslo představující její délku jako zlomku celého poznámky  - například c8znamená C osmou poznámku , a f+2je F♯ půlová .
  • p - Pauza nebo odpočinek . Někdy také r, i když byly použity původní IBM a Microsoft BASIC p, stejně jako všechny klony (např. Reproduktorová zařízení Linux a BSD). Délka zbytku je specifikována stejným způsobem jako délka noty - například r1vytvoří celý zbytek .
  • o - Následuje číslo, ozvolí oktávu, ve které bude nástroj hrát.
  • >, < - Slouží ke zvýšení nebo snížení oktávy .
  • l - Následuje číslo, určuje výchozí délku používanou poznámkami nebo resty, které ji výslovně nedefinují. Například l8 g a b g l16 g a b gprodukuje sérii čtyř osmých not, po nichž následuje série čtyř šestnáctých not .
  • v - Následuje číslo, nastavuje hlasitost nástroje. Rozsah povolených hodnot závisí na konkrétním použitém zvukovém hardwaru. Některé implementace také umožňují použít na amplitudu každé noty obálku ADSR .
  • t - Následuje číslo, nastavuje tempo v tepech za minutu . Na hardwaru s více než jedním zvukovým kanálem je často možné nastavit každý kanál na jiné tempo.

Kromě nich většina implementací přidává svá vlastní klíčová slova a symboly pro vylepšení nebo rozšíření specifická pro systém.

Příklad

Níže je uveden moderní MML transkripce Tanku kukaček (s prázdným prostorem pro přehlednost, ačkoli někteří interpreti MML budou před hraním vyžadovat odstranění).

t104
l4
>
c16f16
a>c8<a c16f16
a>c8<a c8
b-8>c8<b-8 g c8
a8>c8<a8 f c16f16
a>c8<a c16f16
a>c8<a c8
b-8>c8<b-8 g >c8
<f2

SMX

Standardní hudební výraz (SMX) je varianta moderního MML poskytované společností Microsoft v QBasic , Basica a GW-BASIC ‚s PLAYprohlášením. Verze používaná programem GW-BASIC je součástí moderních BSD, FreeBSD , NetBSD , OpenBSD a MirOS ; jazyk viz reproduktor (4).

Jazyky, platformy a software

  • Epic Games ‚s ZZT a Super ZZT , stejně jako open-source klon s názvem MegaZeux , použijte velmi kompaktní variantu MML pro příkaz PLAY, pouze s jedním kanálem pro PC Speaker
  • Microsoft ‚s QBASIC , Basica , a GW-BASIC Všechny jsou vybaveny PLAYprohlášení, které trvá řetězec argumentu ve formátu SMX. Název „Music Macro Language“ může pocházet od společnosti GW-BASIC, která poskytla možnost „přehrávat hudbu vložením jazyka hudebního makra do datového typu řetězce“. Kompilátor SBasic z německého časopisu DOS Extra, který vytvořil DMV Widuch, nabízí stejný příkaz PLAY a několikřádkový program BASIC lze zkompilovat do malého nástroje (několik KiB) pro přehrávání libovolných souborů MML (často nazývaných * .PLY) ) uvedený na příkazovém řádku.
    • Eric S. Raymond napsal ovladač systému UNIX System V, který nabízí / dev / speaker ve formátu kompatibilním s GW-BASIC . Následně byl portován na 386BSD a představuje moderní operační systémy BSD .
  • NEC PC-8801 je BASIC dialekt, N88-BASIC, který se používá MML ve svém PLAYprohlášení, stejně jako několik dalších implementací základních vyrábí nebo prodává NEC .
    • Chiptune skladatel Yuzo Koshiro vytvořilo silně upravenou verzi. Podle Koshira „to byl zpočátku spíše jazyk ve stylu BASIC, ale upravil jsem ho tak, aby vypadal spíše jako Assembly . Nazval jsem to„ Music Love “. Použil jsem ho pro všechny hry Bare Knuckle Games.“
  • Pro rodinu počítačů NEC PC-9801 byly napsány různé nástroje MML , včetně PMD (Professional Music Driver) od herního skladatele Masahira Kajihary (nejčastěji známého jako KAJA), který pro hry jako EVE Burst Error a Grounseed používal skladatel Ryu Umemoto. , stejně jako vývojář her ZUN pro většinu svých prvních pěti her Touhou Project .
  • Obslužné programy mck, pmck a ppmck pro vytváření hudby ze systému Nintendo Entertainment System a řada dalších nástrojů pro vytváření hudby pro další hardware, jako je Bandai WonderSwan , NEC PC Engine a Sega Mega Drive .
  • Nástroj xpmck pro vytváření hudby pro různé systémy, včetně Sega Master System , Sega Game Gear , Sega Mega Drive , Nintendo Game Boy a Commodore 64 .
  • Některé mobilní telefony používají MML jako formát vyzvánění . Jazyk vyzvánění RTTTL vykazuje mnoho charakteristik MML.
  • Byla definována úniková sekvence, která umožňuje terminálovým programům přehrávat hudbu kódovanou v MML. Z tohoto důvodu se hudba v MML někdy nazývá ANSI Music.
  • Na MSX počítačový systém, vestavěný MSX BASIC také používá MML s PLAY-příkazu. Řetězce oddělené čárkou představují samostatné hlasové kanály. Hudební hardwarové expanze jako MSX-Music, MSX-Audio a MSX-MIDI rozšiřují příkaz PLAY, takže přes MML lze ovládat také FM čipy a externí MIDI zařízení.
  • Sharp kapesní počítač hudební rutina PLAYX - Můj Archiv .Nihongo -> ja:ポケットコンピュータの製品一覧.
  • Macrotune je bezplatný editor MML dostupný pro Windows a OS X a zároveň nabízí sdílené knihovny pro vývojáře softwaru / her.
  • FlopPI-Music ( archivovaná stará stránka dokumentace ) používá rozšířený formát se záhlaví souboru s metadaty (jako je autor, název atd.), Nový řádek a poté jeden řádek pro každého zaměstnance, který podporuje více nástrojů, s čárovými čarami. Je navržen tak, aby poskytoval výstup až osmi 3½ ″ disketovým jednotkám na portech GPIO Raspberry Pi. Obsahuje také samostatný analyzátor MML a knihovnu a obslužný program MusicXML pro exportéry , testované pomocí MuseScore , které umožňují snadné ladění zejména hromadně paralelních souborů MML, tisk výsledkových listů (ideálně po minimálním postprocesingu, ale výchozí hodnoty jsou obvykle čitelné) atd. - Floppi-Music a MMLlib je svobodný software napsaný v čistém Pythonu.
  • Petit Computer a SmileBASIC nabízejí BGMPLAYfunkce, které mohou převzít přednastavenou stopu MML nebo jednu jako řetězec.
  • MMO s názvem Mabinogi umožňuje hráčům psát MML kód na in-game hudby skóre svitků , které pak mohou být přehrávána pro každého v okolí, kdo se dozví pomocí vybavený přístroj. Kvůli tomuto sociálnímu aspektu si uživatelé často vytvářeli vlastní MML verze populárních písní a nahrávali je na stránky fanoušků . Tato hra také učí uživatele syntaxi prostřednictvím knih dovedností, které se zdvojnásobily jako způsob, jak při psaní kódu odemknout vyšší limit velikosti.
  • Program Windows s názvem 3MLE vytvořil uživatel Mabinogi, aby mu pomohl při psaní svitků MML. Program funguje podobně jako IDE a umožňuje uživateli psát, optimalizovat a testovat kód MML pro různé nástroje.

Viz také

Reference