X

Table Of Contents
Chapter 9 MIDI plug-ins 192
TimingInfo.rightCycleBeat: A oating point number indicates the beat position at the end of the
cycle range.
Note: The length of a beat is determined by the host application time signature and tempo.
Print the beat position while the transport is running
m Type the following in the Script Editor window:
var NeedsTimingInfo = true;
function ProcessMIDI() {
var info = GetTimingInfo();
if (info.playing)
Trace(info.beat)
}
Use the JavaScript MIDI object
The MIDI object contains a number of convenient and easy to use functions that can be used
when writing your scripts.
Note: The MIDI object is a property of the global object, which means that you do not instantiate
it but access its functions much like you would the JavaScript Math object. An example is calling
MIDI.allNotesO() directly.
MIDI object properties
Use the following method names and arguments to perform these functions:
noteNumber(string name): Returns the MIDI note number for a given note name. For example:
C3 or B#2.
Note: You cannot use ats in your argument. Use A#3, not Bb3.
noteName(number pitch): Returns the name (string) for a given MIDI note number.
ccName(number controller): Returns the controller name (string) for a given controller number.
allNotesO(): Sends the all notes o message on all MIDI channels.
normalizeStatus(number status): Normalizes a value to the safe range of MIDI status bytes
(128–239).
normalizeChannel(number channel): Normalizes a value to the safe range of MIDI channels
(1–16).
normalizeData(number data): Normalizes a value to the safe range of MIDI data bytes (0–127).
Pass events through and send all notes o message when receiving controller 20
Type the following in the Script Editor window:
function HandleMIDI(e) {
e.send();
if (e instanceof ControlChange && e.number == 20)
MIDI.allNotesOff();
}