1

iOS で (ワンショット) オーディオ効果を (ループする) バックグラウンド ミュージックのビートと同期させるのが好きです。

そのタスクにどのようにアプローチすればよいですか?

編集: 詳細を説明するために、バックグラウンド ミュージックが 4 小節にわたってループするとします。次の 8 番目 (または 16 番目または 4 番目...) の音符で (オーディオ エフェクトの) 別のオーディオ ファイルの再生を開始できるようにしたいと考えています。

4

1 に答える 1

0

単純。それらを同じタイムライン (オーディオ再生コールバックなど) に配置し、入力テンポを使用して、サンプル (または MIDI イベントを使用する場合はティック) のメトリック間隔を決定します。

アップデート

double SamplesPerBeat(const double audioSampleRate,
                      const double beatsPerMinute) {
  assert(8000.0 <= audioSampleRate && 192000.0 >= audioSampleRate);
  assert(20.0 <= beatsPerMinute && 500.0 >= beatsPerMinute);
  return audioSampleRate / beatsPerMinute;
}

uint32_t StartPosition(const double audioSampleRate,
                       const double beatsPerMinute,
                       const uint32_t beatNumber) {
  const double samplesPerBeat = SamplesPerBeat(audioSampleRate, beatNumber);
  return (uint32_t)floor(samplesPerBeat * beatNumber);
}
于 2012-04-29T18:36:18.507 に答える