SoundbankResource

SoundbankResource

Soundbank에 저장된 모든 오디오 리소스를 나타내는 추상 클래스예요. 일반적인 soundbank 리소스로는 악기, 오디오 샘플, 내장 시퀀스가 있어요.

출처: Java API Reference

본문

javax.sound.midi 패키지에 속하는 추상 클래스로, java.lang.Object를 상속하고 Instrument가 직접 하위 클래스예요.

  • 악기(Instruments): 악기는 다양한 방식으로 지정될 수 있지만, 모든 soundbank는 악기를 정의하는 메커니즘을 가져요. 그 과정에서 soundbank에 저장된 다른 리소스를 참조할 수 있어요. 각 악기는 MIDI 메시지에서 참조되는 MIDI 프로그램과 뱅크를 지정하는 Patch를 가져요. 악기 정보는 Instrument 객체에 저장돼요.
  • 오디오 샘플(Audio samples): 샘플은 보통 1초의 일부 또는 최대 몇 초 길이의 짧은 사운드 녹음을 담은 샘플링된 오디오 파형이에요. Synthesizer가 MIDI 명령에 응답해 소리를 합성하거나, 응용 프로그램이 추출해 사용할 수 있어요. 오디오 샘플의 데이터 클래스는 샘플 데이터 자체와 해석 방법(오디오 데이터 형식)을 캡슐화하는 객체(예: AudioInputStream)예요.
  • 내장 시퀀스(Embedded sequences): 사운드 뱅크는 Sequence 같은 데이터 객체에 저장된 내장 노래 데이터를 담을 수 있어요.

웨이브테이블 합성 같은 기법을 사용하는 신디사이저는 음을 합성할 때 샘플의 오디오를 재생해요. 하지만 SoundbankInstrument와 샘플 사이에 반드시 일대일 대응이 있는 건 아니에요. 단일 Instrument가 여러 SoundbankResource를 사용할 수 있고(보통 음높이나 밝기가 다른 음에 대해), 여러 Instrument가 같은 샘플을 사용할 수도 있어요.

public abstract class SoundbankResource extends Object

생성자

protected SoundbankResource(Soundbank soundBank, String name, Class<?> dataClass)

주어진 사운드 뱅크와 웨이브테이블 인덱스에서 새 SoundbankResource를 생성해요. (SoundbankResource의 이름, 샘플링된 오디오 데이터, 악기 설정은 하위 클래스의 책임이에요.)

  • 파라미터 soundBank: 이 SoundbankResource를 담은 사운드 뱅크
  • 파라미터 name: 샘플의 이름
  • 파라미터 dataClass: 샘플의 데이터를 표현하는 데 사용되는 클래스

getSoundbank

public Soundbank getSoundbank()

SoundbankResource를 포함하는 사운드 뱅크를 얻어요.

  • 반환값: 이 SoundbankResource가 저장된 사운드 뱅크

getName

public String getName()

리소스의 이름을 얻어요. 일반적으로 리소스를 설명하는 문자열이어야 해요.

  • 반환값: 악기의 이름

getDataClass

public Class<?> getDataClass()

이 샘플이 데이터를 표현하는 데 사용하는 클래스를 얻어요. getData가 반환하는 객체는 이 클래스의 인스턴스예요. 이 SoundbankResource 객체가 데이터에 직접 접근을 지원하지 않으면 null을 반환해요.

  • 반환값: 샘플 데이터를 표현하는 데 사용되는 클래스. 접근할 수 없으면 null

getData

public abstract Object getData()

SoundbankResource에 저장된 샘플링된 오디오를 얻어요. 반환되는 객체의 타입은 구체적 클래스의 구현에 따라 다르고, getDataClass로 질의할 수 있어요.

  • 반환값: 샘플링된 오디오 데이터를 담은 객체

더 알아보기