샘플 배열에서 wav 파일을 생성 중입니다. 파형을 복사하고 시작하면 "딸깍"소리가납니다. 저는 여기에 주기적으로 (44100 Hz에서 16 비트 부호있는 스테레오 PCM) 소리가 나지 다음 사인파 복사 간단한 예입니다 : 여기PCM 샘플 중단으로 인해 클릭
int c, counter = 0;
short *wavdat = malloc(numberOfSamples * 2);
for(c = 0; c < numberOfSamples * 2; c += 2){
counter++;
if(counter % 10000 < 5000){
wavdat[c] = sinf(counter * .1f) * 16000;
wavdat[c+1] = wavdat[c];
}else{
wavdat[c] = wavdat[c+1] = 0;
}
}
은 WAV는 점에서 확대, 대담에 보이는 무엇을 어디 사인파가 차단된다
끝에 날카로운 스파이크는 내가 듣는 클릭 소리의 원인이 될 것으로 보인다. 왜 소리가 순간적으로 멈추는 대신 클릭 소리가 나는 이유는 무엇입니까? 클릭 소리가 들리지 않으면 어떻게 소리를 멈출 수 있습니까? 정확한 시간에 샘플을 복사하지 않아야하므로 페이드 아웃 할 수 있는지 잘 모르겠습니다.
이 문제는 훨씬 복잡한 파형 (예 : 음성 클립 중지)에서도 발생합니다. 사람이 관심이 있다면
여기에 녹음 된 사운드 파일입니다 : http://clyp.it/yc2mpqni
모든 코드를 전달할 가능성이 있습니까? 전체 웨이브 파일이 어떻게 만들어 졌는지 궁금합니다. – plafratt
나는 wav 글쓰기 코드를 직접 작성하지 않았다. 여기에 간단한 C++ 함수가있다. http://ltheory.com/blog/writeWav.txt – user3124047
그래, 고마워. – plafratt