MidiSystem
MidiSystem
MIDI 시스템 리소스에 접근하는 클래스예요. 이 클래스는 MIDI 장치, 시퀀스, 사운드 뱅크 등에 접근하는 정적 메서드를 제공해요.
본문
javax.sound.midi 패키지에 속하는 클래스로, java.lang.Object를 상속해요. MidiSystem 클래스는 다양한 MIDI 시스템 리소스와 상호작용하기 위한 정적 메서드들을 제공해요. 일반적으로 다음 작업에 사용해요.
- MIDI 장치, receiver, transmitter 얻기
- MIDI 파일을
Sequence로 읽거나Sequence를 MIDI 파일로 쓰기 - 사운드 뱅크를 읽거나 쓰기
public class MidiSystem extends Object
getMidiDevice
public static MidiDevice getMidiDevice(MidiDevice.Info info)
throws MidiUnavailableException
지정된 정보 객체가 설명하는 MIDI 장치를 얻어요.
- 파라미터
info: 장치를 설명하는 정보 객체 - 반환값: 요청된 장치
- 예외
MidiUnavailableException: 장치를 찾을 수 없거나 사용할 수 없는 경우
getMidiDeviceInfo
public static MidiDevice.Info[] getMidiDeviceInfo()
설치된 MIDI 장치들에 대한 정보를 얻어요.
- 반환값: 이 시스템에서 사용 가능한 MIDI 장치에 대한 정보 객체의 배열
getReceiver
public static Receiver getReceiver()
throws MidiUnavailableException
기본 시스템 소스 장치를 얻고, 그 장치에 대한 receiver를 반환해요. 반환된 receiver를 사용해 MIDI 메시지를 시스템으로 보낼 수 있어요. 사용이 끝나면 receiver를 닫아야 해요.
- 반환값: 시스템에 연결된 receiver
- 예외
MidiUnavailableException: 시스템에서 receiver를 만들 수 없는 경우
getSynthesizer
public static Synthesizer getSynthesizer()
throws MidiUnavailableException
기본 신디사이저를 얻어요. 신디사이저를 가져온 후에는 사용하기 전에 open()을 호출해 열어야 해요.
- 반환값: 기본 신디사이저
- 예외
MidiUnavailableException: 신디사이저를 열 수 없는 경우
getSequencer
public static Sequencer getSequencer()
throws MidiUnavailableException
기본 시퀀서를 얻어요. 시퀀서를 가져온 후에는 사용하기 전에 open()을 호출해 열어야 해요.
- 반환값: 기본 시퀀서
- 예외
MidiUnavailableException: 시퀀서를 열 수 없는 경우
getTransmitter
public static Transmitter getTransmitter()
throws MidiUnavailableException
기본 시스템 대상 장치를 얻고, 그 장치에 대한 transmitter를 반환해요. 반환된 transmitter를 사용해 MIDI 메시지를 시스템에서 수신할 수 있어요. 사용이 끝나면 transmitter를 닫아야 해요.
- 반환값: 시스템에 연결된 transmitter
- 예외
MidiUnavailableException: 시스템에서 transmitter를 만들 수 없는 경우
getMidiFileFormat
public static MidiFileFormat getMidiFileFormat(File file)
throws InvalidMidiDataException, IOException
지정된 파일의 MIDI 파일 형식을 얻어요.
- 파라미터
file: MIDI 파일 데이터를 담은 파일 - 반환값: MIDI 파일 형식 설명
- 예외
InvalidMidiDataException: 파일이 MIDI 파일인 경우 형식이 유효하지 않거나 지원되지 않음 - 예외
IOException: I/O 오류가 발생한 경우
getMidiFileFormat
public static MidiFileFormat getMidiFileFormat(InputStream stream)
throws InvalidMidiDataException, IOException
입력 스트림에서 MIDI 파일 형식을 얻어요. 참고: 스트림이 소비(파싱)됩니다.
getSequence
public static Sequence getSequence(File file)
throws InvalidMidiDataException, IOException
지정된 파일에서 MIDI 파일 데이터를 읽어 시퀀스 객체를 얻어요.
- 파라미터
file: MIDI 파일 데이터를 담은 파일 - 반환값: MIDI 파일의 시퀀스 객체
- 예외
InvalidMidiDataException: 파일이 유효한 MIDI 시퀀스 데이터를 제공하지 않는 경우 - 예외
IOException: I/O 오류가 발생한 경우
getSequence
public static Sequence getSequence(InputStream stream)
throws InvalidMidiDataException, IOException
입력 스트림에서 MIDI 파일 데이터를 읽어 시퀀스 객체를 얻어요.
getSoundbank
public static Soundbank getSoundbank(URL url)
throws InvalidMidiDataException, IOException
지정된 URL에서 사운드 뱅크 데이터를 얻어요.
getSupportedMidiFileTypes
public static int[] getSupportedMidiFileTypes()
이 시스템이 쓸 수 있는 MIDI 파일 형식을 얻어요. 표준 MIDI 파일 형식은 종류 0, 1, 2를 포함해요.
- 반환값: 이 시스템이 쓰는 파일 형식의 배열. 형식을 쓰지 않으면 길이가 0인 배열
write
public static int write(Sequence in, int fileType, OutputStream out)
throws IOException
시퀀스에서 MIDI 파일 데이터를 기록해요. 스트림의 현재 위치부터 쓰고, 스트림을 닫지는 않아요. 쓴 바이트 수를 반환해요.
- 파라미터
in: MIDI 데이터를 담은 시퀀스 - 파라미터
fileType: 쓸 파일 형식(종류 번호) - 파라미터
out: MIDI 파일 데이터를 쓸 스트림 - 반환값: 스트림에 쓴 바이트 수
- 예외
IOException: I/O 오류가 발생한 경우
write
public static int write(Sequence in, int fileType, File out)
throws IOException
시퀀스에서 MIDI 파일 데이터를 지정된 파일에 기록해요. 파일이 존재하면 덮고, 존재하지 않으면 새로 만든 다음, 쓴 바이트 수를 반환해요.