2013-03-20 4 views
0

노래를로드하고 수정 한 다음 새 노래를 저장하고 싶습니다. C++에서 그렇게하는 방법을 찾고 있습니다.C++로 웨이브 파일 수정

내 목표는 저음 주파수 만 유지하고 고주파수는 제거하는 소프트웨어를 만드는 것입니다. 제가 단서, 조언 또는 권고를 찾고 있어요이

File music = new File("song.wave"); 
int frequence = 500; 

for (int i = 0; music.data.lenght > i; i++) { 
    if (music.data[i] > frequence) { 
     music.data[i] = 0; //Or something like this 
    } 
} 

music.save("newsong.wave"); 

처럼 뭔가를 할 수 있도록 몇 가지 라이브러리가있는 경우

이 궁금하다.

+2

[Waveform Audio Reference] (http://msdn.microsoft.com/en-us/library/ms713504%28v=vs.85%29.aspx) –

+0

[로우 패스 필터] (http : //en.wikipedia.org/wiki/Low-pass_filter). 과학 도서관을 검색하거나 Matlab에서 작업 할 수 있습니다. – Synxis

답변

5

low-pass filter이 필요합니다. 이를 위해 과학 라이브러리를 사용하여이를 수행 할 수 있습니다 (예 : wav 파일 열기 및 저장). 그러나 코드를 작성하기 전에 필터가 무엇인지 이해해야하며이를 수행하는 가장 좋은 방법은 일부 기사 나 책을 읽고 MATLAB을 가지고 노는 것입니다.

여기서 IT++ 또는 GNU Scientific Library과 같은 숫자 라이브러리의 list이 있습니다. C++에서 R, with some parsers을 사용할 수도 있습니다. 마지막으로 C 또는 C++에서 MATLAB 함수를 사용할 수도 있습니다.

더 자세히 조사하려면 : 원하는 신호 처리를 신호 처리라고합니다 (신호 처리는 오디오보다 넓습니다).