Soundbank

Soundbank

Synthesizer에 로드할 수 있는 Instrument 집합을 담는 soundbank를 나타내는 인터페이스예요. Java Sound의 Soundbank는 MIDI 뱅크와는 달라요.

출처: Java API Reference

본문

javax.sound.midi 패키지에 속하는 인터페이스예요.

MIDI는 최대 16383개의 뱅크를 허용하고, 각 뱅크는 최대 128개의 악기(때로 프로그램, 패치, 탬버라고도 불림)를 담아요. 하지만 Soundbank는 16383 곱하기 128개의 악기를 담을 수 있어요. Soundbank 안의 악기는 MIDI 프로그램 번호와 MIDI 뱅크 번호로 모두 인덱싱되기 때문이에요(Patch 객체를 통해). 따라서 Soundbank는 MIDI 뱅크들의 모음으로 생각할 수 있어요.

Soundbank는 사운드 뱅크의 이름, 제조사, 버전 번호, 설명을 담은 String 객체를 반환하는 메서드를 포함해요. 이 문자열들의 정확한 내용과 형식은 구현자에게 맡겨져 있어요.

다른 신디사이저들은 다양한 합성 기법을 사용해요. 흔한 것 중 하나는 웨이브테이블 합성으로, 녹음된 사운드의 한 부분을 루핑과 피치 변경을 적용해 재생해요. 웨이브테이블 합성에 기반한 SoundbankInstrument는 일반적으로 getResources() 메서드를 구현해 녹음된 부분에 접근을 제공해야 해요. 하지만 이는 선택 사항으로, 합성 기법이 샘플링 사운드를 사용하지 않거나(FM 합성, 물리 모델링이 예) 구현자가 샘플을 접근 가능하게 하지 않기로 했다면 메서드는 길이가 0인 배열을 반환할 수 있어요.

getName

String getName()

사운드 뱅크의 이름을 얻어요.

  • 반환값: 사운드 뱅크 이름을 나타내는 String

getVersion

String getVersion()

사운드 뱅크의 버전 문자열을 얻어요.

  • 반환값: 사운드 뱅크 버전을 나타내는 String

getVendor

String getVendor()

사운드 뱅크를 제공하는 회사를 나타내는 문자열을 얻어요.

  • 반환값: 벤더 문자열

getDescription

String getDescription()

표시에 적합한 사운드 뱅크의 텍스트 설명을 얻어요.

  • 반환값: 사운드 뱅크를 설명하는 String

getResources

SoundbankResource[] getResources()

사운드 뱅크에 포함된 비-Instrument 리소스 목록을 추출해요.

  • 반환값: 악기를 제외한 리소스 배열. (악기 외에) 리소스가 없으면 길이가 0인 배열

getInstruments

Instrument[] getInstruments()

이 사운드 뱅크에 포함된 악기 목록을 얻어요.

  • 반환값: 이 SoundBankInstrument 배열. 악기가 없으면 길이가 0인 배열

getInstrument

Instrument getInstrument(Patch patch)

주어진 Patch에서 Instrument를 얻어요.

  • 파라미터 patch: 뱅크 인덱스와 프로그램 변경 번호를 지정하는 Patch 객체
  • 반환값: 요청된 악기. 사운드 뱅크에 그 악기가 없으면 null

더 알아보기