我正在尝试将一个非常基本的音符MusicSequence(MusicSequence Reference)保存到MIDI文件中。文件正在写入,音符的持续时间也是(如果我把持续时间4,那么MIDI文件持续2秒,如果我将它改为2然后它应该持续1秒)但是没有声音被复制和如果我查看Logic中的MIDI文件,那么也没有任何信息。似乎笔记持续时间已写入,但笔记的笔记不是。
可能会发生什么?
+ (MusicSequence)getSequence
{
MusicSequence mySequence;
MusicTrack myTrack;
NewMusicSequence(&mySequence);
MusicSequenceNewTrack(mySequence, &myTrack);
MIDINoteMessage noteMessage;
MusicTimeStamp timestamp = 0;
noteMessage.channel = 0;
noteMessage.note = 4;
noteMessage.velocity = 90;
noteMessage.releaseVelocity = 0;
noteMessage.duration = 4;
if (MusicTrackNewMIDINoteEvent(myTrack, timestamp, ¬eMessage) != noErr) NSLog(@"ERROR creating the note");
else NSLog(@"Note added");
return mySequence;
}
答案 0 :(得分:5)
尝试编写一个> 20和< 109(midi note range)。虽然4可能在技术上有效,但它超出正常midi音符的范围。
此外,使用Core Audio / MusicPlayer等的有用功能是CAShow() - 因此请尝试CAShow(sequence)
查看序列数据。