최근 수정 시각 : 2024-11-02 13:12:34

Max(프로그래밍 언어)

MAXMSP에서 넘어옴
🔊 음향 소프트웨어
{{{#!wiki style="margin: -0px -10px -5px; min-height: 26px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -6px -1px -11px; letter-spacing: -.5px; word-break: keep-all"
<colbgcolor=#f6f6f9,#2f3241><colcolor=#000,#fff> DAW Ableton Live · ACID Pro · Adobe AuditionK · Bitwig StudioK · Cubase · FL StudioB · Logic ProBK · 디지털 퍼포머 · Pro ToolsK · Reaper · Reason · Studio OneK · Nuendo · AudacityOFK · LMMSOFK · CakewalkF · GarageBandFBK · Music LineMK
마스터링
분석, 편집
골드웨이브K · Steinberg Wavelab · Soundforge · MasVis · Melodyne
녹음 Windows 녹음기
Sylenth1 · NEXUS · Serum · Massive · Omnisphere · Vital$ · KORG Collection · Ozone · VOCALOIDK[1] · 보카리나K · 보이스웨어 · 소프토크 · CeVIO · UTAUK[2] · Synthesizer VK[3]
시벨리우스$B · FinaleX · MuseScoreOFK · NoteWorthy Composer · Dorico$B · Guitar Pro
DominoF
기타 MAX/MSP · ASIO · VST
관련 문서 소프트웨어/목록 · 음악 관련 정보 · 소프트웨어 신디사이저/목록
B
PC/모바일 공동지원
M
모바일 전용
O
오픈 소스
K
한국어 지원
F
프리웨어
$
유·무료 공존
X
단종

[1] VOCALOID 4 에디터만 공식 한국어 패치로 한국어 지원[2] 비공식 한글패치를 통한 한국어 지원[3] UI 한국어 지원
}}}}}}}}} ||

1. 개요2. 역사3. 구성
3.1. Max
3.1.1. 패쳐3.1.2. 오브젝트
3.1.2.1. 예시
3.1.3. 패치 코드3.1.4. 메시지
3.2. MSP3.3. Jitter3.4. Gen3.5. BEAP, Vizzie3.6. 교육기관3.7. 참조 항목

1. 개요

Max미디어 아트에 특화된 비주얼 프로그래밍 언어 및 그 개발환경이다.

전자음악 등의 순수예술 분야에서 널리 활용되고 있는 프로그래밍 툴이며, 다양한 활용 범위로 인해 인터랙티브 아티스트들도 사용하고 있다. 주로 영화음악이나 영상음악에서 활용도가 높으며, 광고음악에도 종종 사용한다. MSP만 잘 공부하면 신디사이저도 손쉽게 만들 수 있을 정도로 쓰다 보면 정말 활용도가 높은 프로그램. Ableton Live와 긴밀하게 연동되도록 만들어져있으며, Live에서 쓸 수 있는 Device를 손쉽게 만들 수 있으며, 반대로 Max로 만든 Live Device를 가져와 사용하는 것도 가능하다.[1]

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

2. 역사

출처

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에 의해 만들어졌다.

2024년 10월 31일 기준 최신 버전은 9.0.0이다.

3. 구성

3.1. Max

Max는 프로그래밍 언어 그 자체 및 개발 환경을 통칭하는 이름이다. Max 언어는 아래와 같은 요소들로 이루어져있다.

3.1.1. 패쳐

Max로 짠 프로그램 자체를 의미한다. Max의 개발 방식은 독특해서, 기본적으로 개발 단계와 런타임이 구분되지 않는다. 즉, 개발 도중에도 계속 실행이 가능하고, 실행 도중에도 계속 수정이 가능하다는 뜻이다. 따라서, 패쳐는 프로그램이기도 하면서 동시에 소스 코드이기도 하다.

좌측 하단의 자물쇠 아이콘을 통해 패쳐를 잠그면 패쳐를 수정하지 못하게 되고, 버튼이나 슬라이더 등의 조작부를 조작할 수 있게 되며, 다시 잠금을 풀면 조작부는 멈추고 패쳐를 수정할 수 있게 된다.

3.1.2. 오브젝트

오브젝트는 특정한 기능을 수행하는 함수의 역할을 하는 노드이다. 오브젝트에는 각각 입력을 받는 Inlet과 출력을 하는 Outlet이 있으며, 이들을 서로 연결해 프로그래밍을 하게 된다.

Inlet에는 두가지 종류가 있는데, 자료를 받을 때 마다 오브젝트가 트리거되는 Hot Inlet과 자료를 받기만 하고 오브젝트를 트리거시키지는 않는 Cold Inlet이 존재한다. Max 인터페이스에서 Hot Inlet은 붉은 색으로, Cold Inlet은 파란 색으로 표시된다.
3.1.2.1. 예시
  • 버튼 - 동그란 버튼으로, 누르면 Outlet으로 bang을 출력한다. Inlet에 메시지가 들어와도 마찬가지로 bang을 출력한다.
  • 토글 - X자가 그려진 버튼으로, 꺼져있을 때 누르면 켜지면서 1을, 켜졌을 때는 꺼지면서 0을 출력한다. bang을 받으면 토글 상태가 바뀌고, 0이나 1을 받으면 그에 대응하는 토글 상태가 된다.
  • print - Inlet에서 받은 메시지를 콘솔에 출력한다. Outlet은 없다.
  • metro (interval) - 켜져있는 동안 interval 밀리초마다 Outlet으로 bang을 출력한다.
  • uzi (count) - bang을 받으면 한번에 count 만큼의 bang을 맨 왼쪽 Outlet으로 내보낸다. Outlet 중에는 몇번째 bang을 내보냈는지, bang을 다 내보냈는지 알려주는 Outlet도 있다.

