$$ \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개)
가우스적분 가우스분포(정규분포)라는 함수 e-x2를 -∞~∞에서 적분한다. 가우스는 오만 데에 다 나오냐? 이것도 가우스 저것도 가우스. 망할 수학자 과학자들 작명센스 시발. $$ \int_{-\infty}^\infty \operatorname{d}\!x \!\cdot\! e^{-x^2} \quad = \quad \sqrt{2\pi\over 2}$$ $$ \left( \textcolor{gg}{\int_{-\infty}^\infty \operatorname{d}\!x \!\cdot\! e^{-x^2}} \right)^2 $$ $$ \int_{-\infty}^\infty \operatorname{d}\!y \!\cdot\! e^{-y^2} = \int_{-\infty}^\infty \operatorname{d}\!x..
표준 미디 파일 1.0 / 트랙 청크 표준 미디 파일 1.0 청크 상세설명 트랙 청크 (track chunk) 트랙청크(MTrk 형식)는 실제 노래 데이터가 저장되는 곳이다. 각 트랙청크는 단순히 미디이벤트와 비(non)미디이벤트들(델타타임값이 선행하는)의 스트림이다. 아래 나오는 트랙청크의 형식은 미디파일의 세 형식 모두에서 같다. 트랙청크의 구조는 이렇다. [트랙청크] = [청크유형] [길이] [형식] [트랙이벤트](한개이상) 트랙이벤트의 구조는 매우 간단하다. [트랙이벤트] = [델타타임] [이벤트] [델타타임] [델타타임]은 가변길이량으로 저장되며, 다음 이벤트 전까지의(※??? 이전~현재가 아니고???) 시간량을 나타낸다. 트랙의 첫 이벤트가 트랙의 맨 처음에 발생하거나 두 이벤트가 동시에 발생할 경우 델타타임 0이 쓰인다.(※`그..
표준 미디 파일 1.0 / 0, 1, 2형식 파일 표준 미디 파일 1.0 표준 미디 파일 1.0 / 헤더청크 / 형식 값뜻 0다중채널 트랙 한 개가 있는 파일. 1동시적 트랙(이나 미디출력) 한 개 이상의 시퀀스가 있는 파일. 2독립적 단일트랙 패턴 한 개 이상이 나열된 파일. ※헤더청크 문서에서 복붙해온 표. 청크 상세설명 0, 1, 2형식 파일(formats 0, 1, and 2) 0형식 파일에는 헤더청크 뒤에 트랙청크 하나가 따른다. 가장 호환성 좋은 데이터표현법이며, 신디사이저에서 소리를 내야 하지만 `sound effect boxes나 믹서 등 다른 것과 주로 관련된 프로그램에서 트랙 하나짜리 간단한 플레이어에 매우 유용하다. 이런 단순한 프로그램으로 작업하려면 지금 쓰이는 프로그램이 트랙 기반인 경우라도 이 따위 형식은 만들어봄직하다. 한편,..
미디 1.0 상세명세 / 채널 보이스 메시지 미디 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 상세명세 / 데이터 유형 (상태바이트, 데이터바이트) 미디 1.0 상세명세 데이터 유형(data type) 미디를 통해 전달되는 바이트에는 상태바이트와 데이터바이트 두 가지 종류가 있다. 상태 바이트(status byte) 상태바이트는 최상위 비트가 1로 설정된 8비트짜리 수이다. 상태바이트는 메시지 유형, 즉 뒤따르는 데이터바이트의 쓰임새를 식별하는 역할을 한다. 수신기에 새로 들어오는 상태바이트(실시간메시지 빼고)는 수신기가 상태를 새로 취하도록 명한다. 이전 메시지가 불완전하더라도 그런다. 진행중상태(Running Status) 보이스메시지와 모드메시지 전용. 한 상태바이트를 받아 처리한 수신기는 다른 상태바이트를 받기 전까지 계속 그 상태로 남아있는다. 따라서 같은 상태바이트가 반복되면 상태바이트를 마음대로 빠뜨리고 데이터바이트만 보내도 된다. 그러..
표준 미디 파일 1.0 / 헤더 청크 표준 미디 파일 1.0 청크 상세설명 헤더 청크 (header chunk) 파일 시작 부분의 헤더청크는 파일의 데이터에 관한 기본적 정보를 서술한다. 다음은 완전한 청크의 구조이다. [헤더청크] = [청크유형] [길이] [형식] [트랙청크수] [분할값] [청크유형] 앞서 말했듯 [청크유형]은 'MThd'라는 아스키 네 글자이다. [길이] [길이]는 32비트로 표현된 숫자 6이다 (높은 바이트 먼저). 데이터 섹션에는 상위 바이트 순으로 저장된 16비트짜리 단어 세 개가 들어있다. [형식] [형식]은 파일 전반의 구조를 결정한다. [형식]에는 세 값만이 정의돼있다. 값뜻 0다중채널 트랙 한 개가 있는 파일. 1동시적 트랙(이나 미디출력) 한 개 이상의 시퀀스가 있는 파일. 2독립적 단일트랙 패턴 한 개 이..
표준 미디 파일 1.0 / 가변길이량 표준 미디 파일 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 상세명세 / 메시지 유형 미디 1.0 상세명세 데이터 형식(메시지) 메시지 유형 메시지는 주로 ★채널메시지와 ★시스템메시지 두 부류로 나뉜다. 채널 메시지 채널메시지의 ★네 비트는 상태바이트에 써서 메시지를 열여섯 미디채널 중 한 채널에 위치시키고, ★네 비트는 메시지를 정의하는 데 쓰인다. (표2 참조) 따라서 채널메시지는 상태바이트로 인코딩된 채널번호에 맞는 채널번호를 가진 시스템의 수신기를 위하려는 것이다. 악기는 미디메시지를 여러 채널에서 받을 수 있다. 무슨 프로그램 번호가 켜져있는가 또는 무슨 모드로 실행하는가 등의 주요 명령어를 받는 채널을 "기본채널"이라 한다. 여러 채널(기본채널 포함)에서 실행(performance) 데이터를 받도록 악기를 설정할 수 있다. 이를 "보이스채널"이라 한다. 이런 다중채널의 상황에 ..
표준 미디 파일 1.0 / 대충 청크 등등 표준 미디 파일 1.0 시퀀스, 트랙, 청크: 파일 블럭 구조 ※원문 제목은 이런데 도대체 그 "시퀀스"는 도대체 뭐냐??? 이 부분 통틀어서 시퀀스라는 단어는 단 한 번도 나오지를 안 하는구만. 으악!! 시퀀스가 도대체 뭘 말하는 건지 모르겠단 말이야 으악!! 시퀀스가 뭔지 몰라서 사망 0
미디 1.0 상세명세 / 데이터 형식 (메시지) 미디 1.0 상세명세 데이터 형식 상태바이트 하나와 뒤따르는 하나 내지 두 데이터바이트로 구성된 여러 바이트짜리 "메시지"를 통해 미디 통신은 달성된다. 실시간 및 독점 메시지는 예외이다. ※메타메시지는 미디메시지가 아니다. 미디를 장착한 악기에는 통상적으로 수신기(receiver, 받개)와 송신기(transmitter, 보내개)가 포함된다. 수신기와 송신기 중 하나만 있는 악기도 간혹 있다. 수신기는 미디 형식의 메시지를 받아서 미디명령을 수행한다. 이는 `opto-isolator 하나와 `Universal Asynchronous Receiver/Transmitter (UART), 원하는 기능을 수행하는 데 필요한 기타 하드웨어로 구성된다. 송신기는 미디형식의 메시지를 발생시키고 UART와 `line ..
미디 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에..
Sequencer 인터페이스 패키지: javax.sound.midi 모든 부모인터페이스:AutoCloseable, MidiDevice public interface Sequencer extends MidiDevice 미디시퀀스를 연주하는 하드웨어 또는 소프트웨어 장치는 ‘시퀀서’라고 알려져있다. 미디시퀀스 하나는 표준미디파일에서 읽힐 것과 같은 시간 표시된 미디데이터의 목록을 포함한다. 또한, 시퀀서 대부분은 시퀀스를 만들고 편집하는 기능을 제공한다. Sequencer 인터페이스는 다음과 같은 기초 미디 시퀀서 조작 메쏘드를 포함한다. 미디파일 데이터에서 시퀀스를 얻어내기 재생을 시작하고 멈추기 시퀀스 내 임의의 위치로 이동 재생 빠르기를 바꾸기 내부 클럭 또는 수신 된 MIDI 메시지에 재생 동기화 다른 장치의 타이밍 제어 덧붙여..
MidiSystem 클래스 패키지: javax.sound.midi java.lang.Object javax.sound.midi.MidiSystem public class MidiSystem extends Object 신디사이저, 시퀀서, 미디 입출력 포트와 같은 장치들을 포함하는 설치된 미디시스템 자원에 접근을 제공하는 클래스. 간단한 미디 응용프로그램은 MidiSystem의 메쏘드를 하나 이상 불러서 어느 장치가 설치되었는지 알아내고 응용프로그램에 필요한 것들을 얻음으로써 시작하는 것이 보통이다. 또한, 이 클래스는 파일, 스트림, 표준미디파일 데이터나 사운드뱅크들이 있는 URL을 읽는 메쏘드들을 갖고있다. 지정된 미디파일의 형식을 이 클래스에 물을 수 있다. MidiSystem은 객체화가 아니 되며 모든 메쏘드는 static이..
javax.sound.midi 패키지 미디 표준 미디 파일 입출력을 위한 클래스와 인터페이스, 시퀀싱, 미디 데이터 합성을 제공합니다. ※번역어: 도덕책 뭐라해얄지 모를 이넘의 용어들… 이미 널리 쓰이는 다른 번역어가 있는지도 잘 모르겠는 놈들. 일딴 여기에 써둠. time-stamp: 시간표지 timing division: 시분할, 시분할값 timing resolution: 해시도(解時度). 해상도에서 상을 시로 바꾼 거. 근데 솔찌 뭔소린지 모르겠다~ 헤헤 미번역 부분 앞에 ` 표시 ※단어가 쪼개지며 줄바꿈 된 건 br태그나 띄어쓰기나 SHY문자가 아니라 wbr태그로 된 거라 그냥 긁어서 복사해도 문제X 인터페이스 요약 식별자 설명 ControllerEventListener `The ControllerEventListener interf..