음악 매크로 언어

Music Macro Language

MML(Music Macro Language)은 컴퓨터 및 비디오 게임 시스템의 음악 시퀀싱에 사용되는 음악 기술 언어입니다.

배경

초기의 자동 음악 생성 기능은 많은 컴퓨터 소리를 사용한 아케이드 게임에서 사용되었다.1977년 Exidy CorporationThe Circus를 예로 들 수 있다.

일본 비디오 게임의 붐은 1978년 타이토[1]스페이스 인베이더의 일본 게임 센터(오락실)에 등장하면서 예고되었다.

음악은 모두 독점적인 이었다.1978년 인텔Programmable Interval Timer 릴리즈는 큰 의미가 있었습니다.인텔 8253 Mode 3 Square Wave 제너레이터는 1978년 5월 SHARP Corporation이 만든 키트 컴퓨터 MZ-40K (Mikon Hakase, Microcomputer Doctor, Maikon Hakase, Maikon Hakase)에서 음악용으로 사용되었습니다.다른 Micro 컴퓨터의 BASIC MASTER MB-6880(ja) BASIC MASTER(BASIC MASTER, 「BASIC MASTER」)는, 5비트 D/A 컨버터의 음악 자동 참조 신호를 사용했습니다.또, BASIC 소프트웨어를 [2]사용해 생성하는 방법의 개발도 중요했습니다.이 기계는 히타치(주)의해 조립되어 1978년 9월에 일본에서 제조되었다.

MZ-40K는 오픈 아키텍처프로그램 소스를 특징으로 하여 일종의 오픈 [3]소스 소프트웨어였습니다.

버전

클래식 MML

MZ-80K 8비트[5] 컴퓨터의 SP-1002 MONITOR IOCS[4]SP-5001 BASIC 운영체제 내부 아키텍처에 클래식 MML용 첫 번째 명령어가 추가되었습니다.1978년 [6]샤프 주식회사 일본제.인텔 8253 하드웨어 및 메모리 맵 I/O가 포함되어 있습니다.사운드 관련 BASIC 스테이트먼트는 MUSIC, TEMPO 및 BEEP입니다.[7]

구문

MML 구문의 기원을 설명하는 Sharp Corporation 1987 MZ-80 BASIC Manual 110페이지의 오픈 소스 스캔.

여기에서는 BASIC에서 사용되는 클래식 MML에 대해 설명합니다.MUSIC 스테이트먼트에 「MML Commands」메모는 3옥타브 범위에서 지정됩니다.노래는 모노 싱글 톤의 연속입니다.

"+" (또는 일부 오래된 코드에서는 "delay")는 상위 옥타브를 나타내고, "-" (또는 일부 오래된 코드에서는 "delay")는 하위 옥타브를 나타냅니다."CDEFGAB" 문자는 척도("도레미 파소 라시")에 해당합니다.반음은 '#'자가 붙은 음표 뒤에 표시된다.노트 이름 뒤에 톤 길이가 이어지며 0 ~9 의 숫자가 표시됩니다.마찬가지로 R은 휴식을 나타내며, 그 뒤에 길이를 나타내는 0-9의 숫자도 계속됩니다.음장 내부값 × TEMPO 값.톤 길이 Demisemiquaver는 0(SP-1002 내부값은 1)- 전체 음은 9(SP-1002 내부값은 32)입니다.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과 유사합니다.

MZ-731 SHARP S-BASIC 1Z-007B(SP-5001 Upper Compatible)[9]의 MML을 사용한 일본 인기곡 「토리안세」를 이하에 나타냅니다.

 10 템포 4  20 A$="E5R1E3R0D3R0E3R0E3R0E1R0D1R0-G4R1"  30 B$="F3R0F1R0F0A3R0F0E1R0D1R0D0R0E5R0"  40 C$="C3R0C1R0E3R0C0R0-B1R0-B1R0-A1R0-A1R0-B5R0"  50 D$="E1R0E1R0E1R0E1R0E1R0E1R0D1R0E1R0E1R0E1R0E1R0E1R0-A1R0-A1R0-A1R0B3R1"  60 E$="-A1R0-B1R0C0D1R0E1R0F1R0E1R0F1A3R1B1R0A1R0F3R0E1R0E00R0R0R0R0"  100 음악 A$+B$+B$  110 음악 C$+C$+B$  120 음악 C$+D$+E$ 

