我想寫一個音樂軟件,可以播放音樂,可以檢測從計算機的麥克風中取出的聲音的音高(使用濾波器濾除頻率的算法),並啓用良好的用戶界面。 http://smartmusic.com什麼是音樂軟件的良好編程語言?
什麼可能是最合適的語言來寫這類軟件有任何建議:類似smartmusic的東西嗎?有誰知道smartmusic編碼的語言是什麼?
謝謝
我想寫一個音樂軟件,可以播放音樂,可以檢測從計算機的麥克風中取出的聲音的音高(使用濾波器濾除頻率的算法),並啓用良好的用戶界面。 http://smartmusic.com什麼是音樂軟件的良好編程語言?
什麼可能是最合適的語言來寫這類軟件有任何建議:類似smartmusic的東西嗎?有誰知道smartmusic編碼的語言是什麼?
謝謝
我建議Java。
它有自己的聲音處理API,是相當簡單易學。
http://java.sun.com/products/java-media/sound/
「企鵝吉他」(開源)是用Java編寫,並說明了什麼是可能的:
我假設你正在試圖做以上實時或接近實時?在這種情況下,你一定要看看編譯語言,而不是解釋腳本語言,因爲這種分析所需的數學很可能需要在解釋型語言中需要太多的處理能力。
大多數軟件處理這類信號處理往往在相當低的水平的語言,如C.你甚至可能會發現,有您的特定平臺適用於這種處理的庫被寫入。這當然是我開始尋找的地方,除非你想用智慧的好奇心去實現這些算法。根據你找到的庫,你可以去找一種可以使用它的編程語言,這可能會導致你回到C語言家族(也就是C,C++,Objective-C取決於你的平臺) 。
最好的語言是最有可能你知道得最清楚的一個,只要它是一個很好的多用途語言,可以輕鬆訪問音頻(麥克風/揚聲器)的硬件。 Visual Basic,C#,C++,Java都很容易編寫,並且可以很好地訪問硬件等。
但是最終,音頻處理非常簡單,錄製/回放API非常普遍 - 所以最好的語言可能是你最有信心使用的語言。你總是可以從一個基本的實驗開始(記錄和回放一些音頻) - 如果你對這個過程感到滿意,那麼它的音頻處理方面在任何語言上都是一樣的。
它似乎並不認爲你需要編寫複雜的效果和數碼音效處理功能...所以你不需要低級語言,如C++。我認爲你應該把重點放在用戶界面和可用性上。我看到有人建議Java。即使Java易於使用,Java用戶界面編程也不是很實用。我寧願選擇Python,C#或Java等高級語言,並使用更實用的工具包。例如,你可以在C#中使用WPF或Winforms。或者Python的Qt或Gtk(甚至有Java綁定......但我不確定它的狀態)。無論如何,請使用可讓您輕鬆編碼的內容,以便您可以專注於可用性和內容。
我使用Delphi。它結合了上面的所有功能,它被編譯,它有一個強大的音頻處理庫(BASS),並且具有美妙的用戶界面功能。有了它,我寫了一個調音臺,一個命令行播放器,一個頻譜分析器,一個聲音和沉默搜索器,以及一個音樂比較器。
使用語言專門計算機音樂和DSP,否則你會被重新發明輪子。
如果您熟悉從學校Pascal語言,那麼我建議去德爾福。它基於Object Pascal,它具有C++的大部分功能(如果不是更多),還可以讓您遠離大多數高級編程概念。知道很少,你可以做很多事情。
上述音頻庫(低音,Fmod等)都有Pascal接口。關於GUI構建,VCL是一個易於使用的解決方案,FMX如果您想要進行多平臺的話。
Delphi,FMX和Bass的組合對於沒有經驗的初學者或程序員來說是最強大的音頻編碼設置(像我一樣)。幾乎所有其他事情意味着需要更多努力或更多專業知識。
如果實時性能是一個問題,那麼您最好看看C++。 – 2009-12-05 16:27:12