我想创建一个可以找到节拍时间戳的应用程序,以及"长音符",通常我想知道关于音轨的所有内容并将其存储在一个数组中"属性"看起来像这样,让我们说(节拍):
beatsTimeStamps = [1, 4, 7, 10, 12]
(所有整数都在几秒钟内)。也就是说,这就是15秒钟音轨发生节拍的时间。
另一个例子是存储有关长和弦的信息的字典,例如:
longChordsTimeIntervals: [1: 4, 7:10, 15:20]
,其格式为[beginningTimeStampOfChord1: endingTimeStampOfChord1, beginningTimeStampOfChord2: endingTimeStampOfChord2, etc....].
最好知道和弦所包含的音符,但这可能更难。
如何分析音轨以获取此类信息?没有任何第三方iOS音频框架似乎很容易做到这一点。
答案 0 :(得分:1)
在MIREX music-ir网站上,有大量关于音频速度估计和音频节拍跟踪领域最新技术的研究论文。
http://www.music-ir.org/mirex/wiki/MIREX_HOME
http://www.music-ir.org/mirex/wiki/2015:Audio_Tempo_Estimation
http://www.music-ir.org/mirex/wiki/2015:Audio_Beat_Tracking
这不是标准iOS音频框架中的简单内容。 iOS设备可能具有足够的计算能力,但创建算法和代码并非易事。
MIREX网站上还有关于复音音高估计的内容,但比击败跟踪要困难得多。