두개의 PCM 을 합쳐서 하나의 PCM 으로 .

liush79의 이미지

두개의 PCM 을 합쳐서 하나의 PCM으로 만들고 싶은데요..

PCM은 resampling 해서 동일한 조건으로 맞추어 둔 상태입니다.

이 PCM 데이터를 합쳐야하는데 어떻게 합쳐야할까요.

audio mix, audio edit..

좀 찾아봤는데 2개의 오디오를 합치는 건 못찾겠네요..

단어가 잘 못된건지 ㅠㅠ

...

좀 더 찾아봤더니

2개를 더한다음 반으로 나누면 된다고 하네요 ?

근데 하나는 소리가 있고 .. 하나는 소리가 없다.. 라고하면

소리가 없으면 0 인데.. (0 + 2222) /2 = 1111 이라고 하는건가요?

아니면 오디오도 MAX 값 이 있어서 MAX + 2222 / 2 = ... 이렇게 될라나..

일단 함 해봐야긋네요 -_-;;

thyoo의 이미지

아무생각 없이 샘플을 합치세요.

overflow만 좀 신경써주시고

16비트 경우

assert(sizeof(short) == 16);
 
int mixed = *src_ch1++ + *src_ch2++;
if (mixed > SHORT_MAX) mixed = SHORT_MAX;
else if (mixed < SHORT_MIN) mixed = SHORT_MIN;
*dest++ = (short)mixed;

신호에 따라서 Saturation 구간이 길 수도 있는데
그럴 경우 Gain을 1보다 작게 주세요.
float mixed = ...;
gain = 0.8f;
mixed *= gain;
___________________________________
Less is More (Robert Browning)

___________________________________
Less is More (Robert Browning)

liush79의 이미지

오디오 범위가 16비트라면 -32768~-32767 가 되는군요..

0이면 소리 없음이 되니까 성립되는 듯 하군요 +_+

ㄳ~