본문 바로가기

만들기 / Programming/MAXMSP,Jitter

미디(MIDI)

개관과 상세한 설명

미디 메시지(MIDI Messages)


하나의 미디 메시지는 상태 바이트로 구성되어있습니다. 미디 메시지는 메시지의 종류를 구분하고, 대부분의 경우 하나 이상의 데이터 바이트가 따라옵니다. 중요한 데이터 바이트 중에서 가장 중요한 부분은 항상 0입니다. 반면 상태 바이트의 가장 중요한 부분은 1입니다. 시스템 배타적인 메시지(System Exclusive messages)를 제외하고, 상태 바이트는 정확하게 몇 개의 데이터 바이트를 뒤에 달고 있느냐에 따라 구분됩니다. 시스템 배타적인 메시지는 신디사이저 패치 덤프(synthesizer patch dumps)나 파라미터 변환(parameter changes)을 위해 사용됩니다.

미디 오브젝트(MIDI Objects)

맥스의 미디 오브젝트는 입력되는 메시지에서 본질적인 데이터를 추출합니다. 그래서 여러분이 미디 메시지의 구조의 세세한 부분을 알아야 할 필요는 없습니다. 이런 오브젝트는 아래의 표에 나와 있습니다. 표에는 각 미디 메시지의 종류 또한 설명해 놓았습니다.

만약 미디 메시지를 보내고 받는 모든 과정을 직접 다루고 싶다면, midiin 이나 오브젝트를 사용하면 됩니다. midiparse 이나 midiformat 오브젝트는 원래의 미디 메시지를 걸러서 포맷합니다. 그리고 midiout 오브젝트에서 전송되는 시스템 배타적 명령을 포맷하는 것을 돕습니다.

맥스에서 미디 데이터를 다루는 것을 돕기 위해서, 여기에 두 개의  참고 일람표를 제시해놓았습니다. 첫번째 표는 미디 메시지의 종류를 구별하고 포맷을 보여줍니다. 두 번째 표에는 각각의 특별한 기능에 할당된 (미디 컨트롤 변환 메시지의 두 번째 바이트인) 컨트롤러 넘버를 구별해 놓았습니다.

미디 메시지(MIDI Messages)

채널 메시지(Channel Messages)채널 메시지는, 메시지의 미디 채널을 표시하기 위해, 4비트 보다 낮은 상태 바이트를 사용합니다. 0은 미디 채널 번호가 1입니다. 15는 미디 채널 번호가 16입니다.

미디 사용하기(Using MIDI)

윈도우에서, 컴퓨터에 올바르게 연결되어 있고, 사운드와 오디오 장치 속성 이라는 항목에 나타나는, 모든 미디 장치는, 미디 입/출력용(MIDI I/O)의 Max/MSP에서 사용할 수 있습니다.

맥킨토시에서, 애플스 코어 미디 시스템(Apple's Core MIDI system)은 미디 인터페이스를 다루고 소통하는 데에 쓰입니다. 애플스 코어 미디 시스템(Apple's Core MIDI system)은 OS X 위에 이미 설치되어 있고, 언제든지 사용이 가능합니다. OS X application Audio MIDI Setup이라는 항목은 Applications 폴더 안에 있는 Utilities 폴더 위치에 있습니다. 이것으로 MIDI setup을 Core MIDI에 셋업하거나, 설명을 참조할 수 있습니다.

미디 셋업창 사용하기Using the MIDI Setup Window

맥스 프로그램은 여러 개의 미디 포트를 (a-z까지의) 글자나, 16이상의 미디 채널 번호를 사용해서 구별합니다. 이것은 코어 미디 장치(Core MIDI device) 이름과 맥스 레터링 설계(Max lettering scheme) 사이에 특정한 분량의 번역을 필요로 합니다. 이런 번역을 수행하기 위해서 미디 셋업창을 사용할 수 있습니다. 미디 셋업창이 화면에 나타나게 하려면, 파일 메뉴에서 미디 셋업…(MIDI Setup...)을 선택하세요.

미디 셋업창에는 미디 장치의 이름이 열거되어있습니다. 그리고 알파벳으로 된 약어와 미디 채널의 범위를 연결할 수가 있습니다.

알파벳으로 된 약어와 미디 채널의 범위를 장치에 할당하려면, 팝업 메뉴에서 원하는 값을 선택하세요. 약어를 사용하면, 장치 이름 대신 notein 이나 과 같은 미디 오브젝트에 변수를 쓰기만 해도 됩니다. 채널 가지는 입력되는 데이터의 미디 채널에 덧붙여집니다. 이렇게 해서 미디 오브젝트가 여러 개의 장치에서 정보를 받거나 장치로 정보를 내보낼 때,  각 장치들을 구별할 수 있습니다. 예를 들어, 어떤 장치에 32번 채널 가지가 할당되었다면, 맥스로 보내진 음표가 있는 메시지는 notein 오브젝트의 33번 채널에서 출력됩니다. 마찬가지로 인렛으로 33번을 noteout 오브젝트의 미디 채널 인렛으로 보낸다면, 왼쪽 인렛으로 보내진 뒤따라 나오는 숫자는, 채널 가지가 32번인 장치를 위해, 1번 미디 채널에 음표 메시지를 산출할 것입니다.

