MAX/MSP

< MAX

1 개요

Max는 미디어 아트에 특화된 비주얼 프로그래밍 언어 및 그 개발환경이다. Max는 크게 Max, MSP, Jitter로 구성되어 있으며, 이 중 MSP는 사운드 파트, Jitter는 영상 파트를 지칭한다.

국내에서는 많이 생소한 분야인 전자음악 등의 순수예술 분야에서 널리 활용되고 있는 프로그래밍 툴이며, 다양한 활용 범위로 인해 미술쪽의 인터랙티브 아티스트들도 사용하고 있다. 주로 영화음악이나 영상음악에서 활용도가 높으며, 광고음악에도 종종 사용한다. MSP만 잘 공부하면 신디사이저도 손쉽게 만들 수 있을 정도로 쓰다 보면 정말 활용도가 높은 프로그램.

비슷한 언어로 Pure Data 가 존재하며 Max와는 다르게 리눅스 베이스의 오픈소스 프로그램이다.[1]

1.1 역사

출처

1986년에 프랑스의 IRCAM(Institte de Recherche et Coordination Acoustique/Musicue의 약칭으로 파리의 퐁피두 센터에 인접해 있는 국립 음향 음악 연구소)에서 Miller Puckette를 중심으로 Max의 개발이 시작되었다. 당시 Max는 거대한 4X 신디사이저를 제어하기 위하여 만든 일종의 음악용 프로그래밍 환경으로 개발되었다. Max는 미디(MIDI) 기능을 중심으로 오브젝트와 패치 코드라는 그래픽적인 프로그래밍 스타일을 갖춘 매킨토시용 애플리케이션으로써 완성되었고, 1990년에 Intelligent Music사로부터 시판 패키지로 배포되어 다음해인 1991년에 Opcode사에서 발매되었다.

Max는 1995년에 멀티미디어 기능을 대폭 확장하여 Max 3.0으로 버전 업 되었고, 1996년 12월에는 파워PC에 대응한 Max 3.5가 발표되어 고속처리를 실현하였다. 1997년 12월, MSP가 Max에 추가되면서 디지털 신호처리(DSP) 기능이 가능해졌고 미디와 외부 음원에 의존하지 않고 컴퓨터 자체가 음향을 직접 생성할 수 있는 환경을 제공하였다. 그 후 Opcode사로부터 Max의 판매권을 얻어서 Cyclyng’74에서 Max를 발매하였다.

1999년에 영상 처리 기반의 nato와 2000년에는 영상 처리를 가능하게 해주는 Jitter와 OpenGL 기반의 3D CG 구현 소프트웨어인 GEM for Macintosh가 출시되었다. 2001년 6월에는 Max4.0과 MSP2.0이 발표되었다. Max4.0에서는 많은 윈도우가 Max 자체에 기술되어, 독자의 스크립트 기능을 갖는 등 기본 구조에 있어서 대폭적인 개선이 있었다. 또 레이어 구조와 인스펙터 등의 편집 기능이 향상되었고, 오리지널 유저 인터페이스를 작성하는 기능도 추가되었다. MSP2.0도 기본적인 DSP 기능을 향상시키고, 견고하고 유연한 오디오 입·출력 기능을 갖추게 되었고, Jitter가 플러그인으로 추가되면서 다양한 영상 처리가 가능하게 되었다. 지금은 Max 6이 출시되면서 Max/MSP/Jitter가 Max 6으로 통일되었다.

Max라는 명칭은 컴퓨터 음악과 디지털 신호 처리에 있어서 중요한 공헌을 한 Max V. Mathews에게서 유래하였고, 오늘날 우리가 보는 것과 같은 Max는 1989년부터 개발에 참가한 David Zicarelli에 의해 만들어졌다.[2]

2 주요 Object

