|
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
, 그렇지 않은 경우는 false
loadInstruments(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()
null
isSoundbankSupported(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
- 로드궥귡인스트르먼트를 포함하고 있는 Soundbank
patchList
- 거기에 대응하는 인스트르먼트가 로드 되는 패치의 리스트
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 도 참조해 주세요.