2013-03-20 33 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

[波形音頻參考](http://msdn.microsoft.com/en-us/library/ms713504%28v=vs.85%29.aspx) – 2013-03-20 14:10:09

+0

您需要一個[低通濾波器](http: //en.wikipedia.org/wiki/Low-pass_filter)。搜索科學圖書館,或者你可以使用Matlab。 – Synxis 2013-03-20 14:30:04

回答

5

您需要一個low-pass filter。你可以通過使用一個科學庫來實現這一點,這個庫會爲你做很大一部分工作(例如打開和保存wav文件)。但是,在編寫代碼之前,您必須瞭解過濾器是什麼,最好的方法是閱讀一些文章或書籍並使用MATLAB進行操作。

這裏有一個list數字圖書館,如IT++GNU Scientific Library。我想你也可以在C++中使用Rwith some parsers。最後,您還可以在C或C++中使用MATLAB函數。

如果你想研究更多:你想要什麼叫做信號處理(實際上,信號處理比只有音頻更廣泛)。