Season 01 · EP03 소리 내기 - cycle~, gain~, ezdac~ 썸네일
← 튜토리얼Season 01 · EP03 · Max/MSP 입문

소리 내기 - cycle~, gain~, ezdac~

MSP 오브젝트로 사인파를 생성하고 스피커로 출력하는 오디오 체인을 만듭니다.

난이도: 초급 예상 시간:

이 에피소드에서 배우는 것

  • MSP 오브젝트로 소리를 생성하는 방법
  • cycle~의 기본 사용법
  • gain~으로 볼륨 조절하기
  • ezdac~로 스피커 출력하기

사전 지식

  • EP02: 첫 번째 패치 만들기

첫 번째 소리 만들기

지금까지 Max의 기본 구조를 배웠으니, 이제 실제로 소리를 만들어볼 차례이다. Max에서 소리를 다루려면 MSP 오브젝트를 사용해야 한다. MSP 오브젝트는 이름 끝에 ~(틸드)가 붙어있다는 것을 기억하자.

소리를 만드는 가장 기본적인 방법은 오실레이터를 사용하는 것이다. 오실레이터는 일정한 주기로 반복되는 파형을 생성하는 장치이며, 이 파형이 스피커를 통해 재생되면 우리가 인식하는 “소리”가 된다.

cycle~ - 사인파 오실레이터

Max 오브젝트 창에 cycle~을 입력하면 자동완성으로 관련 오브젝트들이 표시된다

[cycle~]은 Max에서 가장 기본적인 오실레이터이다. Cosine(코사인) 파형을 생성하며, 내부에 512 샘플 길이의 사인 파형 웨이브테이블을 내장하고 있다.

[cycle~ 440]이라고 입력하면 440Hz의 사인파를 생성한다. 440Hz는 피아노의 가운데 A음(A4)의 주파수로, 음악에서 표준 튜닝 기준으로 사용된다.

오브젝트 이름 옆의 숫자 440은 초기값(Initial Value)을 의미한다. 패치가 실행될 때 이 값으로 오실레이터가 시작된다.

cycle~에는 두 개의 입력(Inlet)이 있다.

  • In1 (왼쪽): 주파수 입력. Hz 단위로 숫자를 보내면 음의 높이가 바뀐다.
  • In2 (오른쪽): 위상(Phase) 입력. 0에서 1 사이의 값으로, 파형의 시작점을 조절한다.
cycle~ 440의 두 Inlet — 왼쪽은 Frequency(Hz), 오른쪽은 Phase(0-1)

참고로 A4(라) 음정의 표준 튜닝은 440Hz이다. 전자 튜너 앱에서도 이 값이 기준이 된다.

Diapason 튜너 앱 — A4가 440Hz로 표시되는 것을 확인할 수 있다

phasor~ - 램프 제너레이터

[phasor~]는 또 다른 중요한 오실레이터이다. 0에서 1까지 직선으로 올라가는 톱니파(Sawtooth) 형태의 신호를 생성한다. 단, phasor~가 만드는 톱니파는 Unipolar(0~1 범위)이며, Anti-aliasing이 적용되어 있지 않다.

phasor~는 오디오 신호를 직접 듣기보다는 다른 용도로 많이 사용된다. 다른 오실레이터의 위상을 동기화하거나, LFO(Low Frequency Oscillator)로 사용하거나, 나중에 배울 웨이브테이블을 스캔하는 데 핵심적인 역할을 한다.

number~ - MSP 신호 모니터링

[number~]는 MSP 신호의 현재 값을 숫자로 보여주는 오브젝트이다. 오디오 신호는 초당 수만 번 값이 바뀌므로 number~는 일정 간격으로 샘플링하여 대표값을 보여준다. 오디오 신호가 어떤 범위의 값을 가지는지 확인할 때 유용하다.

오디오 출력 체인

가장 단순한 오디오 출력 체인 — cycle~ 440 → gain~ → ezdac~(스피커)

소리를 스피커로 내보내려면 세 가지 오브젝트를 연결해야 한다.

  1. 오실레이터 ([cycle~ 440]): 소리 생성
  2. gain~ ([gain~]): 볼륨 조절. 반드시 거쳐야 한다. 처음 소리를 확인할 때는 볼륨을 낮게 시작하는 것이 안전하다. 급작스러운 큰 소리는 청력에 해롭고 스피커를 손상시킬 수 있다.
  3. ezdac~ ([ezdac~]): Digital-to-Analog Converter. 디지털 신호를 스피커가 이해하는 아날로그 신호로 변환하여 출력한다. 클릭하면 DSP가 켜지고 소리가 나기 시작한다.