3.1.3. 패치 코드

오브젝트 사이를 연결하는 선을 말한다.

3.1.4. 메시지

메시지는 Outlet에서 Inlet으로 전송되는 자료를 의미한다. Max의 메시지 타입, 즉 자료형에는 기본적으로 int, float, symbol, list, signal, bang이 있는데, symbol은 다른 언어의 String과 유사한 개념이며, signal은 사운드 신호를 뜻한다. bang은 타 프로그램에는 없는 개념으로, 트리거의 역할을 하는 자료형이다. 트리거의 역할만을 하기 때문에, 자료의 내용은 따로 없으며 bang 자체가 데이터 타입이자 동시에 데이터가 된다. 이 외에도 Jitter에서 영상의 전달을 위해 쓰이는 matrix와 같은 특수한 메시지 타입도 존재한다.

특수한 종류의 개체로 메시지박스라는 것이 존재하는데, 이는 메시지를 담고 있는 컨테이너의 역할을 한다. 메시지박스의 Cold Inlet으로 메시지가 들어오면 그 메시지를 저장하고 있으며, Hot Inlet에 bang이 들어오거나 잠금 상태에서 사용자가 메시지박스를 클릭하게 되면 Outlet으로 저장 중인 메시지가 출력된다.

3.2. MSP

MSP는 Max의 사운드 라이브러리이다. 위에서 말했듯, signal이라는 특수한 메시지 타입을 사용하게 되며, signal은 형광 초록색 점선의 패치 코드를 통해 이동하게 된다. 소리라는 특성상 다른 메시지와는 다르게 44,100Hz의 주기로, 즉 1초에 44,100개의 데이터를 연속적으로 전달하게 된다. 이러한 소리 신호를 다루는 오브젝트들은 오브젝트 이름 뒤에 ~ (물결 표시)가 달려있다.
<rowcolor=#fff> 오브젝트 기능 inlet outlet 비고
cycle~[mc] 오브젝트 뒤에 입력하거나 왼쪽 inlet으로부터 받아들인 수에 해당하는 주파수의 사인파 신호를 출력한다.
cascade~
ezdac~ MSP signal을 받아 출력한다. 2 0 클릭 시 현재 열려있는 모든 patch의 ezdac~이 동시에 on/off되기 때문에 dac~를 사용하는 것이 좋다.
fffb~

3.3. Jitter

Jitter는 Max의 비주얼 라이브러리로, 동영상, 3D 등 다양한 기능을 지원한다. Jitter와 관련된 오브젝트들은 대부분 jit. 접두어를 달고 있다. 예를 들어, jit.window는 영상을 출력하는 창을 띄우는 오브젝트이다.

영상 정보는 픽셀의 비트맵 정보를 담고 있는 matrix 메시지로 전달되는데, 이는 signal 패치 코드와 유사하게, 약간 더 어두운 초록색의 패치 코드를 통해 전달된다.

3.4. Gen

Gen은 Max의 기능 중 하나로, Max의 패칭과 비슷한 방식으로 C 코드를 작성할 수 있도록 해주는 툴이다. 영상 처리와 사운드 처리에 있어서 퍼포먼스의 향상을 위해 존재하며, gen~ 오브젝트나 jit.gen 오브젝트 등을 통해 사용할 수 있다. Gen 안에서의 비주얼 노드 단위는 오브젝트가 아닌 오퍼레이터라 불리며, Gen의 특성상 Max의 오브젝트와는 다소 차이가 있다.

사용자는 비주얼 프로그래밍 언어로 작성하지만, 내부적으로 C 언어로 번역되고 컴파일되기 때문에 성능 면에서 더 뛰어날 뿐 아니라, 별도의 프로그램으로 뽑아낼 수도 있다.

3.5. BEAP, Vizzie

BEAP과 Vizzie는 각각 MSP와 Jitter를 활용해 미리 만들어 내장해놓은 서브패쳐들로, 오실레이터, 앰프, 이펙터 등 다양한 종류가 있으며, 쓰기 편하도록 UI가 정돈되어있다. 복잡한 패칭 없이 빠르게 사운드나 영상 처리를 할 수 있는 툴로써 쓸 때 적합하다.

3.6. 교육기관

국내에서는 한국예술종합학교, 서울대학교, 호원대학교, 정화예술대학교, 한양대학교, 단국대학교, 추계예술대학교, 서울예술대학교, 동아방송예술대학교, 국제예술대학교 등의 현대 음악을 주로 가르치는 작곡과, 실용음악과(전자음악전공)에서 전문적으로 가르치고 있으며, 서강대학교 Art&Technology 전공과 같이 미디어 아트를 다루는 곳에서도 교육한다. 인천과학예술영재학교의 융합 교과 '음악과 테크놀로지'에서도 기본적인 Max 교육을 실시하고 있다. 한국영상대학교에서도 "사운드 신세시스"라는 교과를 중심으로 Max수업을 통한 신세시스 교육을 진행하고 있어 점점 관련 교육기관의 범위가 확대되어 감에 따라 이 프로그램의 활용 범위나 보급률은 높아질 것이라 생각된다.

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

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

3.7. 참조 항목



[1] Live 전용 Device는 사용할 수 없다.[2] 이에 비해 Max는 정가 $399의 상용 소프트웨어다. 다만, 월 $9.99 혹은 연 $99의 구독형 라이선스 옵션도 존재하며, 교육 할인과 이전 버전 유저에게 할인해주는 제도 또한 존재한다.[mc] mc. 지원