음악 매크로 언어
Music Macro LanguageMML(Music Macro Language)은 컴퓨터 및 비디오 게임 시스템의 음악 시퀀싱에 사용되는 음악 기술 언어입니다.
배경
초기의 자동 음악 생성 기능은 많은 컴퓨터 소리를 사용한 아케이드 게임에서 사용되었다.1977년 Exidy Corporation의 The 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]
구문
여기에서는 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, BASICA 및 GW-BASIC에서 Microsoft가 제공하는 Modern MML의 변형입니다.PLAY
스테이트먼트.[10]GW-BASIC에서 사용되는 버전은 최신 BSD, FreeBSD,[17] NetBSD, OpenBSD 및 MirOS의 일부입니다.[18]언어에 대해서는 스피커(4)를 참조해 주십시오.
언어, 플랫폼 및 소프트웨어
- Epic Games의 ZZT와 Super ZZT, 그리고 MegaZeux라는 오픈 소스 클론은 PLAY 명령에 매우 콤팩트한 MML을 사용하며 PC 스피커용 채널은 1개뿐입니다.
- Microsoft의 QBASIC, BASICA 및 GW-BASIC의 모든 기능은
PLAY
SMX [19][20][21]형식의 string 인수를 사용합니다."음악 매크로 언어"라는 이름은 "음악 매크로 언어를 문자열 데이터 [22]유형에 포함시킴으로써 음악을 재생하는" 기능을 제공한 GW-BASIC에서 유래했을 수 있습니다.DMV Widuch가 제작한 독일 잡지 DOS Extra의 SBasic 컴파일러는 동일한 PLAY 명령을 제공하며, 몇 줄의 BASIC 프로그램을 작은 (몇 KiB) 도구로 컴파일하여 MML 파일(종종 *)을 재생할 수 있습니다.PLY) 명령어라인에 표시됩니다. - NEC PC-8801의 베이직 사투리 N88-BASIC은 MML을 사용하고 있습니다.
PLAY
NEC에 [10][24]의해 생산 또는 판매된 BASIC의 다른 몇 가지 구현과 마찬가지로 진술서. - 다양한 시장 금리 연동 대출 전력 회사 컴퓨터의 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 코드를 작성, 최적화 및 테스트할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ 태평양 공업 주식회사(주)에서 근무한 「니시카도 토모히로」가 편집.모두 단독으로 컴파일됩니다.
- ^ 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.
- ^ 1977년 스티브 워즈니악의 애플 오픈 기술로 애플 레드북 애플 컴퓨터처럼 남아있다.
- ^ "SHARP MZ.org MZ-80K monitor sub $0030". 2012-09-20. Archived from the original on 2015-09-26. Retrieved 2012-09-19.
- ^ CPU가 Z-80 Zilog 라이센스 보조 소스입니다.
- ^ Nobuaki Ohishi (2012-09-20). "Nibbles lab.SHARP Museum,MZ-80K Photo and Catalog".
- ^ 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.
- ^ "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.
- ^ 모토이, 겐키치.눈"견해다.그녀는"게임을 하" 난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자유 문서 사용 허가서를 포함하다.).
- ^ 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.
- ^ a b "VORC Internet Chiptune Encyclopedia - mck". Archived from the original on 2008-01-03. Retrieved 2008-02-13.
- ^ a b c "VORC Internet Chiptune Encyclopedia - MML". Archived from the original on 2007-11-23. Retrieved 2008-02-13.
- ^ "VORC: VGM or Chiptune of The Year 2001". 2001-12-31.
- ^ Johnson, Jeremiah. "MCK/MML Beginners Guide". Archived from the original on 2007-12-14. Retrieved 2008-02-13.
- ^ "IBM BASIC manual, Second Edition (May 1982), Version 1.10" (PDF). Archived from the original (PDF) on 2015-06-15. Retrieved 2016-03-26.
- ^ MirBSD 스피커 디바이스 매뉴얼
- ^ FreeBSD 스피커(4) 매뉴얼 페이지
- ^ a b 스피커(4) 매뉴얼페이지
- ^ "QBasic manual". Microsoft Corporation. 1991.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "IBM Personal Computer BASIC manual". IBM Corporation. 1982.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "BASICA manual". Microsoft Corporation. 1982.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "GW-BASIC manual". Microsoft Corporation. 1987.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Raymond, Eric (7 May 1995). "Eric Raymond's Open-Source Works". Eric S. Raymond's Home Page. Retrieved 3 July 2020.
- ^ Koshiro, Yūzō. "Yuzo Koshiro Interview" (Interview). Interviewed by Kikizo Games. Retrieved 2008-02-13.
- ^ Szczepaniak, John. "Retro Japanese Computers: Gaming's Final Frontier". Hardcore Gaming 101. Retrieved 2011-03-29. 전재원
- ^ "ツールのお部屋" (in Japanese). Retrieved 2019-12-01.
- ^ "VORC Internet Chiptune Encyclopedia - ppmck". Archived from the original on 2006-10-12.
- ^ Swimm, Peter (December 21, 2009). "XPMCK - Cross Platform Music Compiler Kit updated". True Chip Till Death. Retrieved December 29, 2011.
- ^ "着信メロディは再び自分で作る時代に?──MIDIファイルやWAVファイルを着メロに変換". ITmedia, Inc. 2001-04-03. Retrieved 2008-02-13.
- ^ "ANSI Music - The Technical Details". Retrieved 2009-01-16.