gpt4 book ai didi

ios - 从 MIDI 文件 IOS 读取拍号(如 4/4)

转载 作者:行者123 更新时间:2023-11-28 21:58:03 24 4
gpt4 key购买 nike

花了将近半天时间还是没明白我是如何使用iOS(objective c, CoreMIDI)从一个midi文件中得到4和4(4/4)的值

我有一个 midi 文件 4/4 19 小节 120 bmp

我尝试了以下代码:

MusicTimeStamp inBeats;
UInt32 inSubbeatDivisor;
CABarBeatTime outBarBeatTime;
MusicSequenceBeatsToBarBeatTime(aSequence, inBeats, inSubbeatDivisor, &outBarBeatTime);

NSLog(@"%i, %i, %i, %i, %i, %f", outBarBeatTime.bar, outBarBeatTime.beat, outBarBeatTime.reserved, outBarBeatTime.subbeat, outBarBeatTime.subbeatDivisor, inBeats);

NSLOG 结果:5、3、755、0、50617、0.000000

不确定如何处理来自 NSLog 的信息。

如果 MIDI 文件将是 6/2 或 4/2 或 5/8。然后我想简单地获取这个值(第二个/第一个)

谁能帮我计算一下?谢谢!

最佳答案

MusicSequenceBeatsToBarBeatTime 只是在两种不同格式之间转换时间戳,但它不会告诉您它用于转换的拍号。

拍号是用速度轨道中的拍号元事件指定的。所以你必须用 MusicSequenceGetTempoTrack 获得节奏轨道, 使用 MusicEventIterator搜索类型为 kMusicEventType_Meta 的事件,并检查这些事件是否为拍号元事件(如果拍号发生变化,可能会有多个拍号事件)。

关于ios - 从 MIDI 文件 IOS 读取拍号(如 4/4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25880178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com