미디 오브젝트를 위한 초기 설정 장치들(Default Devices for MIDI Objects)

만약 장치 이름을 지정하지 않고 미디 출력 오브젝트를 만든다면, 그 오브젝트는 미디 셋업창에서 출력 장치 목록 중에서 제일 위에 있는 장치로 미디의 메시지를 보낼 것입니다.

만약 미디 입력 오브젝트를 만들고서 특정한 포트를 할당하지 않았다면(말하자면 변수로서 미디 장치 이름이나 약어가 없는 오브젝트라면), 모든 입력 장치가 섞여버리게 될 것입니다. 이러한 경우에, 이 맥스 패치가 오브젝트의 실제적인 입력 소스가 어느 장치인지를 알아볼 수 있게 하는 유일한 방법은, 각 장치에 할당된 미디 채널 가지와 입력되는 미디 채널 번호를 비교하는 것입니다. 만약 소스와 상관없이, 모든 미디 입력 내용을 구별해서 다루기를 원한다면 이런 방법을 사용하면 유용할 것입니다.

midiin 오브젝트는 이런 경우에서 예외입니다. 변수에 아무런 장치도 지정되어 있지 않은 경우에 midiin 오브젝트는 입력 장치 목록에서 제일 첫번째 장치에서만 데이터를 받습니다. 만약 여러 개의 장치가 같은 알파벳 약어를 사용하고 있다면, 맥스는 그 약어를 변수로 사용해서 미디 입력/출력 오브젝트를 만들었을 당시, 목록의 제일 위에 있었던 것을 사용할 것입니다. 장치의 약어를 바꾸는 것은 원래 있는 오브젝트에 아무런 영향도 미치지 않습니다. 그래도 그렇게 하면 변수로 약어와 함께 미디 출력 오브젝트로 보낸, 다음에 뒤따라 나오는 포트 메시지의 의미에 영향을 미칠 수는 있습니다.

초기 설정 셋업 쉽게 하기(Easy Default Setup)

모든 장치의 약어와 채널 가지를 설정하려면, 자동으로 셋업하기(Auto Setup) 버튼을 클릭하세요. 그러면 입력 장치와 출력 장치 모두에, 표준적인 약어 묶음과 채널 가지를, 맥스 프로그램이 알아서 만들 것입니다. 목록의 제일 첫번째 장치는 a라는 약어와 채널 가지 0번이 할당될 것입니다. 두 번째 장치에는 b와 16번 채널과 같은 식으로.

맥킨토시에서 실제적인 입력 출력 장치(Virtual Input and Output Devices on Macintosh)

미디 메시지를 컴퓨터에서 사용하는 다른 프로그램으로 보내거나, 다른 프로그램에서 맥스로 미디 메시지를 보내기 위해 사용하는 입력 출력 장치에는 두 가지가 있습니다.

출력 장치는 실제적인 소스입니다. 이것은 맥킨토시의 미디 셋업창에서  “from Max/MSP 1” 와 “from Max/ MSP 2” 라고 표시되어 있습니다. 이 두 개의 출력 장치는 다른 프로그램을 위한 미디 소스이며, 맥스에서 미디 연결을 만들기 위해 다른 프로그램 안에서 미디 입력으로 선택할 수 있습니다.

“to Max/MSP 1”와 “to Max/MSP 2” 로 표시된 입력 장치는 실제적인 목적지라고 알려져 있습니다. 왜냐하면 이것을 다른 프로그램 안에서 미디 출력 장치로 선택할 수가 있기 때문입니다.

여기에 미디 메시지를 맥스로 보내기 위해서 맥킨토시 미디 키(MIDIKeys) 프로그램을 사용하는 예가 있습니다. 목적지는 Max/MSP 1 이라고 표시되어 있습니다. 그래서 키보드를 치면, 미디 메시지는 맥스의 실제적인 목적지로 보내질 것입니다.

Listen to port도 마찬가지입니다. : 팝업 메뉴에서는 Max/MSP 1에서 나오는 실제적인 소스를 보여줍니다. 만약 미디 음표가 Max/MSP 1 장치에서 보내진 것이라면, 그 음표들은 미디 키의 키보드에 표시될 것입니다.

다른 것도 참조(See Also)

포트(Ports)        
미디 포트가 구분되는 방법

시간 설정(setclock)  
시간 조절 오브젝트의 시간 속도를 조정합니다.                      


'만들기 / Programming > MAXMSP,Jitter' 카테고리의 다른 글

Max의 역사  (0) 2008.10.04
포트(Ports)  (0) 2008.10.04
단축키(Shortcuts)  (0) 2008.10.04
오브젝트(Objects)  (0) 2008.10.04
메뉴  (0) 2008.10.04