프로그래밍 세계/Multimedia
[MIDI] MIDI Format
깡다구짱
2008. 10. 5. 21:33
아주 기본적인 미디 포멧입니다. 녹색선 아래부분은 실제 어떠한 VST상으로 보내질 데이터부분이라고 할 수 있죠.
헤더세부적인 컨트롤 체인지라든가 프로그램 체인지 값등등에 대한 것은 언급하지 않겠습니다.ㅎㅎ
그대신 아래사이트를 참조하시면 될껍니다.
www.hongmidi.com
미디 공부해보신분은 한번은 들렀을 곳입니다..ㅎㅎ
자신이 직접 미디포멧을 프로그래밍해서 작성하고 싶으시면 꼭 주의 할것이 있는데
가장 기본적인 것이 각 트랙에 대한 길이입니다. 길이가 맞지 않으면 플레이조차도 되지 않습니다.
길이값에 대한 정보는 Chank Length부분에 있습니다.
위의 포멧을 보면 0x4D 0x54 0x72 0x6B 0x00 0x00 0x00 0x3C( Track Chank Length )부분과
0x4D 0x54 0x72 0x6B 0x00 0x00 0x00 0x1D( Header Chank Length )부분입니다.
여기에는 0x3C와 0x1D가 해당되는 트랙의 길이를 뜻하는 거죠.
그리고 그 길이값 앞에 있는 0x4D 0x54 0x72 0x6B 0x00 0x00 0x00 0x**는 길이값에 포함되지 않습니다.
주의하시길..다시 말해
0x3C라 함은 10진수로 60이지요..위에 Conduct MTrk부분을 직접 헤아려 보면 다음 MTrk까지 딱 60개로
떨어지는 것을 알 수 있을 겁니다.
사실 별거 아니지만 이것저것 값을 바꾸면서 만들다 보면 그 이부분을 간과한 경우가 종종 있었습니다.
분명히 값을 제대로 넣어주었는데...음이 안나오죠..ㅡㅡ;;;;;;
그리고 또 중요한거는 트랙 수!!!
변경시 꼭 포멧상에서도 변경해주셔야 합니다.
만일 미디를 처음 배우시는 분은 한번 숙지하시길....