안녕하세요..
이번에 리턴 기념으로 Direct Music 에 대한 자료를 올립니다.
Direct Music 에 대한 것을 소개하자면 Direct X 6.1 에 정식으로 포한
되었으며 MIDI 음악의 음질을 적은 용량으로 더 좋게 해보자는 취지로
만들어졌습니다.
보통 게임 만들때 *.MID 로 배경을 연주하게 되면 사운드 카드마다
각각 음질이 다르게 나옵니다. 특히 싸구려 카드에서는 그 음악 작곡한
사람이 들으면 기절할 정도의 FM 사운드같은 음질로 나오기도 합니다.
하지만 Direct Music 은 사운드 폰트를 Windows\System32\Drivers 에
GM.DLS라? ? 디폴트 ( 이름으로 봐서 General MIDI 호환 ) 로 두어서
MIDI 를 연주하게 되어 실시간으로 음원을 합성해 그걸 Wave 로 뿌려주는
방식을 채택하고 있습니다. 따라서 거의 모든 사운드 카드에서 같은 음질을
낼수가 있습니다. ( 내부적으로 Direct Sound 를 사용해 합성합니다. )
물론 이 방식은 MOD, S3M 같은 모듈음악에서 이미 도입한 방식이라서
그리 새로울 것은 없으나, 기존의 MID 파일 ( 용량이 적은게 장점 ) 로
어느 정도 들을만한 음질을 내준다는 것에 큰 의의를 두고 있고 그 처리
속도는 Wave 플레이어 보단 느리고 M P3 플레이어 보단 빠릅니다.
----------------------------------------------------------------------
하지만.....
이미 Direct Music 의 도큐멘트에 잘 나와 있는 이런 말을 왜 하느가 ?
아니면, 도큐멘트에 소스까지 잘 나와 있는데 이제와서 왜 들먹이냐 ?
이런 식으로 반문 할수 있겠습니다.
하지만 제가 이번에 제공하려는 것은 흔한 C 기반의 소스가 아니라
Direct X 에 대해 유달리 핍박 받으며 사는 델피언들을 위해 Direct Music의
헤더를 제대로 되게 만들어 보았습니다.
( Delphi 4 이상에서만 됩니다. OLE2 가 아닌 ActiveX 를 이용한 COM 제어로
소스가 되어 있기 때문입니다.. )
물론 헤더의 알파버전은 제가 만든게 아니고 인터넷의 서드 파티였습니다만
제대로 실행 한번 안해보고 올린 버전인지 초기화마저도 안되는 것이었습니다.
그때 백수의 열정으로 ( 시간이 많으니까.. --; ) 분연히 딛고 일어 서서
버그 패치를 하고 이것을 만들었지만 짧은 영어 실력으로 인해 서드 파티쪽에
접근조차 못해보고 한글만으로 설명을 적을 수 있는 게제동에 자료를 올립니다.
( 그래도 스스로는 국내 게임 발전을 위해 외국에 안 보내는 거라고 혼자만 의
생각을 가지고 있습니다만..... )
이것에 포함된 샘플 소스와 실행파일은 주인이 없습니다.
알아서 도용하시고 출처를 안 밝히셔도 좋습니다.
부디 좋은 게임 많이 만드시길 바랄뿐입니다...
그리고 질문은 절대 받지 않습니다.. 그리고 업데이트할 계획은 없습니다.
그럼.. SMgal.
PS. 또한 약간 핍박 받는 Borland C++ Builder 유저도 소스가 필요하시면
C++ Builder 4 용 소스도 메일로 드리겠습니다. 솔찍히 Direct Music
부분은 빌더쪽이 델파이보다 더 잘 는 것 같습니다. -_-;
델파이 부분은 COM 의 해제 부분에 조금 문제가 있음.. 뭐.. 그냥 종료
하면 애플리케이션 차원에서 해제가 되긴 하지만...