최신 MML

모던 MML은 원래 Microsoft BASIC에서 사용되었으며 1970년대 초반과 1980년대 일본8비트16비트 PC에서 일반적이었습니다.NEC PC-6001은 1981년에 Microsoft BASIC과 Programmable Sound Generator를 포함했습니다.MML은 NEC PC-8801[10]같은 NEC의 개인용 컴퓨터에서 특히 인기가 있었다.2001년 닌텐도 엔터테인먼트 [11]시스템에서 음악을 재생하기 위해 MML을 컴파일하기 위한 mck (Music Creation Kit) 소프트웨어가 출시되면서 MML에 대한 인식과 사용이 증가했다.[12]MML은 현재 닌텐도 엔터테인먼트 시스템의 음악을 쓰는 방법으로 칩튠[13] 만드는 일본 전자[10] 음악가들과 음악가들 사이에서 인기가 있다.

구문

현대의 MML은 BASIC의 하위 언어로 시작되었으며, 그 후 일반적으로 마이크로컴퓨터의 ROM에 포함되어 있습니다.aPLAY스테이트먼트에서는 인수를 사용하여 사운드칩이 재생한 톤의 스트링을 정의합니다.MML 코드는 문자와 숫자를 사용하여 [10]연주되는 음표를 설명하는 단순한 텍스트 형식을 가지고 있습니다.또한 MML의 다양한 구현에 의해 시스템 확장이 추가되어 오디오 합성의 파라미터가 특별한 명령으로 변경되거나 아르페지오와 같은 일반적인 음악적 인물들의 입력을 단순화할 수 있습니다.

많은 플랫폼에서는 커스텀 확장자, 레터 케이스 요건 및 기타 부차적인 구문 기능이 일부 구현에서는 약간 다르지만 MML을 정의하고 모든 구현에서 전체 또는 일부 존재하는 기본적인 구문 규칙, 명령어 및 [10][14]기능은 다음과 같습니다.

  • cdefgab: 문자a로.g음높이에 대응하여 해당 음이 연주되도록 합니다.샤프 노트는 다음 명령어를 추가함으로써 생성됩니다.+또는#, 플랫노트를 추가함으로써-노트의 길이는 전체 노트의 분수로 길이를 나타내는 숫자를 추가하여 지정합니다. 예를 들어 다음과 같습니다.c8 8번째 음을 나타냅니다.f+2 반음표
  • p: 일시정지 또는 정지.때때로 또한r다만, 원래의 IBM과 Microsoft BASIC은p모든 클론(Linux 및 BSD 스피커 디바이스 [16]등)과 동일합니다.[15]나머지 길이는 메모의 길이와 동일한 방식으로 지정됩니다. 예를 들어 다음과 같습니다.r1완전한 휴식을 만들어냅니다.
  • o- 그 뒤에 숫자가 계속됩니다.o계측기가 연주할 옥타브를 선택합니다.
  • >,< 옥타브를 오르내릴 때 사용합니다.
  • l— 숫자 뒤에 명시적으로 정의되지 않은 노트 또는 쉼표에서 사용되는 기본 길이를 지정합니다.예를들면,l8 g a b g l16 g a b g는 일련의 4개의 8번째 음표와 이어서 4개의 16번째 음표를 생성합니다.
  • v— 숫자에 이어 계측기의 볼륨을 설정합니다.사용할 수 있는 값의 범위는 사용하는 사운드하드웨어에 따라 달라집니다.일부 구현에서는 각 노트의 진폭에 ADSR 엔벨로프를 적용할 수도 있습니다.
  • t- 숫자에 이어 템포를 분당 비트 수로 설정합니다.여러 사운드 채널이 있는 하드웨어에서는 각 채널을 다른 템포로 설정할 수 있습니다.

또한 대부분의 구현에서는 시스템 고유의 확장 기능 또는 확장을 위해 자체 키워드와 기호를 추가합니다.

