如何从MIDI文件获取密钥签名(格式0)

时间:2018-06-08 08:33:06

标签: objective-c macos coremidi

我修改了由Gene De Lisa创建的代码来提取有关MIDI文件的信息。注意,我使用的是Objective C,而不是Swift。我可以获得有关时间签名,曲目名称,bpm等的信息,但由于某种原因我无法提取MIDI文件的密钥签名。

这是我的代码:

首先我打开MIDI文件:

geo:<latitude>,<longitude>?z=10

我的理解是你解析MIDI文件的速度轨道,寻找-(void) loadSequence { NSString *songTitle = [[NSUserDefaults standardUserDefaults] objectForKey:@"songTitle"]; NewMusicSequence(&_sequence); //NSURL *midiFile = [[NSBundle mainBundle] URLForResource:songTitle withExtension:@"mid" subdirectory:@"Levels"]; NSURL *midiFile = [[NSBundle mainBundle] URLForResource:songTitle withExtension:@"mid"]; MusicSequenceFileLoad(_sequence, (__bridge CFURLRef)midiFile, 0, 0); } 事件类型,其值为5.时间签名是一种这样的事件,关键签名也是如此。这是代码:

kMusicEventType_Meta

当我在Logic Pro X中打开MIDI文件时,我可以清楚地看到一个关键签名。我尝试将多个密钥签名更改添加到单个MIDI文件中,但它从未显示有任何此类事件。

我错过了什么?

0 个答案:

没有答案