강좌 소개

이 강좌는 Windows의 멀티미디어 라이브러리인 Waveform API를 소개합니다. 오래된 API이지만 아직도 저수준 오디오를 다루는데 이만한 방법이 없고 운영체제의 기본 기능이라 언제나 쓸 수 있는 이점이 있습니다. 예제는 비주얼 스튜디오 2019로 작성했으며 C/C++로 된 콘솔 프로젝트와 Win32 API 프로젝트로 제공합니다. 다음 압축 파일을 받으십시오.


WaveExam.zip(2.2M)

압축 파일에 샘플 웨이브 파일도 포함되어 있습니다. 비주얼 스튜디오의 버전에 따라 프로젝트를 변환해 쓰거나 아니면 소스 파일만 사용하십시오. 예제는 단계별로 코드를 완성시켜 나가는 step by step 방식이며 실습을 가정하고 만들었습니다. 시간이 없으신 분은 마지막 예제만 보면 되나 중간 단계도 연구해 보는 것이 좋습니다.

여러 가지 함정이 있어 완성된 코드만 봐서는 이론을 정확히 알기 어렵습니다. 반드시 직접 실습하면서 코드를 완전히 이해하고 다음 단계로 넘어가십시오. 다음은 이 강좌를 쓰면서 참고한 자료입니다.


MSDN : https://docs.microsoft.com/ko-kr/windows/desktop/Multimedia/waveform-audio 가장 기본적인 레퍼런스입니다. 항상 공식 레퍼런스를 참고하십시오. 주요 내용은 이 강좌에도 요약적으로 정리해 두었습니다.

웨이브 파일의 구조 : https://crystalcube.co.kr/123, http://soundfile.sapp.org/doc/WaveFormat/ wave 파일의 헤더 구조에 대해 상세히 분석해 놓았습니다. 웨이브 파일을 생성하는 간단한 예제도 제공합니다.

Planet : https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=4422&lngWId=3 웨이브 파일을 재생하는 콘솔 프로젝트 제작 기법을 소개합니다. 이 강좌에서도 버퍼를 관리하는 방법을 참고하였습니다.


강좌 작성일 : 2019년 5월 26일 ~ 5월 31일


목차

1.사운드 파일
2.장치 열기
3.사운드 재생
4.웨이브 파일의 구조
5.큰 파일 재생
6.콜백
7.멀티 헤더
8.버퍼 구조
9.우아한 뒷정리
10.가변 길이 패킷
11.그래픽 환경
12.콜백 메시지
13.스레드 분리
14.추가 편의 기능
15.완성 예제


이 강좌의 저작권은 SoEn에 있습니다.