Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
04-19 14:16
관리 메뉴

zyint's blog

MIDI 본문

예전글들

MIDI

진트­ 2009. 9. 26. 23:01

MIDI

Sampled Audio와는 다르게 MIDI는 소리를 직접적으로 데이터로 저장하지 않습니다. 대신, MIDI에서는 각종 음악 장비들의 이벤트 정보(키보드 건반, 페달이 눌린 이벤트, 슬라이더 값, 스위치 등)만을 담고 있습니다. 이러한 악기들이 연주되는 이벤트들을 실제 악기에서 입력 받을 필요는 없고, 소프트웨어로 가상으로 만들어진 악기로도 입력 받고 MIDI파일로 저장할 수 있습니다. 프로그램으로 악기들의 연주를 만들고 수정할 수 있으며 이를 sequencer라고 합니다.

 

대부분의 사운드 카드에서는 MIDI synthesizer 칩을 내장하고 있기 때문에, 칩에 MIDI 이벤트 정보를 보내면 각각의 악기가 연주되는 소리를 합성(synthesize) 할 수 있습니다. 

 

일부 사운드 카드에서는 MIDI input/output 포트를 가지고 있어서 외부의 MIDI 하드웨어 장치와 연결 할 수있습니다. MIDI input port로부터 어플리케이션에서 MIDI 데이터를 받을 수 있습니다. 프로그램에서는 이를 컴퓨터의 내장 synthesizer를 이용하여 소리를 합성하여 재생할 수 있습니다.

 

 

구조

아래 그림은 Java Sound API를 기반으로한 전체 구조를 나타낸 것입니다. 각각의 화살표 방향대로 데이터가 이동함을 볼 수 있습니다.

 

chapter1.anc2.gif

Possible MIDI Configuration

 

Sequencer가 MIDI파일을 읽고 연주하면, internal/external synthesizer를 이용하여 음을 저장해놓은 soundbank파일이나 외부 하드웨어에서 로드된 synthesizer 음으로 소리를 합성하여 재생하게 됩니다.

 

 

 

참고자료

http://java.sun.com/javase/6/docs/technotes/guides/sound/programmer_guide/chapter1.html

이 글은 스프링노트에서 작성되었습니다.

Comments