(序文:これはスタック オーバーフローに関する私の最初のオーディオ関連の質問です。そのため、できる限りこれを言葉で表現しようとします。編集を歓迎します。)
ユーザーが音楽をループできるようにするアプリケーションを作成しています。現在、私たちのプロトタイプでは、ループの開始と終了を指定して、これらの「ループ マーカー」(UISliders として実装) を毎秒スナップすることができます。明らかに、音楽をループする場合、これを処理するには秒は非常に大雑把な方法なので、代わりにビートを使用したいと思います。
UISliders がスナップするビートをマークする以外は何もしたくありません。
loadMusic
メソッドに音声ファイルをフィードします。- ライブラリを介して実行して、ビートまたはそれらの間の間隔を検出します(おそらく)。
- その値をスライダーの
setNumberOfTickMarks:
メソッドにフィードします。 - 利益!
残念ながら、私が Google や SO 経由で見つけた結果のほとんどは、リミキサーが使用するような、はるかに高度なビート検出ライブラリをもたらしました。私の場合はやり過ぎです。
これは、CoreMedia、AVFoundation、または AudioToolbox で処理できるものですか? そうでない場合、これを処理できる他のライブラリはありますか? Apple のドキュメントに関する私の調査では、関連する結果のみが得られました... MIDI ファイルについてです。しかし、Apple 独自のソフトウェアには、 iMovie の snap-to-beats 機能など、このような機能があります。
この時点で、ガイダンス、コード、または要約は非常に役立ちます。
編集:もう少し掘り下げた後、私が探しているものの正しい用語はonset detectionです。