아래는 '뻐꾸기의 춤'의 현대 MML 표기입니다(명확성을 위해 공백이 있지만 일부 MML 통역자는 연주 전에 이것을 벗겨야 합니다).

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

SMX

Standard Musical eExpression(SMX)은 QBASIC, BASICAGW-BASIC에서 Microsoft가 제공하는 Modern MML의 변형입니다.PLAY 스테이트먼트.[10]GW-BASIC에서 사용되는 버전은 최신 BSD, FreeBSD,[17] NetBSD, OpenBSDMirOS의 일부입니다.[18]언어에 대해서는 스피커(4)를 참조해 주십시오.

언어, 플랫폼 및 소프트웨어

  • Epic Games의 ZZT와 Super ZZT, 그리고 MegaZeux라는 오픈 소스 클론은 PLAY 명령에 매우 콤팩트한 MML을 사용하며 PC 스피커용 채널은 1개뿐입니다.
  • Microsoft의 QBASIC, BASICAGW-BASIC의 모든 기능은PLAYSMX [19][20][21]형식의 string 인수를 사용합니다."음악 매크로 언어"라는 이름은 "음악 매크로 언어를 문자열 데이터 [22]유형에 포함시킴으로써 음악을 재생하는" 기능을 제공한 GW-BASIC에서 유래했을 수 있습니다.DMV Widuch가 제작한 독일 잡지 DOS Extra의 SBasic 컴파일러는 동일한 PLAY 명령을 제공하며, 몇 줄의 BASIC 프로그램을 작은 (몇 KiB) 도구로 컴파일하여 MML 파일(종종 *)을 재생할 수 있습니다.PLY) 명령어라인에 표시됩니다.
    • Eric S. Raymond는 /dev/speaker를 GW-BASIC 호환 [23]형식으로 제공하는 UNIX System V 드라이버를 작성했습니다.이후 386BSD로 포팅되어 현재 BSD [18]운영체제가 사용되고 있습니다.
  • NEC PC-8801의 베이직 사투리 N88-BASIC은 MML을 사용하고 있습니다.PLAYNEC에 [10][24]의해 생산 또는 판매된 BASIC의 다른 몇 가지 구현과 마찬가지로 진술서.
    • 치프튠 작곡가인 고시로 유조 씨가 크게 변형된 버전을 만들었습니다.코시로는 "처음에는 베이직 스타일의 언어에 가까웠으나, 저는 의회와 같은 것으로 수정했습니다.나는 그것을 '뮤직 러브'라고 불렀다.모든 베어너클 [25]게임에 사용했어요.
  • 다양한 시장 금리 연동 대출 전력 회사 컴퓨터의 NECPC-9801 가족을 위해 작곡가 류현진은 Umemoto에 의해 EVE CPU사용 오류와 Grounseed 같은 게임뿐만 아니라 게임 개발자 ZUN 첫번째 5동방 Projec의 대부분 동안에 사용되는 게임 작곡가 마사히로 Kajihara(가장 일반적으로 KAJA으로 알려져)[26]에 의해 PMD(프로 음악 드라이버)[12]을 포함하여 쓰여졌다.t게임입니다.
  • Nintendo Entertainment System [11][27]음악을 만들기 위한 mck, pmck 및 ppmck 유틸리티와 Bandai WonderSwan, NEC PC Engine, Sega Mega [12]Drive와 같은 다른 하드웨어용 음악을 만들기 위한 많은 도구입니다.
  • 세가 마스터 시스템, 세가 게임 기어, 세가 메가 드라이브, 닌텐도 게임보이, 코모도어 [28]64 등 다양한 시스템의 음악을 만드는 xpmck 유틸리티.
  • 일부 휴대전화는 호출음 형식으로 [29]MML을 사용합니다.RTTL 호출음 언어는 MML의 많은 특성을 나타냅니다.
  • 단말기 프로그램이 MML로 인코딩된 음악을 재생할 수 있도록 이스케이프 시퀀스가 정의되었습니다.이 때문에 MML의 음악은 ANSI [30]Music이라고 불리기도 합니다.
  • MSX 컴퓨터 시스템에서 내장 MSX BASIC은 PLAY 명령어와 함께 MML도 사용합니다.쉼표로 구분된 문자열은 개별 음성 채널을 나타냅니다.MSX-Music, MSX-Audio 및 MSX-MIDI 등의 음악 하드웨어 확장에 의해 PLAY 명령어가 확장되어 FM 칩 및 외부 MIDI 디바이스도 MML을 통해 제어할 수 있습니다.
  • 샤프 포켓 컴퓨터 음악 루틴 PLAYX - MyArchive.니혼고 -> ja:츠요시
  • Macrotune은 Windows 및 OS X에서 사용할 수 있는 무료 MML 편집기이며 소프트웨어/게임 개발자를 위한 공유 라이브러리를 제공합니다.
  • FlopPI-Music(아카이브된 이전 설명서 페이지)은 메타데이터(작성자, 제목 등)가 포함된 파일 헤더와 새 행, 직원별로 한 줄씩 확장 형식을 사용하여 여러 악기를 지원하는 막대 행을 사용합니다.Lasberry Pi GPIO 포트로 최대 8대의 3인치 플로피 디스크 드라이브를 출력할 수 있도록 설계되었습니다.또한 MuseScore로 테스트된 독립형 MML 파서MusicXML 익스포터 라이브러리와 유틸리티도 포함되어 있습니다.특히 대량 병렬 MML 파일, 스코어 시트 인쇄(이상적으로는 최소한의 후 처리 후이지만 일반적으로 읽을 수 있음) 등을 쉽게 디버깅할 수 있습니다. – Floppi-Music과 MMLlib는 Python으로 작성된 자유 소프트웨어입니다.
  • 쁘띠 컴퓨터와 스마일BASIC는 둘 다BGMPLAY이 함수는 사전 설정된 MML 트랙 또는 문자열로 제공되는 MML 트랙을 사용할 수 있습니다.
  • 마비노기라고 불리는 MMO는 플레이어가 게임 내 음악 스코어 스크롤에 MML 코드를 입력할 수 있게 하며, 이 MML 코드는 장비된 악기를 사용하여 근처의 모든 사람들이 들을 수 있도록 플레이할 수 있다.이러한 사회적 측면 때문에 사용자들은 종종 인기곡의 MML 버전을 만들어 팬 사이트에 올렸습니다.이 게임은 또한 사용자들에게 스킬북을 통해 구문을 가르쳐주는데, 이것은 코드를 쓸 때 더 큰 크기의 제한을 푸는 방법으로 두 배로 늘어난다.ArcheAge MMO는 동일한 기능을 제공합니다.
  • MML 스크롤 작성에 도움을 주기 위해 마비노기 사용자가 3MLE라고 불리는 윈도우 프로그램을 만들었습니다.이 프로그램은 IDE와 유사하게 작동하므로 사용자는 다양한 계측기의 MML 코드를 작성, 최적화 및 테스트할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ 태평양 공업 주식회사(주)에서 근무한 「니시카도 토모히로가 편집.모두 단독으로 컴파일됩니다.
  2. ^ PDF 파일Micro Computer BASIC MASTER MB-6880 음악[permanent dead link] 방법 -Kunihiko (圀彦), Nagai (長井); Teruhiro (輝洋), Takezawa (竹澤); Kazuma (一馬), Yoshimura (吉村); KaTsutoshi (活利), Tajima (田島) (26 April 1979). "Hitachi Hyoron April 1979 Special Features:A micro-computer, the application method". digital.hitachihyoron. HITACHI. Archived from the original on 8 May 2015. Retrieved 26 August 2013.
  3. ^ 1977년 스티브 워즈니악의 애플 오픈 기술로 애플 레드북 애플 컴퓨터처럼 남아있다.
  4. ^ "SHARP MZ.org MZ-80K monitor sub $0030". 2012-09-20. Archived from the original on 2015-09-26. Retrieved 2012-09-19.
  5. ^ CPUZ-80 Zilog 라이센스 보조 소스입니다.
  6. ^ Nobuaki Ohishi (2012-09-20). "Nibbles lab.SHARP Museum,MZ-80K Photo and Catalog".
  7. ^ SHARP 공사,nagusa_kei(1978년).MZ-80 BASICSP-5030 マニュアル.SHARP 공사 p. 110.-Document(유효성 검사)의 상위 버전 SP-5030"oec_Nibbleslab 트위터". 2012-09-22.-"twitter PlayTrueName".2012-09-22.2012-09-22."트위터(twilog)PlayTrueName"Retrieved.2012-09-22.2012-12-28 Retrieved.SHARP 공사(1978년).MZ-80 BASICマニュアル.SHARP 공사 p. 110.
  8. ^ "SHARP MZ.org MZ-80K monitor sub $0030". 2012-09-20. Archived from the original on 2015-09-26. Retrieved 2012-09-19./"SHARP MZ.org MZ-700 monitor sub $0030". 2012-09-20. Archived from the original on 2015-05-09. Retrieved 2012-09-19.
  9. ^ 모토이, 겐키치.눈"견해다.그녀는"게임을 하" 난crying/Awamomo Office" 말했다.그 2013-02-18에 원래에서 Archived.2012-09-20 Retrieved.고 배치되어야 모토이, 겐키치에 의해 Programmed."트위터 @ PlayTrueName Σ:음악의 소리에 the◎Programming까지 D『So 긴 시간 이후".2012-09-22 Retrieved.사용이 허가된#AAAP(창조적 공용 CC-BY-SA 및 텍스트 GNU자유 문서 사용 허가서를 포함하다.).
  10. ^ a b c d e f Selfridge-Field, Eleanor (1997). Beyond Midi: The Handbook of Musical Codes. Cambridge: MIT Press. ISBN 0-262-19394-9.
  11. ^ a b "VORC Internet Chiptune Encyclopedia - mck". Archived from the original on 2008-01-03. Retrieved 2008-02-13.
  12. ^ a b c "VORC Internet Chiptune Encyclopedia - MML". Archived from the original on 2007-11-23. Retrieved 2008-02-13.
  13. ^ "VORC: VGM or Chiptune of The Year 2001". 2001-12-31.
  14. ^ Johnson, Jeremiah. "MCK/MML Beginners Guide". Archived from the original on 2007-12-14. Retrieved 2008-02-13.
  15. ^ "IBM BASIC manual, Second Edition (May 1982), Version 1.10" (PDF). Archived from the original (PDF) on 2015-06-15. Retrieved 2016-03-26.
  16. ^ MirBSD 스피커 디바이스 매뉴얼
  17. ^ FreeBSD 스피커(4) 매뉴얼 페이지
  18. ^ a b 스피커(4) 매뉴얼페이지
  19. ^ "QBasic manual". Microsoft Corporation. 1991. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  20. ^ "IBM Personal Computer BASIC manual". IBM Corporation. 1982. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  21. ^ "BASICA manual". Microsoft Corporation. 1982. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  22. ^ "GW-BASIC manual". Microsoft Corporation. 1987. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  23. ^ Raymond, Eric (7 May 1995). "Eric Raymond's Open-Source Works". Eric S. Raymond's Home Page. Retrieved 3 July 2020.
  24. ^ Koshiro, Yūzō. "Yuzo Koshiro Interview" (Interview). Interviewed by Kikizo Games. Retrieved 2008-02-13.
  25. ^ Szczepaniak, John. "Retro Japanese Computers: Gaming's Final Frontier". Hardcore Gaming 101. Retrieved 2011-03-29. 전재원
  26. ^ "ツールのお部屋" (in Japanese). Retrieved 2019-12-01.
  27. ^ "VORC Internet Chiptune Encyclopedia - ppmck". Archived from the original on 2006-10-12.
  28. ^ Swimm, Peter (December 21, 2009). "XPMCK - Cross Platform Music Compiler Kit updated". True Chip Till Death. Retrieved December 29, 2011.
  29. ^ "着信メロディは再び自分で作る時代に?──MIDIファイルやWAVファイルを着メロに変換". ITmedia, Inc. 2001-04-03. Retrieved 2008-02-13.
  30. ^ "ANSI Music - The Technical Details". Retrieved 2009-01-16.