제가 지금 진행중인 프로젝트는 소리를 저장한후(binary data) 다시 리플레이를 하면서
fft 와 dB(A) 데이터로 변환하여 동시에 원 소스 데이터의 파형과 fft 파형, dB 파형 이렇게 세개의 파형을
그래프로 표시하는 겁니다. 제가 참고한 소스는 넷상에 도는 wave file 을 로드하여 fft 로 그려주는 일본사람의 소스입니다.
이 일본사람(이름이...^^;) 의 경우 그래프를 별도의 객채화 하여 일일이 draw 를 하기에 제가 가진 프로그램에
커스터마이징 하다보니 (저는 지금 TeeChart 를 쓰고 있으며 이것또한 약간의 변형이 있습니다.) 일단 배열에 넣어진
값들을 루프를 돌려서 순차적으로 뿌려주고 있습니다.
이 소스의 경우 wave file 을 플레이한후 fft 가 쓰레드로 그려지므로 만일 wave file 의 사이즈가 클경우 씽크가 안 맞는
사태가 생긴다는 겁니다. 혹시 웨이브파일을 블럭단위로 플레이한다던가 전체 binary data 버퍼에 넣는 방식이 아닌 부분부분을
사운드카드로 직접 내보낼 수 있는 방법은 없을까요?
정리하자면,
1) 화면에 3개의 그래프가 있다.
2) 저장된 binary data 를 열어서 첫번째 그래프에 파형을 보여준다.
3) 이것을 플레이하면 소리가 나옴과 동시에,
4) 현재 플레이중인 파형의 위치가 범위로 표시되며(입력받은 Window Line 기준)
5) 두번째 그래프에 현재 범위의 FFT 파형을,
6) 세번째 그래프에 현재 범위의 dB(A) 파형을 가각 그린다.
문제점
1) 세개의 파형을 그려주면서 소리를 듣을때 fft, 범위표시(현재 플레이되는 구간의 위치표시)등의 싱크가 맞지 않는다.
2) 웨이브의 전체 파형중 특정 구간만을 플레이할 수 있는 소스나 참고할만한 예제가 있으면 구하고 싶다.
(데이터의 전체 사이즈가 클경우 현재 구현방식으로는 메모리 부족 에러가 발생한다.)
등입니다.
처음 접하는 분야라 모든게 새롭고 모르는 부분이군요 ^^;
고수님들의 조언 바랍니다.