ezdac~는 DSP 활성화 버튼이 내장된 버전이며, 스테레오(2채널) 출력만 지원한다. 멀티채널 출력이 필요하면 [dac~] 오브젝트를 사용한다. 마찬가지로 마이크 입력에는 [adc~] 또는 [ezadc~]를 사용한다.

adc~(마이크/입력)와 dac~(스피커/출력) — 인자로 채널 번호를 지정할 수 있다

오디오 파일 재생하기

Max에서 오디오 파일을 재생하는 방법도 간단하다. Patcher 창에 오디오 파일을 드래그 앤 드롭하면 [playlist~] 오브젝트가 자동으로 생성된다. 또는 [sfplay~] 오브젝트를 사용하여 프로그래밍 방식으로 오디오 파일을 불러올 수도 있다.

sfplay~에 보낼 수 있는 주요 메시지들 — open(파일 열기), toggle(재생/정지), pause/resume, seek, loop $1 등

핵심 오브젝트 정리

오브젝트역할비고
[cycle~]Cosine 오실레이터웨이브테이블 방식, 512 샘플
[phasor~]Ramp generator (0~1)Anti-aliasing 없음
[number~]MSP 신호값 모니터링-
[gain~]오디오 볼륨 조절MSP 전용
[ezdac~]오디오 출력 (스테레오)클릭으로 DSP on/off
[ezadc~]오디오 입력 (스테레오)마이크 등
[sfplay~]오디오 파일 재생-

직접 해보기

  1. [cycle~ 440][gain~][ezdac~]를 연결하여 사인파를 들어보자
  2. cycle~의 주파수를 220, 880 등으로 바꿔서 음의 높이가 변하는 것을 확인하자
  3. number~를 cycle~의 출력에 연결하여 -1에서 1 사이를 오가는 것을 관찰하자

다음 에피소드 예고

다음 에피소드에서는 Max가 다루는 데이터의 종류를 자세히 살펴본다. 정수, 소수, 문자열, 리스트, 시그널 등 각 데이터 타입의 차이와 사용법을 배운다.

자주 묻는 질문

  • 왜 440Hz를 기준으로 쓰나요?

    440Hz는 피아노의 A4(가운데 라) 음에 해당하는 주파수로, 1955년 ISO 16에서 표준 콘서트 피치(A=440Hz)로 공식 채택되었습니다. 거의 모든 전자 튜너, 신디사이저, 오케스트라 튜닝의 기준이 이 값이며, Max에서 cycle~의 인자로 440을 자주 쓰는 것도 같은 이유입니다.

  • ezdac~과 dac~의 차이는 무엇인가요?

    ezdac~은 DSP On/Off 버튼이 박스 안에 내장된 "easy" 버전으로 클릭만으로 오디오 출력을 켜고 끌 수 있지만 스테레오(2채널)만 지원합니다. dac~은 인자로 채널 번호를 지정해 멀티채널(서라운드, 다중 출력 인터페이스 등) 출력을 다룰 수 있는 범용 버전입니다. 마이크/입력 측에는 같은 관계로 ezadc~과 adc~이 존재합니다.

  • DSP를 켰는데 소리가 안 들립니다. 무엇을 확인해야 하나요?

    다음 순서로 확인합니다. (1) ezdac~의 스피커 아이콘이 파란색으로 활성화되었는지, (2) gain~ 슬라이더가 0이 아닌지, (3) Options → Audio Status 창에서 출력 디바이스가 실제로 사용 중인 인터페이스로 설정되어 있는지, (4) 시스템 볼륨과 인터페이스의 물리적 볼륨, (5) cycle~의 주파수가 가청 범위(20Hz~20kHz) 안인지. 대부분의 "소리 안 남" 문제는 Audio Status에서 출력 장치 설정으로 해결됩니다.

  • phasor~와 cycle~은 어떻게 다른가요?

    cycle~은 -1과 1 사이를 매끄럽게 오가는 코사인 파형을 만드는 사인 오실레이터로, 듣기 좋은 순수한 톤을 출력합니다. phasor~는 0에서 1까지 직선으로 올라갔다가 0으로 떨어지는 톱니파(unipolar sawtooth)를 만드는데, 들으려고 쓰기보다는 다른 오실레이터의 위상 동기화, LFO, 웨이브테이블 스캔 등 "제어 신호"로 더 많이 사용됩니다. 또한 phasor~는 안티에일리어싱이 적용되어 있지 않습니다.

실습 패치 다운로드

Max 8 이상에서 열어주세요. 파일을 Max로 드래그하거나 더블클릭하면 실행됩니다.

공식 문서 참조

YouTube

채널에서 더 많은 Max/MSP 예제를 이어서 보세요

튜토리얼의 흐름을 끊지 않고, 실제 영상 데모와 채널 콘텐츠를 연속해서 확인할 수 있습니다.

카톡 문의