$$ \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} $$

전체 글 글목록

(문서 23개)
미디 1.0 상세명세 (MIDI 1.0 Detailed Specification) 표준 미디 파일 1.0 소개 미디(MIDI, the Musical Instrument Digital Interface)는 다른 악기나 다른 장치들(시퀀서, 컴퓨터, 조명 컨트롤러, 믹서 등) 사이에서 정보(음표, 프로그램 바꾸기, expression control 등)를 주고받을 수 있게 하려는 하드웨어/소프트웨어 명세로서 제정되었다. 데이터를 주고받는 이 기능은 본디 실황 연주를 위한 것이었으나, 이후의 개발은 녹음 스튜디오, 음성/영상 생산, 작곡환경에 지대한 영항을 미쳤다. 본 문서는 미디1.0 명세를 설명하려고 미디제조가협회(MMA)와 일본미디표준위원회(JMSC) 사이의 공동 노력으로 작성되었다. 이 문서는 JMSC와 MMA 간의 계약에 따라 변경 될 수 있는 것이다. 이 출판물의 부록에 미디 프..
표준 미디 파일 1.0 / 메타이벤트 표준 미디 파일 1.0 ※영어 시바러ㅣㅏㅁ어깅기ㅏㅇ리ㅣ아라ㅏㅏ아악아 영어 씨발아 영어씨발 뭔소린지 모르겠네. 메타이벤트 몇몇 메타이벤트가 이 문서에 정의돼있다. 모든 프로그램이 모든 메타이벤트를 지원할 필요는 없다. ※딱 보니까 메타이벤트는 이렇게 구성된다. FF [유형] [길이(가변길이량)] [전송될 바이트들 모두] ※여기서 [이 괄호]로 둘러싼 부분은 메시지 만드는 사람이 알아서 넣는 거고 아니면 미리 정해진 수(16진수)이다. 각 이벤트를 시작하는 FF(※메타이벤트는 FF로 시작한다. 메타바이트의 상태바이트), 각 이벤트의 타입, 가변량의 데이터가 없는 이벤트의 길이는 직접 16진수로 주어진다(※즉, 이벤트의 길이가 고정이면 그 고정값을 직접 16진수로 써주고, 길이가 가변적이면 대충 len으로 표..
표준 미디 파일 1.0 (Standard MIDI Files 1.0) 미디 1.0 상세명세 소개 본 문서는 미디파일 명세의 개요이다. 하나 또는 여러 컴퓨터들의 다른 프로그램들 사이에서 시간표시된 미디데이터를 주고받는 길을 제공함이 미디파일의 목적이다. 주된 설계 목적 중 하나는 잘 짜인 진술이며, 이 진술로써 디스크 기반 파일 포맷에 매우 적합하게 될 것이나, 시퀀서 프로그램이 빠르게 접근할 메모리에 저장하기에는 부적합할 수 있다. (파일을 읽고 쓸 때 날 듯이 빠르게 접근할 수 있는 형식으로 쉽게 변환시킬 수 있다.) 다른 어느 프로그램의 보통 파일 형식을 대체할 목적이 아니지만 원한다면 그리 쓰일 수도 있다. 미디파일은 각 이벤트마다 시간 정보가 있는 하나 이상의 미디스트림을 포함한다. 노래, 시퀀스, 트랙구조, 빠르기, 박자표 등이 모두 지원된다. 트랙 이름과 다른..
SysexMessage 클래스 패키지: javax.sound.midi java.lang.Object javax.sound.midi.MidiMessage javax.sound.midi.SysexMessage 모두 구현된 인터페이스:Cloneable public class SysexMessage extends MidiMessage SysexMessage 오브젝트는 미디 시스템독점메시지(MIDI system exclusive message)를 나타낸다. 미디파일에서 읽힌 시스템독점메시지엔 반드시 정의된 길이가 있다. 미디파일의 시스템독점메시지의 데이터는 SysexMessage의 데이터 배열에 다음과 같이 저장되어야 한다: 시스템독점메시지 상태바이트 (0xF0 또는 0xF7), 모든 메시지 데이터바이트, 마지막으로, 독점종료 플래그 (0xF..
MetaMessage 클래스 패키지: javax.sound.midi 메타메시지 java.lang.Object javax.sound.midi.MidiMessage javax.sound.midi.MetaMessage 모두 구현된 인터페이스:Cloneable public class MetaMessage extends MidiMessage 미디파일에 저장되거나 시퀀서 프로그램이 해석할 수는 있으나 신디사이저가 쓰지는 못하는 MidiMessage이다. (MidiMessage 클래스 설명에 논의된 바를 보라.) 표준미디파일 명세는 시퀀스번호, 가사, 큐포인트, 빠르기설정 등 다양한 유형의 메타이벤트를 정의한다. 가사, 저작권, 빠르기 지시, 박자, 조표, 표지 등의 정보를 위한 메타이벤트들도 있다. 미디제작가협회(MIDI Manufacture..
ShortMessage 클래스 패키지: javax.sound.midi 미디 메시지의 종류 java.lang.Object javax.sound.midi.MidiMessage javax.sound.midi.ShortMessage 모두 구현된 인터페이스:Cloneable public class ShortMessage extends MidiMessage ShortMessage는 상태바이트 뒤에 데이터를 최대 두 바이트 가진 미디메시지를 포함한다. 이 기준을 만족하는 MIDI 메시지 유형에는 채널보이스, 채널모드, 시스템공통, 시스템실시간이 있다. 즉, 시스템독점 및 메타이벤트를 제외한 메시지 유형 모두이다. ShortMessage 클래스는 미디메시지의 내용을 얻거나 설정하는 메쏘드를 제공한다. 미디 상태바이트 또는 데이터바이트를 지정하는 정..
MidiMessage 클래스 패키지: javax.sound.midi java.lang.Object javax.sound.midi.MidiMessage 모두 구현된 인터페이스:Cloneable 직접 알려진 서브클래스: MetaMessage, ShortMessage, SysexMessage public abstract class MidiMessage extends Object implements Cloneable MidiMessage는 미디메시지를 나타내는 기본 클래스이다. 신디사이저가 들을 표준미디메시지뿐 아니라 시퀀서 프로그램이 쓸 "메타이벤트"도 포함된다. 가사, 저작권, 빠르기 지시, 박자, 조표, 표지 등의 정보를 위한 메타이벤트들이 있다. 미디제작가협회(MIDI Manufacturer's Association, http://..
MidiEvent 클래스 패키지: javax.sound.midi java.lang.Object javax.sound.midi.MidiEvent public class MidiEvent extends Object 미디이벤트에는 미디메시지 하나와 그에 대응되는 시간표지(틱으로 표현됨)가 들어있으며, 미디파일이나 Sequence 오브젝트에 저장된 미디이벤트 정보를 나타낼 수 있다. 틱 하나의 지속시간은 미디파일 또는 Sequence 오브젝트에 들어있는 타이밍 정보에 의해 지정된다. Java Sound에서 MidiEvent 오브젝트는 일반적으로 Track에 들어있으며 Track 역시 Sequence에 들어있다. 생성자 요약 생성자 제한자 식별자, 설명 - MidiEvent( MidiMessage message, long tick ) 새..
Track 클래스 패키지: javax.sound.midi 미디 트랙 청크 java.lang.Object javax.sound.midi.Track public class Track extends Object 미디트랙은 표준미디파일 속에 다른 트랙들과 함께 저장될 수도 있는 미디이벤트(시간표시된 미디데이터)의 독립적 스트림이다. 미디 규격은 미디 데이터에 딱 열여섯 채널만을 허용하지만 트랙으로써 이 한계를 피해 갈 수 있다. 미디파일은 트랙을 몇 개라도 가질 수 있으며 각 트랙은 최대 열여섯 채널의 미디데이터 스트림을 가진다. Track은 Sequencer가 재생하는 데이터 계층에서 중간 레벨을 차지한다. 미디이벤트를 포함하는 트랙을 포함하는 시퀀스를 시퀀서가 재생한다. 시퀀서는 ` solo 개별 트랙들 또는 음소거하는 컨트..
Sequence 클래스 패키지: javax.sound.midi java.lang.Object javax.sound.midi.Sequence 모두 구현된 인터페이스:Cloneable public class Sequence extends Object Sequencer 오브젝트가 연주할 수 있는 음악 정보(주로 곡이나 합성물 전체)가 든 데이터구조이다. 특히나 타이밍 정보와 하나 이상의 트랙을 포함한다. 각 트랙은 미디이벤트(음표 끄고켜기, 프로그램 바꾸기, 메타이벤트 등)들의 나열로 구성된다. 시퀀스의 타이밍 정보는 시퀀스에서 이벤트에 찍힐 시간의 단위의 타입을 특정한다. 미디파일을 입력스트림으로 읽거나 MidiSystem의 getSequence 메쏘드들 중 하나를 부름으로써 Sequence를 만들 수 있다. 빈 Sequence에..