|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
public interface Synthesizer
Synthesizer 는 사운드를 생성합니다. 이것은 일반적으로,Synthesizer MidiChannel 객체의 1 개가 직접, 또는 Synthesizer 객체를 개입시켜 noteOn 메세지를 받아들였을 경우에 발생합니다. 많은 Synthesizer 에서는, MIDI 이벤트를 Synthesizer 에 전달할 수 있는 Receivers 를 지원하고 있습니다. 이러한 경우,Synthesizer 은 일반적으로, 대응하는 메세지를 해당하는 MidiChannel 에 보내는지, 이벤트가 MIDI 채널 메세지가 아닌 경우에는 그 이벤트 자신을 처리합니다.
Synthesizer 인터페이스에는, 인스트르먼트를 사운드 뱅크에 로드 및 로드 해제하기 위한 메소드가 포함되어 있습니다. 인스트르먼트는, 전통적인 인스트르먼트를 에뮤레이트 한 사운드나, 어떤 종류의 사운드 효과 혹은 그 외의 상상상의 사운드 등, 일정한 타입의 사운드를 합성하기 위한 스펙이 됩니다. 사운드 뱅크는 인스트르먼트의 집합체로, 그 인스트르먼트의 Patch 객체에 의해 뱅크 번호 및 프로그램 번호에 근거해 편성되고 있습니다. 구현되고 있는 사운드 합성 기술은 Synthesizer 클래스에 의해 다를 가능성이 있습니다. 그 때문에, 일부의 인스트르먼트만이 특정의 신디사이저와의 호환성을 가지는 경우가 있습니다. 또, 신디사이저가 인스트르먼트에 대해서 할당하는 메모 리사이즈에는 제한이 있는 경우가 있기 (위해)때문에, 합성 기술이 호환의 신디사이저에서도, 사운드 뱅크나 인스트르먼트에 따라서는 사용할 수 없을 가능성이 있습니다. 특정의 사운드 뱅크에 포함되어 있는 인스트르먼트가 특정의 신디사이저로 사용할 수 있을지 어떨지를 확인하려면 ,Synthesizer 의 isSoundbankSupported 메소드를 호출합니다.
인스트르먼트를 「로드한다」란, 노트를 합성하기 위해서 그 인스트르먼트를 사용 가능하게 하는 것입니다. 인스트르먼트는, 그 Patch 객체로 지정된 뱅크 번호 및 프로그램의 위치에 로드 됩니다. 인스트르먼트를 로드해도, 다음에 연주하는 노트에 그 인스트르먼트의 사운드가 즉시 반영되는 것은 아닙니다. 노트를 연주하는 인스트르먼트의 뱅크 번호 및 프로그램 번호를 선택하는 프로그램 체인지 메세지를, 신디사이저의 MidiChannel 객체의 1 개가 받을 (또는 벌써 받고 있을) 필요가 있습니다.
MidiSystem.getSynthesizer() ,
Soundbank ,
Instrument ,
MidiChannel.programChange(int, int) ,
Receiver ,
Transmitter ,
MidiDevice | 상자의 클래스의 개요 |
|---|
| 인터페이스 javax.sound.midi. MidiDevice 로부터 상속된 상자의 클래스/인터페이스 |
|---|
MidiDevice.Info |
| 메소드의 개요 | |
|---|---|
Instrument [] |
getAvailableInstruments ()
신디사이저에 부속되는 인스트르먼트의 리스트를 가져옵니다. |
MidiChannel [] |
getChannels ()
이 신디사이저로 제어되는 MIDI 채널세트를 가져옵니다. |
Soundbank |
getDefaultSoundbank ()
신디사이저에 디폴트의 사운드 뱅크가 있는 경우는, 그 사운드 뱅크를 가져옵니다 (일부의 신디사이저에는 디폴트 또는 편입의 사운드 뱅크가 있다). |
long |
getLatency ()
이 신디사이저에서의 처리 응답 시간을 마이크로 세컨드 단위로 가져옵니다. |
Instrument [] |
getLoadedInstruments ()
이 Synthesizer 에 현재 로드 되고 있는 인스트르먼트의 리스트를 가져옵니다. |
int |
getMaxPolyphony ()
이 신디사이저를 동시에 출력할 수 있는 노트의 최대수를 가져옵니다. |
VoiceStatus [] |
getVoiceStatus ()
이 신디사이저에 의해 생성되는 음성의 현재 상태를 가져옵니다. |
boolean |
isSoundbankSupported (Soundbank soundbank)
지정한 사운드 뱅크의 인스트르먼트를 이 신디사이저에 로드할 수 있을지 어떨지를 호출 측에 통지합니다. |
boolean |
loadAllInstruments (Soundbank soundbank)
지정한 Soundbank 에 포함할 수 있어 모든 인스트르먼트를 Synthesizer 에 로드합니다. |
boolean |
loadInstrument (Instrument instrument)
특정의 인스트르먼트를 합성에 사용할 수 있도록(듯이) 합니다. |
boolean |
loadInstruments (Soundbank soundbank,
Patch [] patchList)
지정한 패치에 의해 참조되는 인스트르먼트를, 지정한 Soundbank 로부터 로드합니다. |
boolean |
remapInstrument (Instrument from,
Instrument to)
인스트르먼트를 재매핑 합니다. |
void |
unloadAllInstruments (Soundbank soundbank)
지정한 Soundbank 에 포함되는 모든 인스트르먼트를 언로드합니다. |
void |
unloadInstrument (Instrument instrument)
특정의 인스트르먼트를 언로드합니다. |
void |
unloadInstruments (Soundbank soundbank,
Patch [] patchList)
지정한 패치에 의해 참조되는 인스트르먼트를, 지정한 MIDI 사운드 뱅크로부터 언로드합니다. |
| 인터페이스 javax.sound.midi. MidiDevice 로부터 상속된 메소드 |
|---|
close , getDeviceInfo , getMaxReceivers , getMaxTransmitters , getMicrosecondPosition , getReceiver , getReceivers , getTransmitter , getTransmitters , isOpen , open |
| 메소드의 상세 |
|---|
int getMaxPolyphony()
getVoiceStatus() long getLatency()
이 응답 시간은 마이크로 세컨드 단위로 나타내집니다만, 신디사이저의 지연 시간의 실측치의 격차는, 이 해상도의 정도보다 큰 경우가 있습니다. 예를 들어, 신디사이저에 따라서는 최대 지연 시간이 수밀리 세컨드를 넘는 일도 있습니다.
MidiChannel [] getChannels()
MidiChannel 입니다.
MIDI 1.0 스펙에서는 16 의 채널이 규정되고 있기 (위해)때문에, 이 메소드는 적어도 16 의 요소를 가지는 배열을 돌려줍니다. 다만, 이 신디사이저로 16 채널 가운데 몇개인가가 사용되어 있지 않은 경우는, 배열의 요소의 일부가 null 가 되는 일이 있습니다. 그 때문에, 신디사이저를 사용하기 전에는 각 요소를 확인해 주세요.
Synthesizer 으로 관리되는 MidiChannel
객체의 배열. 배열 요소에는 null 가 포함될 가능성이 있다VoiceStatus [] getVoiceStatus()
Synthesizer 의 이 클래스로부터 음성 정보를 취득할 수 없는 경우, 반환되는 배열의 길이는 언제라도 0 이 됩니다. 취득할 수 있었을 경우에는, 반환되는 배열의 길이는 getMaxPolyphony() 가 돌려주는 음성의 합계수 물어 개에서도 동일해집니다 (신디사이저 음성의 설명은,VoiceStatus 클래스의 기술을 참조).
VoiceStatus 객체의 배열getMaxPolyphony() ,
VoiceStatus boolean isSoundbankSupported(Soundbank soundbank)
IllegalArgumentException 가 발생합니다.
soundbank - 지원의 유무에 대해 조회하는 사운드 뱅크
true, 그렇지 않은 경우는 falseloadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[]) ,
loadAllInstruments(javax.sound.midi.Soundbank) ,
unloadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[]) ,
unloadAllInstruments(javax.sound.midi.Soundbank) ,
getDefaultSoundbank() boolean loadInstrument(Instrument instrument)
Patch 객체로 지정된 패치 위치에 로드 되기 (위해)때문에, 프로그램 체인지 메세지가 받아 들여지는 (또는 벌써 수취되고 있다)와 그 패치가 선택되어 그것 이후의 노트는 instrument 의 사운드로 연주됩니다. 지정한 인스트르먼트가 벌써 로드 되고 있는 경우에는, 이 메소드는 아무것도 실행하지 않고 true 를 돌려줍니다.
인스트르먼트는, 이 Synthesizer 로 지원되는 사운드 뱅크에 포함되지 않으면 안됩니다 (확인하려면 ,Instrument 의 getSoundbank 메소드와 Synthesizer 의 isSoundbankSupported 메소드를 사용).
instrument - 로드궥귡인스트르먼트
true, 인스트르먼트를 로드할 수 없었던 경우
(예를 들어 신디사이저의 메모리 부족하고 로드할 수 없었을 때)(은)는 false
IllegalArgumentException - 지정한 인스트르먼트의 사운드 뱅크가 이 Synthesizer 로 지원
되지 않는 경우unloadInstrument(javax.sound.midi.Instrument) ,
loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[]) ,
loadAllInstruments(javax.sound.midi.Soundbank) ,
remapInstrument(javax.sound.midi.Instrument, javax.sound.midi.Instrument) ,
SoundbankResource.getSoundbank() ,
MidiChannel.programChange(int, int) void unloadInstrument(Instrument instrument)
instrument - 언로드하는 인스트르먼트
IllegalArgumentException - 지정한 인스트르먼트의 사운드 뱅크가 이 Synthesizer 로 지원
되지 않는 경우loadInstrument(javax.sound.midi.Instrument) ,
unloadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[]) ,
unloadAllInstruments(javax.sound.midi.Soundbank) ,
getLoadedInstruments() ,
remapInstrument(javax.sound.midi.Instrument, javax.sound.midi.Instrument)
boolean remapInstrument(Instrument from,
Instrument to)
from 가 인스트르먼트 to 로 치환됩니다. 예를 들어,from 가 뱅크 번호 2, 프로그램 번호 11 에 있는 경우, 재매핑에 의해 그 뱅크 번호 및 프로그램 번호에는 대신에 to 를 할당할 수 있습니다. from 는 언로드됩니다.
재매핑을 취소하려면 ,loadInstrument(javax.sound.midi.Instrument) ,loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[]) , 또는 loadAllInstruments(javax.sound.midi.Soundbank) 의 어느쪽이든을 호출해, 인스트르먼트 from 를 재로드합니다.
from - 옮겨놓을 수 있는 Instrument 객체to - 낡은 인스트르먼트 대신에 사용하는 Instrument 객체.
신디사이저에 로드 된다.
true
기능이 신디사이저에 의해 구현되어 있지 않은 경우,false
IllegalArgumentException - 신디사이저가 인스트르먼트
from 또는 인스트르먼트 to 를 지원하고 있지 않는 경우, 또는
인스트르먼트 to 가 로드 되지 않는 경우
NullPointerException - from 또는
to 파라미터가 null 치의 경우loadInstrument(javax.sound.midi.Instrument) ,
loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[]) ,
loadAllInstruments(javax.sound.midi.Soundbank) Soundbank getDefaultSoundbank()
nullisSoundbankSupported(javax.sound.midi.Soundbank) Instrument [] getAvailableInstruments()
이 메소드는, 신디사이저에 현재 로드 되고 있는 인스트르먼트를 검색하기 위해서는 사용할 수 없는 것에 주의해 주세요. 그러한 인스트르먼트를 검색하려면 ,getLoadedInstruments() 를 사용합니다. 또 이 메소드에서는, 신디사이저에 로드할 수 있는 모든 인스트르먼트를 나타낼 수도 있습니다. 이 메소드로 나타나는 것은, 신디사이저에 부속되는 인스트르먼트의 부분집합 뿐입니다. 다른 인스트르먼트를 로드할 수 있을지 어떨지를 조사하려면 isSoundbankSupported() 를 호출합니다. 그 인스트르먼트의 Soundbank 가 지원되고 있으면, 그 인스트르먼트의 로드를 실시할 수가 있습니다.
getLoadedInstruments() ,
isSoundbankSupported(Soundbank) ,
loadInstrument(javax.sound.midi.Instrument) Instrument [] getLoadedInstruments()
Synthesizer 에 현재 로드 되고 있는 인스트르먼트의 리스트를 가져옵니다.
loadInstrument(javax.sound.midi.Instrument) ,
getAvailableInstruments() ,
Soundbank.getInstruments() boolean loadAllInstruments(Soundbank soundbank)
Soundbank 에 포함할 수 있어 모든 인스트르먼트를 Synthesizer 에 로드합니다.
soundbank - 로드궥귡인스트르먼트를 포함하고 있는 Soundbank
true,
true, 로드 되지 않았던 인스트르먼트가 있는 경우
(예를 들어 Synthesizer 의 메모리가 부족했을 때)(은)는 false
IllegalArgumentException - 요구한 사운드 뱅크가 이
신디사이저와 호환이 아닌 경우isSoundbankSupported(javax.sound.midi.Soundbank) ,
loadInstrument(javax.sound.midi.Instrument) ,
loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[]) void unloadAllInstruments(Soundbank soundbank)
Soundbank 에 포함되는 모든 인스트르먼트를 언로드합니다.
soundbank - 언로드하는 인스트르먼트를 포함하고 있는 사운드 뱅크
IllegalArgumentException - 그 사운드 뱅크가 지원되어 있지 않은 경우에 throw 되는isSoundbankSupported(javax.sound.midi.Soundbank) ,
unloadInstrument(javax.sound.midi.Instrument) ,
unloadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[])
boolean loadInstruments(Soundbank soundbank,
Patch [] patchList)
Soundbank 로부터 로드합니다. 각각의 Patch 객체는, 뱅크 번호 및 프로그램 번호를 나타냅니다. 일치하는 Patch 를 가지는 Instrument 가, 그 뱅크 번호 및 프로그램 위치에 로드 됩니다.
soundbank - 로드궥귡인스트르먼트를 포함하고 있는 SoundbankpatchList - 거기에 대응하는 인스트르먼트가 로드 되는 패치의 리스트
true, 로드 되지 않았던 인스트르먼트가 있는 경우
(예를 들어 Synthesizer 의 메모리가 부족했을 때)(은)는 false
IllegalArgumentException - 그 사운드 뱅크가 지원되어 있지 않은 경우에 throw 되는isSoundbankSupported(javax.sound.midi.Soundbank) ,
Instrument.getPatch() ,
loadAllInstruments(javax.sound.midi.Soundbank) ,
loadInstrument(javax.sound.midi.Instrument) ,
Soundbank.getInstrument(Patch) ,
Sequence.getPatchList()
void unloadInstruments(Soundbank soundbank,
Patch [] patchList)
soundbank - 언로드하는 인스트르먼트를 포함하고 있는 사운드 뱅크patchList - 거기에 대응하는 인스트르먼트가 언로드되는 패치의 리스트
IllegalArgumentException - 그 사운드 뱅크가 지원되어 있지 않은 경우에 throw 되는unloadInstrument(javax.sound.midi.Instrument) ,
unloadAllInstruments(javax.sound.midi.Soundbank) ,
isSoundbankSupported(javax.sound.midi.Soundbank) ,
Instrument.getPatch() ,
loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[])
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.