<分区>
我想制作一个应用程序来查找节拍的时间戳以及“长音符”,并且通常我想了解有关轨道的所有信息并将其存储在一个“属性”数组中看起来像这样,让我们说(对于节拍):
beatsTimeStamps = [1, 4, 7, 10, 12]
(所有整数均以秒为单位)。也就是说,假设这些是 15 秒轨道中出现节拍的时间。
另一个例子是存储长和弦信息的字典,例如:
longChordsTimeIntervals: [1: 4, 7:10, 15:20]
,遵循格式 [beginningTimeStampOfChord1: endingTimeStampOfChord1, beginningTimeStampOfChord2: endingTimeStampOfChord2, etc....].
最好知道和弦由哪些音符组成,但这可能更难。
我如何着手分析音轨以获得此类信息?市面上的第 3 方 iOS 音频框架似乎都无法轻松做到这一点。
最佳答案
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 网站上也有关于复调音高估计的内容,但这比节拍跟踪要难得多。
关于ios - Swift iOS - 如何分析给定的 MP3 文件以确定节拍的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35529884/