将非常简单的MusicSequence保存到MIDI中不会再现声音

时间:2012-08-03 21:41:59

标签: ios iphone ios5 midi musicsequence

我正在尝试将一个非常基本的音符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, &noteMessage) != noErr) NSLog(@"ERROR creating the note");
    else NSLog(@"Note added");

    return mySequence;
}

1 个答案:

答案 0 :(得分:5)

尝试编写一个> 20和< 109(midi note range)。虽然4可能在技术上有效,但它超出正常midi音符的范围。

此外,使用Core Audio / MusicPlayer等的有用功能是CAShow() - 因此请尝试CAShow(sequence)查看序列数据。