$$ \definecolor{rr}{rgb}{0.95,0.1,0} \definecolor{bb}{rgb}{0,0.4,1} \definecolor{gg}{rgb}{0,0.6,0} \definecolor{yy}{rgb}{0.8,0.5,0} \definecolor{pp}{rgb}{0.9,0,0.5} $$
내성적 물망초
: 내 성적 물리 때문에 망하기 10초 전

나머지/midiSpec 글목록

(문서 12개)
표준 미디 파일 1.0 / 트랙 청크 2020년 03월 09일 표준 미디 파일 1.0 청크 상세설명 트랙 청크 (track chunk) 트랙청크(MTrk 형식)는 실제 노래 데이터가 저장되는 곳이다. 각 트랙청크는 단순히 미디이벤트와 비(non)미디이벤트들(델타타임값이 선행하는)의 스트림이다. 아래 나오는 트랙청크의 형식은 미디파일의 세 형식 모두에서 같다. 트랙청크의 구조는 이렇다. [트랙청크] = [청크유형] [길이] [형식] [트랙이벤트](한개이상) 트랙이벤트의 구조는 매우 간단하다. [트랙이벤트] = [델타타임] [이벤트] [델타타임] [델타타임]은 가변길이량으로 저장되며, 다음 이벤트 전까지의(※??? 이전~현재가 아니고???) 시간량을 나타낸다. 트랙의 첫 이벤트가 트랙의 맨 처음에 발생하거나 두 이벤트가 동시에 발생할 경우 델타타임 0이 쓰인다.(※`그..
표준 미디 파일 1.0 / 0, 1, 2형식 파일 2020년 03월 08일 표준 미디 파일 1.0 표준 미디 파일 1.0 / 헤더청크 / 형식 값뜻 0다중채널 트랙 한 개가 있는 파일. 1동시적 트랙(이나 미디출력) 한 개 이상의 시퀀스가 있는 파일. 2독립적 단일트랙 패턴 한 개 이상이 나열된 파일. ※헤더청크 문서에서 복붙해온 표. 청크 상세설명 0, 1, 2형식 파일(formats 0, 1, and 2) 0형식 파일에는 헤더청크 뒤에 트랙청크 하나가 따른다. 가장 호환성 좋은 데이터표현법이며, 신디사이저에서 소리를 내야 하지만 `sound effect boxes나 믹서 등 다른 것과 주로 관련된 프로그램에서 트랙 하나짜리 간단한 플레이어에 매우 유용하다. 이런 단순한 프로그램으로 작업하려면 지금 쓰이는 프로그램이 트랙 기반인 경우라도 이 따위 형식은 만들어봄직하다. 한편,..
미디 1.0 상세명세 / 채널 보이스 메시지 2020년 03월 07일 미디 1.0 상세명세 채널 보이스 메시지(Channel Voice Message) 음표 끄기0x8n(0~119) 음표 켜기0x9n `Poly Key Pressure0xAn 컨트롤바꾸기0xBn 프로그램바꾸기0xCn `Channel Pressure0xDn 피치밴드0xEn ※이 표 뭔뜻인지 알려줄 천사 구함. 2렬은 대충 상태바이튼데…. 3렬은 도덕책??? 미디 악기 사이에 전송되는 정보는 대부분 채널 보이스 메시지이다. 이 메시지는 음표 켜기, 음표 끄기, 프로그램 바꾸기, 피치 휠 바꾸기, `after-touch pressure, 컨트롤러 바꾸기를 모두 포함한다. 이 용어들은 아래에서 정의되었다. 음표켜기메시지 하나는 3바이트로 구성되며 전송에 960마이크로초(천분의 0.96초)가 필요하다. 음표들이 동시..
미디 1.0 상세명세 / 데이터 유형 (상태바이트, 데이터바이트) 2020년 03월 07일 미디 1.0 상세명세 데이터 유형(data type) 미디를 통해 전달되는 바이트에는 상태바이트와 데이터바이트 두 가지 종류가 있다. 상태 바이트(status byte) 상태바이트는 최상위 비트가 1로 설정된 8비트짜리 수이다. 상태바이트는 메시지 유형, 즉 뒤따르는 데이터바이트의 쓰임새를 식별하는 역할을 한다. 수신기에 새로 들어오는 상태바이트(실시간메시지 빼고)는 수신기가 상태를 새로 취하도록 명한다. 이전 메시지가 불완전하더라도 그런다. 진행중상태(Running Status) 보이스메시지와 모드메시지 전용. 한 상태바이트를 받아 처리한 수신기는 다른 상태바이트를 받기 전까지 계속 그 상태로 남아있는다. 따라서 같은 상태바이트가 반복되면 상태바이트를 마음대로 빠뜨리고 데이터바이트만 보내도 된다. 그러..
표준 미디 파일 1.0 / 헤더 청크 2020년 03월 06일 표준 미디 파일 1.0 청크 상세설명 헤더 청크 (header chunk) 파일 시작 부분의 헤더청크는 파일의 데이터에 관한 기본적 정보를 서술한다. 다음은 완전한 청크의 구조이다. [헤더청크] = [청크유형] [길이] [형식] [트랙청크수] [분할값] [청크유형] 앞서 말했듯 [청크유형]은 'MThd'라는 아스키 네 글자이다. [길이] [길이]는 32비트로 표현된 숫자 6이다 (높은 바이트 먼저). 데이터 섹션에는 상위 바이트 순으로 저장된 16비트짜리 단어 세 개가 들어있다. [형식] [형식]은 파일 전반의 구조를 결정한다. [형식]에는 세 값만이 정의돼있다. 값뜻 0다중채널 트랙 한 개가 있는 파일. 1동시적 트랙(이나 미디출력) 한 개 이상의 시퀀스가 있는 파일. 2독립적 단일트랙 패턴 한 개 이..
표준 미디 파일 1.0 / 가변길이량 2020년 03월 05일 표준 미디 파일 1.0 / 시퀀스, 트랙, 청크: 파일 블럭 구조 가변길이량(variable-length quantity) 본 문서에서는 바이트에서 최하위 비트를 0번째 비트라 하고, 최상위 비트를 7번째 비트라 한다. 미디파일의 몇몇 수는 가변길이량이라는 꼴로 표현된다. 이 수들은 한 바이트당 일곱 비트로 표현되며 최상위 비트가 먼저다. 마지막 말고 모든 바이트는 7째 비트를 설정하고, 마지막 바이트의 7째 비트는 비운다. 수가 0~127이면 정확히 한 바이트로 표현된다. 가변길이량으로 표현된 숫자의 예시들이 몇 개 있다. 가변길이량 예시 표현할 수(16진)표현할 수(2진)가변길이식(2진)가변길이식(16진) 0 0 0 0 0 0 0 0 00000000 00000000 00000000 00000000 0..
미디 1.0 상세명세 / 메시지 유형 2020년 03월 04일 미디 1.0 상세명세 데이터 형식(메시지) 메시지 유형 메시지는 주로 ★채널메시지와 ★시스템메시지 두 부류로 나뉜다. 채널 메시지 채널메시지의 ★네 비트는 상태바이트에 써서 메시지를 열여섯 미디채널 중 한 채널에 위치시키고, ★네 비트는 메시지를 정의하는 데 쓰인다. (표2 참조) 따라서 채널메시지는 상태바이트로 인코딩된 채널번호에 맞는 채널번호를 가진 시스템의 수신기를 위하려는 것이다. 악기는 미디메시지를 여러 채널에서 받을 수 있다. 무슨 프로그램 번호가 켜져있는가 또는 무슨 모드로 실행하는가 등의 주요 명령어를 받는 채널을 "기본채널"이라 한다. 여러 채널(기본채널 포함)에서 실행(performance) 데이터를 받도록 악기를 설정할 수 있다. 이를 "보이스채널"이라 한다. 이런 다중채널의 상황에 ..
표준 미디 파일 1.0 / 대충 청크 등등 2020년 03월 04일 표준 미디 파일 1.0 시퀀스, 트랙, 청크: 파일 블럭 구조 ※원문 제목은 이런데 도대체 그 "시퀀스"는 도대체 뭐냐??? 이 부분 통틀어서 시퀀스라는 단어는 단 한 번도 나오지를 안 하는구만. 으악!! 시퀀스가 도대체 뭘 말하는 건지 모르겠단 말이야 으악!! 시퀀스가 뭔지 몰라서 사망 0
미디 1.0 상세명세 / 데이터 형식 (메시지) 2020년 03월 03일 미디 1.0 상세명세 데이터 형식 상태바이트 하나와 뒤따르는 하나 내지 두 데이터바이트로 구성된 여러 바이트짜리 "메시지"를 통해 미디 통신은 달성된다. 실시간 및 독점 메시지는 예외이다. ※메타메시지는 미디메시지가 아니다. 미디를 장착한 악기에는 통상적으로 수신기(receiver, 받개)와 송신기(transmitter, 보내개)가 포함된다. 수신기와 송신기 중 하나만 있는 악기도 간혹 있다. 수신기는 미디 형식의 메시지를 받아서 미디명령을 수행한다. 이는 `opto-isolator 하나와 `Universal Asynchronous Receiver/Transmitter (UART), 원하는 기능을 수행하는 데 필요한 기타 하드웨어로 구성된다. 송신기는 미디형식의 메시지를 발생시키고 UART와 `line ..
미디 1.0 상세명세 (MIDI 1.0 Detailed Specification) 2020년 03월 03일 표준 미디 파일 1.0 소개 미디(MIDI, the Musical Instrument Digital Interface)는 다른 악기나 다른 장치들(시퀀서, 컴퓨터, 조명 컨트롤러, 믹서 등) 사이에서 정보(음표, 프로그램 바꾸기, expression control 등)를 주고받을 수 있게 하려는 하드웨어/소프트웨어 명세로서 제정되었다. 데이터를 주고받는 이 기능은 본디 실황 연주를 위한 것이었으나, 이후의 개발은 녹음 스튜디오, 음성/영상 생산, 작곡환경에 지대한 영항을 미쳤다. 본 문서는 미디1.0 명세를 설명하려고 미디제조가협회(MMA)와 일본미디표준위원회(JMSC) 사이의 공동 노력으로 작성되었다. 이 문서는 JMSC와 MMA 간의 계약에 따라 변경 될 수 있는 것이다. 이 출판물의 부록에 미디 프..
표준 미디 파일 1.0 / 메타이벤트 2020년 03월 02일 표준 미디 파일 1.0 ※영어 시바러ㅣㅏㅁ어깅기ㅏㅇ리ㅣ아라ㅏㅏ아악아 영어 씨발아 영어씨발 뭔소린지 모르겠네. 메타이벤트 몇몇 메타이벤트가 이 문서에 정의돼있다. 모든 프로그램이 모든 메타이벤트를 지원할 필요는 없다. ※딱 보니까 메타이벤트는 이렇게 구성된다. FF [유형] [길이(가변길이량)] [전송될 바이트들 모두] ※여기서 [이 괄호]로 둘러싼 부분은 메시지 만드는 사람이 알아서 넣는 거고 아니면 미리 정해진 수(16진수)이다. 각 이벤트를 시작하는 FF(※메타이벤트는 FF로 시작한다. 메타바이트의 상태바이트), 각 이벤트의 타입, 가변량의 데이터가 없는 이벤트의 길이는 직접 16진수로 주어진다(※즉, 이벤트의 길이가 고정이면 그 고정값을 직접 16진수로 써주고, 길이가 가변적이면 대충 len으로 표..
표준 미디 파일 1.0 (Standard MIDI Files 1.0) 2020년 03월 02일 미디 1.0 상세명세 소개 본 문서는 미디파일 명세의 개요이다. 하나 또는 여러 컴퓨터들의 다른 프로그램들 사이에서 시간표시된 미디데이터를 주고받는 길을 제공함이 미디파일의 목적이다. 주된 설계 목적 중 하나는 잘 짜인 진술이며, 이 진술로써 디스크 기반 파일 포맷에 매우 적합하게 될 것이나, 시퀀서 프로그램이 빠르게 접근할 메모리에 저장하기에는 부적합할 수 있다. (파일을 읽고 쓸 때 날 듯이 빠르게 접근할 수 있는 형식으로 쉽게 변환시킬 수 있다.) 다른 어느 프로그램의 보통 파일 형식을 대체할 목적이 아니지만 원한다면 그리 쓰일 수도 있다. 미디파일은 각 이벤트마다 시간 정보가 있는 하나 이상의 미디스트림을 포함한다. 노래, 시퀀스, 트랙구조, 빠르기, 박자표 등이 모두 지원된다. 트랙 이름과 다른..