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)

트랙백 주소 : http://trapping.egloos.com/tb/3828698
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from 항상 새기분 새마음으로 at 2008/07/17 16:59

제목 : 쓸모있겠네
[커피 탐정단 DD] Sound Engine에 관한 간단한 아이디어 ...more

※ 로그인 사용자만 덧글을 남길 수 있습니다.

◀ 이전 페이지 다음 페이지 ▶