Post

MIDI에서 SFZ 포맷이란?

MIDI에서 SFZ 포맷이란?

SFZ 포맷

확장자 SFZ 파일은 가상 악기용 샘플 기반 음원을 정의하는 텍스트 기반 포맷입니다. 주로 샘플러(VSTi 등)에서 다양한 악기 소리를 재생하기 위해 사용됩니다.

SFZ란?

  • 확장자: .sfz
  • 형식: 텍스트(ASCII)
  • 역할: 오디오 샘플(WAV 등)의 배치/맵핑 정보를 정의
  • 개발자: Cakewalk (RGC:audio)

어떻게 동작하나요?

  1. 여러 개의 WAV 샘플이 있음 (예: 각 음정별로 녹음된 피아노 소리).
  2. sound.sfz 파일에서 각 샘플을 어떤 음정, 어떤 속도, 어떤 벨로시티에서 재생할지를 정의.
  3. 샘플러(예: Sforzando, ARIA, Kontakt 등)가 .sfz를 읽어 악기처럼 재생.

예시

<region>
sample=note_C4.wav
lokey=60
hikey=60
pitch_keycenter=60

이건 C4(MIDI 60)에서만 note_C4.wav 샘플이 재생되도록 설정한 예입니다.

SFZ의 특징

장점 단점
텍스트 기반으로 가볍고 수정 쉬움 GUI 지원 부족 (직접 코딩해야 함)
무료 사용 및 확장 용이 복잡한 기능은 표현에 제약이 있음
다양한 무료/유료 라이브러리 존재 제작 시 구조를 잘 이해해야 함

어디에 쓰이나요?

  • 디지털 오디오 워크스테이션(DAW)에서 가상악기 로딩
  • 무료/오픈소스 샘플러에서 악기 정의
  • 게임 사운드 또는 개인 음악 제작용

코드 예제

<group>lokey=0 hikey=127 pitch_keycenter=57 pitch_keytrack=100
<region>lovel=000 hivel=127 amp_velcurve_127=1 loop_mode=loop_continuous loop_start=0 loop_end=220 sample=basicSamples/saw220.wav

해설

1. <group> 라인

<group>lokey=0 hikey=127 pitch_keycenter=57 pitch_keytrack=100
  • <group>: 이 뒤에 오는 <region>들에 공통으로 적용될 설정을 정의합니다.
  • lokey=0: 이 그룹의 음역 최소값은 MIDI 키 0 (C-1)입니다.
  • hikey=127: 최대값은 MIDI 키 127 (G9)입니다. → 모든 건반에 적용됨
  • pitch_keycenter=57: 이 샘플의 기준 피치는 MIDI 57 (A3)입니다.
  • pitch_keytrack=100: 피치 트래킹 100% → 누르는 키에 따라 정확히 해당 음정으로 피치 변경됩니다.

2. <region> 라인

<region>lovel=000 hivel=127 amp_velcurve_127=1 loop_mode=loop_continuous loop_start=0 loop_end=220 sample=basicSamples/saw220.wav
  • <region>: 실제 샘플을 매핑하는 설정입니다.
  • lovel=000 / hivel=127: 이 region은 모든 velocity(세기) 구간(0~127)에서 작동합니다.
  • amp_velcurve_127=1: velocity가 127일 때는 볼륨 1.0(최대)로 재생됩니다. → velocity에 따른 볼륨 곡선을 정의하는 파라미터.
  • loop_mode=loop_continuous: 샘플을 끝없이 루프 재생합니다.
  • loop_start=0 / loop_end=220: 0프레임부터 220프레임까지 루프합니다. → wav 파일 내에서 해당 영역이 반복됨.
  • sample=basicSamples/saw220.wav: 실제 재생할 샘플 파일 경로입니다. → basicSamples 폴더에 있는 saw220.wav라는 웨이브 파일 사용.

🎹 결과적으로 어떤 소리가 나나요?

  • 사용자가 어떤 키를 누르든 (0~127), 어떤 velocity로 누르든 (0~127)
  • saw220.wav 파일이 기준음 A3로 pitch-shift 되어 재생됨.
  • 소리는 0~220 프레임 사이를 무한 루프하며 지속됨.
  • velocity가 클수록 소리 크기는 커짐 (최대 127에서 1.0)
This post is licensed under CC BY 4.0 by the author.