각 채널에서 동일한 스케일링을 사용하여 오디오 입력의 선형 스케일링을 수행하려고합니다.사운드 스케일링 Java
전체적인 효과는 입력 스트림이 조용해질 때까지 진폭이 점차 감소한다는 것입니다. 따라서 첫 번째 샘플은 동일하게 유지되고 마지막 샘플은 진폭 측면에서 0이됩니다. 이걸 어떻게 구현하는지 궁금 해서요.
지금까지 내가 스케일링 코드를 가지고 있으며 16 자리 2의 보수 범위 사이에 있도록 샘플의 크기를 조정해야하는지 궁금해하고있었습니다.
for (int i=0; i<data.length; ++i){ // data[i] is sample in intger form
data[i] = (int) (data[i]*(something/something));
}
특정 요인에 대한 조정이 설명 될 수 있다면 도움이 될까요?
감사합니다.
실제 질문은 무엇입니까? 스케일링을 올바르게하고 진폭 만 줄이면 자동으로 16 비트 범위가됩니다. 그러나 코드가 정확하지 않습니다 - 최대 값을 가진 샘플을 여러 개 필요로하는 이유는 32 비트 범위로 훨씬 커지기 때문입니다. 루프의 첫 번째 반복에서 0으로 나누면 어떻게됩니까? 코드도 실행 했나요? –
@erwin bolwidt 제 질문은 선형 적으로 0으로 스케일하는 방법입니다. 각 샘플을 0으로 나누겠습니까? – Hawwa