Web Audio API를 잘 사용하기 위해서는 음원에 해당하는 오디오 버퍼audio buffer에 대한 지식이 필요하다. 타이밍 컨트롤, 변수 설정 등에 사용되는 값이 정확히 무엇을 의미하는지 알 수 있기 때문이다.
◆ Sample, Frame, 그리고 Sample rate
· Sample: 어느 한 시점의 소리의 크기를 32bit 정밀도의 부동소수점으로 표현한 값이다.
· Frame(sample frame): 동일 시점에 재생되는 샘플들의 집합이다. Mono channel에서 Sample과 frame은 같다. 2 channel stereo 이상에서는 frame은 모든 channel들의 sample들이 된다.
· Sample rate: 1초 동안 재생되는 sample frame의 개수이다. 1초 동안의 동작을 나타내므로 단위로 Hz를 사용한다. 더 높은 sample rate를 가진 사운드일수록 더 좋은 음질을 가졌다고 할 수 있다.
예) 44.1KHz mono sound buffer: 44100 samples, 44100 frames
44.1KHz stereo sound buffer: 88200 samples, 44100 frames. ∵ 44100 x 2(L, R) = 88200
· Length: 오디오 버퍼에 들어있는 frame의 개수이다.
◆ Plannar Vs. Interleaved
2채널 이상의 스테레오 신호에서 각각의 채널을 저장하는 방법이다.
· Planar
처리를 위한 형식이라고 할 수 있다. Web Audio API는 사운드가 재생되기 전까지 이 형태를 유지한다.
예) 16 frame 2 channel planar buffer: LLLLLLLLRRRRRRRR
· Interleaved
재생을 위한 형식이라고 할 수 있다. L/R을 번갈아가며 저장한다. MP3를 디코딩하면 기본적으로 이 형태로 되어 있다. Web Audio API는 MP3를 디코딩할 때 이 Interleaved 형태를 Plannar 형태로 바꾼 후 처리한다.
예) 16 frame 2 channel interleaved buffer: LRLRLRLRLRLRLRLR
◆ a-rate 오디오 파라미터(audio param)와 k-rate 오디오 파라미터
· a-rate 오디오 파라미터: 설정한 오디오 파라미터를 각각의 프레임에 적용시킨다. 기본으로 설정되어 있는 정책이다.
· k-rate 오디오 파라미터: 설정한 오디오 파라미터를 블록(block, 128 프레임) 단위로 적용시킨다.
■
'웹 오디오 프로그래밍' 카테고리의 다른 글
[Web Audio API #15] 녹음하기 - 마이크 소리 듣기 (0) | 2021.08.08 |
---|---|
[Web Audio API #14] 녹음하기 - 마이크 찾기 (0) | 2021.08.06 |
[Web Audio API #12] 오디오 필터 사용하기 (0) | 2021.08.02 |
[Web Audio API #11] 오디오 필터 - filters (0) | 2021.07.28 |
[Web Audio API #10] Analyser 노드 응용 - 자동 볼륨 보정 (0) | 2021.07.18 |
댓글