(前言:這是我的第一個關於堆棧溢出的音頻相關問題,所以我會盡力將其儘可能最好地表達出來,編輯歡迎。 )使用AVFoundation/CoreMedia /其他框架來檢測節拍/發音
我正在創建一個允許用戶循環播放音樂的應用程序。目前我們的原型允許這些「循環標記」(實現爲UISliders)每秒捕捉一次,指定循環的開始和結束。顯然,當循環播放音樂時,秒是處理這種情況的一種非常粗糙的方式,所以我想用beat來代替。
我不想做的比標記以外的任何擊敗了UISliders捕捉到:
- 訂閱我們的
loadMusic
方法的音頻文件。 - 通過庫運行它來檢測節拍或它們之間的時間間隔(也許)。
- 將該值輸入到滑塊的
setNumberOfTickMarks:
方法中。 - 利潤!
不幸的是,我通過Google和SO運行的大部分結果都產生了更多高級節拍檢測庫,如混音器將使用的那些。誇大我的情況。
這是CoreMedia,AVFoundation或AudioToolbox可以處理的事情嗎?如果沒有,是否還有其他庫可以處理這個問題?我對蘋果文檔的研究僅僅爲MIDI文件產生了相關的結果。但是蘋果自己的軟件具有這樣的功能,例如iMovie's snap-to-beats functionality。
在這一點上,任何指導,代碼或摘要都是非常有用的。
編輯:做了一些更四處之後,它似乎是正確的術語爲我正在尋找的是開始檢測。
那麼,你需要獲得純PCM數據。選擇音頻庫提供的內容並將現有的algortihms應用於數據 – 2012-02-20 11:11:25
看到這個問題?它似乎有一些相當不錯的解決方案的鏈接。 http://stackoverflow.com/questions/657073/how-to-detect-bpm-of-the-song-by-programming – 2012-03-03 22:55:39