
Verwenden des JavaScript TimingInfo-Objekts in MainStage
Das TimingInfo-Objekt enthält Informationen, die den Status des Host-Transports und das aktuelle musikalische Tempo und Metrum beschreiben. Ein TimingInfo-Objekt kann durch den Aufruf von GetTimingInfo() abgerufen werden.
Eigenschaften von TimingInfo
TimingInfo.playing: Verwendet die Boolesche Logik, bei der „true“ bedeutet, dass der Host-Transport läuft.
TimingInfo.blockStartBeat: Eine Gleitkommazahl zeigt die Taktposition zu Beginn des Verarbeitungsblocks an. Alternativ kann die
beatPos
-Eigenschaft verwendet werden. Weitere Informationen findest du unter Verwenden der beatPos-Eigenschaft des MIDI-Events.TimingInfo.blockEndBeat: Eine Gleitkommazahl zeigt die Taktposition am Ende des Verarbeitungsblocks an.
TimingInfo.blockLength: Eine Gleitkommazahl zeigt die Länge des Verarbeitungsblocks in Takten an.
TimingInfo.tempo: Eine Gleitkommazahl zeigt das Host-Tempo an.
TimingInfo.meterNumerator: Eine Ganzzahl zeigt den Zähler des Host-Metrums an.
TimingInfo.meterDenominator: Eine Ganzzahl zeigt den Nenner des Host-Metrums an.
TimingInfo.cycling: Verwendet die Boolesche Logik, bei der „true“ bedeutet, dass der Host-Transport sich im Cycle-Modus befindet.
TimingInfo.leftCycleBeat: Eine Gleitkommazahl zeigt die Taktposition zu Beginn des Cycle-Bereichs an.
TimingInfo.rightCycleBeat: Eine Gleitkommazahl zeigt die Taktposition zu Ende des Cycle-Bereichs an.
Hinweis: Die Länge eines Taktschlags wird durch die Taktart und das Tempo von MainStage bestimmt.
Lade die entsprechende Tutorial-Einstellung, um das Skript im Skripteditor anzuzeigen. Dies erleichtert das Verständnis der Syntaxstruktur und des Layouts von Code und Kommentaren. Weitere Informationen findest du unter Verwenden des Script Editors.
Tutorial-Skript 10: Benötigt TimingInfo und GetTimingInfo
In MainStage übergibt dieses Beispiel die Taktposition während des laufenden Transports an die Konsole.
Text nach „/*“ zeigt Kommentare an, die den JavaScript-Code erklären.
var NeedsTimingInfo = true; /* needed for GetTimingInfo to work */
function ProcessMIDI() {
var info = GetTimingInfo(); /* get the timing info from the host */
if (info.playing) /* if the transport is playing */
Trace(info.blockStartBeat) /* print the beat position */
}