Logic Pro X: MIDI イベントの beatPos プロパティを使う

MIDI イベントの beatPos プロパティを使う

Scripter の各 MIDI イベントには、イベントの拍の正確な位置を伝える「beatPos」と呼ばれるプロパティがあります。これによって、イベントのタイミングをより正確に指定でき、ループも適切に処理できます。このプロパティは timingInfo.blockStartBeat の代わりに使うことができます。JavaScript TimingInfo オブジェクトを使うを参照してください。

注記:このプロパティは "var NeedsTimingInfo = true" の場合にのみ機能します。それ以外の場合は値が 0 になり、変更すると警告が表示されます。

  • スクリプトエディタウインドウに以下のいずれかの行を入力します(結果はどちらも同じです):

    event.send() event.sendAtBeat(event.beatPos)
  • または、スクリプトエディタウインドウで以下のいずれかの行を使うこともできます(結果はどちらも同じです):

    event.beatpos += 1; event.send() event.sendAtBeat(event.beatPos + 1)

beatPos プロパティの使用例

beatPos プロパティを使うと、指定の拍の位置に MIDI イベントを送信できます。以下の例では、対応するノート・オン・イベントよりも 1 拍分後ろの位置にノート・オフ・イベントが送信されます。

注記:event.sendAtBeat(pos) メソッドを使っても、指定の拍の位置にイベントを送信できます。beatPos プロパティを使う利点は、実際にイベントを送信する必要がないということです。このプロパティを使うだけで、イベントの拍の正確な位置を取得できます。

「/*」の後ろのテキストは、JavaScript コードについて説明するコメントを示します。

var NeedsTimingInfo = true; /* needed to make beatPos work */ function HandleMIDI(event) { var on = new NoteOn; /* make a new note on */ on.pitch = 60; /* set its pitch to C3 */ on.beatPos = event.beatPos; /* copy beat position from incoming event */ on.send(); /* send the note on */ var off = new NoteOff(on); /* make a note off using the note on to initialize its pitch value to C3 */ /* note that the beatPos does not get copied here */ off.beatPos = on.BeatPos+1; /* set the beat position of the note off event */ off.send(); /* send the note off event */ }
公開日: 2018/08/17
役に立ちましたか?