오디오 버퍼의 흐름

(2-in, 2-out 스테레오 기준)

1. 오디오 드라이버의 역할

오디오 드라이버는 하드웨어에 의해 샘플링된 오디오 데이터를 버퍼 안에 배치합니다.
이때 오디오 데이터는 버퍼 안에서 각 채널 별로 교차(Interleaved) 배치됩니다.
이렇게 저장된 오디오 데이터는 wave 파일로 저장될 수도 있고, 아니면 곧바로 DAW 전송되는 실시간 오디오 스트리밍(Real-time audio streaming)이 될 수도 있습니다.

2. DAW에서 오디오 데이터 채널 분리

채널 별로 교차배치된 오디오 버퍼는 DAW에서 채널별로 분리(De-mux)됩니다.
각 채널의 오디오 데이터들은 각각의 입력 채널 버퍼(Input Channel Buffer) 안에 저장됩니다.
또한 DAW는 플러그인의 프로세싱 결과들이 저장될 출력 채널 버퍼(Output Channel Buffer)도 준비합니다.
DAW는 플러그인에게 입력 채널 버퍼와 출력 채널 버퍼의 주소, 버퍼의 크기, 입/출력 채널의 갯수를 보냅니다.

3. 플러그인 프로세서

플러그인은 DAW에서 받은 정보와 버퍼의 주소를 이용해 정해진 프로세싱을 수행합니다.
프로세싱의 결과는 출력 채널 버퍼에 저장됩니다.

4. DAW에서 오디오 데이터 채널 합성

DAW는 각 채널 버퍼로 분리된 오디오 데이터들을 다시 합성(Mux)하여 하나의 버퍼 안에 저장합니다.
이때 각 채널의 오디오 데이터들은 처음과 똑같은 형태로 교차배치(Interleaved)됩니다.

profile
오디오 플러그인 개발자

0개의 댓글