MidiChannel

MidiChannel

단일 MIDI 채널을 나타내는 인터페이스예요. MIDI 채널은 MIDI 장치의 "트랙"이나 "채널"을 나타내고, 16개의 채널이 있으며 일반적으로 음, 컨트롤러, 프로그램 변경 등 다양한 메시지를 보내고 받는 데 사용돼요.

출처: Java API Reference

본문

javax.sound.midi 패키지에 속하는 인터페이스예요. 채널은 MIDI 메시지를 보내고 MIDI 신디사이저와 상호작용하는 기본 단위예요.

noteOn

void noteOn(int noteNumber, int velocity)

채널에서 음을 켜요. noteNumber는 음 번호(0~127)이고 velocity는 세기야. noteOn을 호출하면 지정된 음을 내는 메시지를 보내요.

  • 파라미터 noteNumber: 음 번호(0~127)
  • 파라미터 velocity: 세기(0~127)

noteOff

void noteOff(int noteNumber, int velocity)

채널에서 음을 꺼요. noteOn으로 시작된 음을 중지해요.

  • 파라미터 noteNumber: 음 번호(0~127)
  • 파라미터 velocity: 세기(0~127)

programChange

void programChange(int program)

채널의 현재 프로그램(악기)을 변경해요.

  • 파라미터 program: 프로그램 번호(0~127)

programChange

void programChange(int bank, int program)

지정된 뱅크와 프로그램 번호로 채널의 프로그램을 변경해요.

  • 파라미터 bank: 뱅크 번호(0~16383)
  • 파라미터 program: 프로그램 번호(0~127)

getProgram

int getProgram()

이 채널의 현재 프로그램 번호를 얻어요.

  • 반환값: 현재 프로그램 번호(0~127)

controlChange

void controlChange(int controller, int value)

채널에서 컨트롤 변경 메시지를 보내요. controller는 컨트롤러 번호, value는 변경될 값이에요.

  • 파라미터 controller: 컨트롤러 번호(0~127)
  • 파라미터 value: 값(0~127)

getController

int getController(int controller)

지정된 컨트롤러의 현재 값을 얻어요.

  • 파라미터 controller: 컨트롤러 번호(0~127)
  • 반환값: 컨트롤러 값(0~127)

pitchBend

void pitchBend(int bend)

채널의 피치 밴드를 설정해요. bend는 14비트 값으로, 중간값 8192가 중립(no bend)을 나타내요.

  • 파라미터 bend: 피치 밴드 값(0~16383)

setMute

void setMute(boolean mute)

채널을 뮤트하거나 뮤트 해제해요. 뮤트된 채널은 noteOn 메시지를 무시하고 소리를 내지 않아요.

getMute

boolean getMute()

채널이 뮤트되었는지 나타내요.

  • 반환값: 뮤트되었으면 true, 그렇지 않으면 false

setSolo

void setSolo(boolean soloState)

채널의 솔로 상태를 설정해요. 솔로된 채널이 있으면 다른 채널은 뮤트된 것처럼 취급돼요.

getSolo

boolean getSolo()

채널이 솔로되었는지 나타내요.

allNotesOff

void allNotesOff()

이 채널의 모든 음을 꺼요. noteOn으로 시작된 모든 음을 중지해요.

allSoundOff

void allSoundOff()

이 채널의 모든 소리를 끄고, 이미 sounding하고 있는 모든 음을 즉시 중지해요.

localControl

boolean localControl(boolean on)

로컬 컨트롤을 켜거나 꺼요. 신디사이저의 로컬 컨트롤러가 소리를 직접 제어하는지 나타내요.

채널별 메시지

채널은 noteOn, noteOff, programChange, controlChange, pitchBend 등을 통해 다양한 MIDI 채널 메시지를 보내는 데 사용돼요. 채널의 현재 상태는 getProgram, getController, getMute, getSolo 등으로 질의할 수 있어요.

더 알아보기