이에게 물어 잘못된 장소가 될 수도 있지만 나는 좀 기본적으로이상한 오디오 일시적는 오디오 신호
... 진짜 문제가 무엇인지 파악하는 데 도움이 필요, 나는 USB 오디오를 할 수있는 마이크로 컨트롤러를 프로그래밍하고있어 녹음 (USB 오디오 클래스 2.0/고속 USB 사용).
는 것 같아요 내가 무슨 부탁 해요 : 나는 "바르게"그것을 얻기에 아주 가까이지고있어하지만 난 대담에 첩을 기록 할 때이납니다 것 같다 [아래 발췌 한 것입니다] 내가 녹음 세션에서 이상한 중단과 점프를하는 이유는 무엇입니까? 내가 코덱 입력 버퍼를 충분히 빨리 읽지 않거나 프레임 길이가 올바르게 설정되지 않았기 때문입니까?
내가 애플에서 USB 오디오 가이드에서 가져온 내 프레임 길이를 계산하고있어 어떻게 (44.1kHz의 샘플 속도와 16 비트 전송률 사용) :이 코덱 입력을 읽는 과정도
#define AUDIO_POLL_INT 4
#define FRAME_BYTES (BIT_RATE_16/8)
#define NUM_CHANNELS STEREO
uint16_t frame_len = 44 (44.1kHz/1000 samples) * NUM_CHANNELS * FRAME_BYTES;
if (!(frame_pos % 9)) frame_len += (1 * NUM_CHANNELS * FRAME_BYTES)
frame_len = (frame_len/8) * (2 << (AUDIO_POLL_INT-1));
// 10 ms frames
frame_pos = (((frame_pos + 1)/8) * (2 << (AUDIO_POLL_INT-1))) % 10;
입니다 :
1) 코덱 입력 읽기; 샘플을 임시 버퍼에로드하십시오 (코덱 주변 장치에서 메모리 주변 장치로 전송).
2) 메모리 주변 장치 인터럽트는 전송이 완료되면 (버퍼가 가득 찼을 때, frame_len 용량이 충족되면) 버퍼 샘플을 USB로 보냅니다. 나중에 코덱 입력을 다시 읽으십시오.
잘하면이 부분이 너무 복잡하지 않으므로 알려주세요. 정보를 추가하거나 정리할 수 있습니다. 감사!
당신이 옳았습니다. 코드에 실제로 읽거나 쓰기 포인터를 너무 많이 늘린 선이 남아있어서 그 "깜박임"을 얻고있었습니다. 이제 꽤 깨끗합니다. –