Max에서의 Object란 일반적인 비주얼 프로그래밍 언어의 노드에 대응하는 개념이다. 특정 명령어나 연산자, 구문 등을 나타내며, 여러가지 다른 Object를 서로 연결해 프로그래밍을 하게 된다. 또한, 여러 Object를 연결한 덩어리를 다시 추상화해서 하나의 Object로 나타낼 수도 있다.

아래는 기본으로 제공되는 Object의 몇가지 예시다.

2.1 Max

2.1.1 Button

버튼 오브젝트는 한번 눌렀을 때 한번 Bang을 출력한다. 여기서 Bang이란 Max에만 존재하는 특수한 자료형으로, 트리거의 역할을 하게 된다.

2.1.2 Toggle

토글 오브젝트는 말 그대로 토글 스위치의 역할을 한다. 체크박스처럼 한번 누르면 켜지고, 다시 누르면 꺼진다. 켜지면 1을, 꺼지면 0을 출력한다. Bang을 입력받으면 토글되며, 0을 입력받으면 꺼지고, 그 외의 다른 값을 입력받으면 켜진다.[3]

2.1.3 Print

다른 프로그래밍 언어의 Print 명령어와 같은 역할, 즉 콘솔 창에 입력받은 값을 출력한다.

2.1.4 Metro

뒤에 받은 인자에 따라 특정 시간 간격으로 Bang을 내보낸다. 예를 들어 metro 1000이라고 입력하면 1000밀리초, 즉 1초 간격으로 Bang을 출력한다.

2.1.5 Uzi

한번에 여러개의 Bang을 내보낸다. 예를 들어 uzi 5라고 입력하고, 입력에는 버튼을, 출력에는 print를 연결하면 버튼을 누를 때 마다 5번씩 콘솔에 bang을 출력한다.

2.2 MSP

2.2.1 ezdac~

소리를 입력받아 신호를 처리한다. 즉, 마이크 소리를 받아오는 오브젝트.

2.2.2 ezadc~

위와는 반대로, 내부에서 만든 신호를 출력한다. 즉 스피커로 소리를 내보내는 오브젝트.

2.2.3 saw~, rect~, tri~ 등

해당 오브젝트에 대응하는 파형의 소리 신호를 발생시킨다. 따라서 이를 ezadc~ 오브젝트와 연결하면 소리가 난다.

2.3 교육기관

국내에서는 한국예술종합학교, 서울대학교, 추계예술대학교 등의 현대 음악을 주로 가르치는 작곡과에서 전문적으로 가르치고 있으며, 서강대학교 Art&Technology 전공과 같이 미디어 아트를 다루는 곳에서도 교육한다. 점점 관련 교육기관의 범위가 확대되감에 따라 이 프로그램의 활용 범위나 보급률은 높아질 것이라 생각된다.

기본적으로 괜찮은 퀄리티의 튜토리얼과 레퍼런스가 제공되기 때문에, 영어 실력만 어느정도 있다면 이를 참고하며 배우는 것도 좋은 방법이다. Max를 설치한 뒤, File Browser를 살펴보면 튜토리얼을 찾을 수 있다.

국내에는 Max 커뮤니티가 있지만 활동이 없다고 보아도 무방한 상태, 매뉴얼 마저도 영어로 되어 있는지라 자신의 독해 실력이 부족하거나 패치에서 알 수 없는 버그가 일어난다면 어떻게 해서든 인터넷을 통해 도움을 얻도록 하자. 사설 교육기관으로는 메이크프로세싱이라는 곳이 있긴 하다.

2.4 참조 항목

  1. Max는 정가 $399의 상용 소프트웨어다. 다만, 월 $9.99 혹은 연 $99의 구독형 라이선스 옵션도 존재하며, 교육 할인과 이전 버전 유저에게 할인해주는 제도 또한 존재한다.
  2. 출처 추가바람
  3. 다른 값을 입력받은 경우, 출력도 해당 값을 출력한다. 예를 들어 20을 입력하면 켜진 상태이지만, 1이 아닌 20을 출력한다.