我正在嘗試整合一種機制來計算iPod庫(也是在iphone上)歌曲的BPM。 在網上搜索我發現最常用和最可靠的庫是做Soundtouch的。任何人都有這個庫的經驗嗎?在計算上可以使它在iPhone硬件上運行?Soundtouch bpm iPhone
0
A
回答
4
使用從BPMDetect類soundtouch庫成功地代碼我最近一直。最初編譯它C++,後來的代碼轉換爲C#,最近我一直在使用通過JNI的的Android應用的C++代碼。我對iOS的開發並不十分熟悉,但我幾乎可以肯定,你可能正在嘗試做什麼。
,則應該從soundtouch源代碼使用的唯一文件如下:
C++文件
- BPMDetect.cpp
- FIFOSampleBuffer.cpp
- PeakFinder .cpp
頭文件
- BPMDetect.h
- FIFOSampleBuffer.h
- FIFOSamplePipe.h
- PeakFinder.h
- soundtouch_config.h
- STTypes.h
至少這些是我不得不使用的唯一工具。
的BPMDetect類通過其inputSamples()方法,它能夠計算即使當整個文件尚未加載到其緩衝器中的BPM值的臨危原始樣本。我發現這些中間值與整個文件加載後獲得的中間值不同,根據我的經驗,這更準確。
希望這會有所幫助。
編輯:
這是一種複雜的過程,以在註釋中說明,所以我要編輯答案。
它的要點是你需要你的android應用程序來使用本地代碼。爲此,您需要使用Android NDK工具箱從soundtouch庫中編譯上面列出的文件。
這會給你留下原生代碼,能夠處理原始聲音數據,但你仍然需要從聲音文件中獲取數據,我認爲你可以採用幾種方法。我這樣做的方式是使用FMOD library for Android,下面是一個很好的例子:FMOD for Android。
假如你宣佈你的C代碼,像這樣的方法:
void Java_your_package_YourClassName_cPlay(JNIEnv *env, jobject thiz)
{
sound->play();
}
在您使用以下方式你的本地方法的Android應用:
public class Sound {
// Native method declaration
private native void cPlay();
public void play()
{
cPlay();
}
}
爲了有一個更友好與你一起工作的API可以創建這些函數調用的包裝器。
我把我在使用的原生C代碼here。
希望這會有所幫助。
相關問題
- 1. Soundtouch for iPhone
- 2. 返回shell_exec作爲字符串PHP檢測BPM與soundtouch/soundstrech
- 3. BPM分析iOS
- 4. Android上的SoundTouch?
- 5. 使用Soundtouch編譯C++
- 6. Intalio BPM與Joget BPM開源
- 7. Linux命令行/ PHP bpm檢測
- 8. IBM Websphere BPM/Lombardi
- 9. BPM vs ESB - Orchestration?
- 10. 配置Activiti BPM?
- 11. 對音樂文件C的精確BPM檢測#
- 12. 訪問iPhone OS 3.0中的BPM ID3標籤
- 13. iPhone AudioQueue - 讀取傳入的音頻數據,以確定BPM
- 14. CMIS與BPM集成
- 15. IBM BPM same flowObjectId/guid
- 16. BPM 8.0支持TLS1.2?
- 17. Oracle SOA BPM問題
- 18. Oracle BPM 11g組織單元
- 19. 在Eclipse中調試Camunda BPM
- 20. Bpm音頻檢測庫
- 21. 商業工作室ActiveMatrix BPM
- 22. 啓動camunda bpm OSGI包
- 23. Activiti BPM初學者指南?
- 24. JBoss BPM套件安裝
- 25. Oracle BPM Ajax到Fuego對象
- 26. java.lang.NoClassDefFoundError:org/camunda/bpm/model/bpmn/instance/FlowNode
- 27. PHP中的BPM框架?
- 28. IBM BPM-Javascript觸發延遲
- 29. 這是BPM還是別的?
- 30. Oracle BPM套件REST服務
您能否提供一個Android應用程序如何處理soundtouch庫的音頻輸入數據的例子?謝謝! – shiami
@ juan.facorro有沒有機會分享你的知識在android上獲取節奏?我似乎無法找到'soundtouch_config.h'。但主要問題實際上是我無法找到你在要點中使用的任何FMOD類。 –
@SherifelKhatib我從事這個項目已經有一段時間了。這裏有一篇文章在Android上使用FMOD庫:[FMOD for Android](http://broadcast.oreilly.com/2011/06/fmod-for-android.html)。在使用速度檢測器時,我用這篇文章作爲指導。我將嘗試在接下來的幾天內使用應用程序的代碼創建一個github項目。 –