fdi*_*iaz 8 iphone midi ios ios5 musicsequence
我正在尝试在MusicSequence中更改时间签名(默认为4/4),但我似乎不明白如何执行此操作.我在序列中有2个MusicTracks,还有一个MusicPlayer来重现音乐.我该如何更改此值?
编辑:
我现在知道我需要在MusicSequence Tempo Track中添加Time Sig事件.我知道我可以使用MusicSequenceGetTempoTrack获取此曲目,但如何为其添加时间sig事件?
编辑2:
研究我意识到我需要为Music Tempo Track 创建一个MusicTrackExtendedMetaEvent.现在我需要知道如何正确格式化MIDIMetaEvent(我知道88是metaEventType但不知道如何添加其余的信息).
经过4次浪费4个小时后,我想出了怎么做.这里的代码:
//Getting the tempo track
MusicTrack tempoTrack;
MusicSequenceGetTempoTrack (musicSequence, &tempoTrack);
//Set time signature to 7/16
MIDIMetaEvent timeSignatureMetaEvent;
timeSignatureMetaEvent.metaEventType = 0x58;
timeSignatureMetaEvent.dataLength = 4;
timeSignatureMetaEvent.data[0] = 0x07;
timeSignatureMetaEvent.data[1] = 0x04;
timeSignatureMetaEvent.data[2] = 0x18;
timeSignatureMetaEvent.data[3] = 0x08;
MusicTrackNewMetaEvent(tempoTrack, 0, &timeSignatureMetaEvent);
Run Code Online (Sandbox Code Playgroud)
这里是对MIDI文件规范的引用,用于查找时间签名代码到http://www.somascape.org/midi/tech/mfile.html
| 归档时间: |
|
| 查看次数: |
1114 次 |
| 最近记录: |