2008년 07월 17일
Sound Engine에 관한 간단한 아이디어
Sound Engine 설계에 관한 아이디어 모음
오디오 API
- 오디오 시스템의 복잡성을 숨기고 API를 통한 접근만 허용.
- 모든 유저들에게 동일한 API 제공.
사운드 식별자(identifier)
- 개별 사운드에 대한 식별자를 제공
- 사운드 시스템이 사운드를 제어하는 구체적인 세부사항의 캡슐화
내부의 복잡함을 은폐 시키면서 특정 종류의 엔진에 국한된 함수 제공
- 함수명과 인자명은 같지만 함수 내부에서 인자에 대한 해석은 엔진에 따라 틀려질 수 있음.
- 엔진과 플랫폼에 상관없이 동일안 인터페이스 제공.
핸들의 사용
- 다른 객체에서 사운드의 특정 인스턴스에 접근할 수 있도록 허용해 준다.
사용자 데이터와 콜백 함수
- 사용자 스스로 또다른 처리를 추가할 수 있다.
명령 큐
- 오디오 API에 대한 호출을 명령 큐에 집어넣고 프레임당 하나씩 처리.
- 디버깅에 유용하다.
그룹별 사운드 관리
- 음들을 그룹 단위로 제어.
- 음들의 그룹 전체 속성을 쉽고 빠르게 변경
- 음을 하나의 그룹과 연관시킨뒤 그룹별로 관리
- 제어 가능한 주요 매개변수들
- volume, pitch, pause/resume, stop
- 그룹의 정의
- 정수 : group id
- 개념적으로 이해하기 쉽다.
- 추가작업이 필요.
- 비트필드
- 논리 연산을 통한 유연성 확보.
- 개수에 제한이 있다.
- 객체
- 그룹 관리 클래스 작성
- 특별한 처리가 필요하고 복잡해 질 수 있다.
구현상 주의점
- 재생 중인 음을 추적할 수 있는 시스템 구축.
- 단발성 음을 그룹별로 처리할 것인지에 대한 결정.
디버깅 지원
- 통계, 기록 함수
- 시스템 활성/비활성 기능
api 식별 : (함수명 : 인자)
- sound id
start sound : sound id
stop sound : sound id
load sound : sound id
unload sound : sound id
is sound loaded? : sound id
- volume
set master volume : volume value
get master volume : void
- stop/pause
stop all sound : void
pause all dounds : void
restart all sounds : void
- handle
start handled sound : sound id, control parameter
update handled sound : handle, control parameter
stop handled sound : handle
set handled sound user data : handle, user data
get handled sound user data : handle
set handled call back : handle, call back function
clear handled call back
- sound group
set sound group : sound id, group id
start sound with group : sound id, group id
stop group : group id
pause group : group id
resume group : group id
set group priority : group id, default priority
set group rate : group id, rate
set group volume : group id, default volume
update group : group id, control parameter
Handle과 Sound ID는 하나로 합쳐도 상환 없을 듯 하다.
GPG에서 참고할만한 섹션
gpg2 : 6.1 게임 오디오 설계 패턴
gpg2 : 6.7 저수준 사운드 API
gpg5 : 7.2 그룹별 사운드 관리
gpg4 : 7.1 OpenAL에 대한 간략한 소개
gpg3 : 6.1 Ogg Vorvis를 이용한 오디오 압축
# by | 2008/07/17 14:08 | dev diary - release | 트랙백(1)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
제목 : 쓸모있겠네
[커피 탐정단 DD] Sound Engine에 관한 간단한 아이디어 ...more