midi에서의 음표의 길이 판단

2010, May 30    

음표의 길이 판단.

1) Time divison

Time divison의 수치는 4분음표(한박자)의 길이 표현하는 수치입니다.

 

예를 들어 Time divion이 480인 midi가 존재한다면

온음표 =  4분음표 * 4 = 1920

2분음표 = 4분음표 * 2 = 960

4분음표 = 4분음표 * 1 = 480

8분음표 = 4분음표 / 2 = 240

 

2) 음 시작 및 종료 이벤트 

 아래의 표와 같이 음의 시작 이벤트는 총 4바이트로 이루어져 있으며 2번째 바이트의 9x(x : Channel Num)로 표현되며 종료 이벤트는 8x로 표현 됩니다.

1byte

2byte

3byte

4byte

비 고

Delta Time

9

Channel Num

Note Num

Velocity

Note ON

Delta Time

8

Channel Num

Note Num

Velocity

Note OFF

 

*중복 데이터 생략

Note ON이 발생 후 Note Off가 발생해야 하며 주로 Note ON 발생 후 바로 Note Off가 발생할 일이 빈번한데 Note Off의 2번째 바이트를 생략함으로 8바이트로 표현되는 것을 7바이트로 표현.

ex)

 

기        존

Delta Time

9 / Channel Num

Note Num

Velocity

Delta Time

8 / Channel Num

Note Num

Velocity

   

생       략

Delta Time

9 / Channel Num

Note Num

Velocity

Delta Time

Note Num

Velocity

 

3) 음 길이 판단

Delta Time

9

Channel Num

Note Num

Velocity

Delta Time

8

Channel Num

Note Num

Velocity

Delta Time

other MIDI Channel Events

Delta Time은 이전 이벤트와의 간격을 tick으로 표현함으로써 위의 표에서의 2번째 줄 Delta time은 음 발생과 음 종료시간을 나타내는 음 지속시간이고 3번째 줄은 다음 음의 발생과의 간격이므로 2번째 Delta Time과 3번째 Delta Time을 더해 표현 하여야 함.