5

非常に基本的な 1 つのノート 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;
}
4

1 に答える 1

5

> 20 かつ < 109 ( midi note range ) のノートを書いてみてください。4 は技術的に有効かもしれませんが、通常の MIDI ノートの範囲外です。

また、Core Audio/MusicPlayer などで動作する便利な関数として CAShow() がありますのでCAShow(sequence)、シーケンス データを表示してみてください。

于 2012-08-04T17:28:41.187 に答える