SoundbankResource
SoundbankResource
Soundbank에 저장된 모든 오디오 리소스를 나타내는 추상 클래스예요. 일반적인 soundbank 리소스로는 악기, 오디오 샘플, 내장 시퀀스가 있어요.
본문
javax.sound.midi 패키지에 속하는 추상 클래스로, java.lang.Object를 상속하고 Instrument가 직접 하위 클래스예요.
- 악기(Instruments): 악기는 다양한 방식으로 지정될 수 있지만, 모든 soundbank는 악기를 정의하는 메커니즘을 가져요. 그 과정에서 soundbank에 저장된 다른 리소스를 참조할 수 있어요. 각 악기는 MIDI 메시지에서 참조되는 MIDI 프로그램과 뱅크를 지정하는
Patch를 가져요. 악기 정보는Instrument객체에 저장돼요. - 오디오 샘플(Audio samples): 샘플은 보통 1초의 일부 또는 최대 몇 초 길이의 짧은 사운드 녹음을 담은 샘플링된 오디오 파형이에요.
Synthesizer가 MIDI 명령에 응답해 소리를 합성하거나, 응용 프로그램이 추출해 사용할 수 있어요. 오디오 샘플의 데이터 클래스는 샘플 데이터 자체와 해석 방법(오디오 데이터 형식)을 캡슐화하는 객체(예:AudioInputStream)예요. - 내장 시퀀스(Embedded sequences): 사운드 뱅크는
Sequence같은 데이터 객체에 저장된 내장 노래 데이터를 담을 수 있어요.
웨이브테이블 합성 같은 기법을 사용하는 신디사이저는 음을 합성할 때 샘플의 오디오를 재생해요. 하지만 Soundbank의 Instrument와 샘플 사이에 반드시 일대일 대응이 있는 건 아니에요. 단일 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로 질의할 수 있어요.
- 반환값: 샘플링된 오디오 데이터를 담은 객체