
Utilisation de l’objet JavaScript MIDI dans MainStage
L’objet MIDI contient un certain nombre de fonctions pratiques et simples d’emploi que vous pouvez utiliser lors de l’écriture de vos scripts.
Remarque : comme l’objet MIDI est propriété de l’objet global, vous n’avez pas besoin d’en créer une instance, mais vous pouvez accéder à ses fonctions comme avec l’objet JavaScript Math. Par exemple, en appellant directement MIDI.allNotesOff().
Propriétés de l’objet MIDI
Utilisez le nom et les arguments suivants des méthodes pour exécuter ces fonctions :
noteNumber(nom) : renvoie le numéro de la note MIDI pour le nom indiqué de la note. Exemple : C3 ou B#2.
Remarque : vous ne pouvez pas utiliser de bémols dans votre argument. Utilisez dès lors A#3 (La dièse troisième) plutôt que Bb3 (Si bémol troisième).
noteName(tonalité chiffrée) : renvoie le nom (sous forme de chaîne) pour le numéro indiqué de la note MIDI.
ccName(numéro du contrôleur) : renvoie le nom du contrôleur (sous forme de chaîne) pour le numéro indiqué du contrôleur.
allNotesOff() : envoie un message pour relâcher toutes les touches sur tous les canaux MIDI.
normalizeStatus(numéro de l’état) : normalise une valeur à la plage sécurisée des octets d’état MIDI (128 à 239).
normalizeChannel(numéro du canal) : normalise une valeur à la plage sécurisée des canaux MIDI (1 à 16).
normalizeData(numéro des données) : normalise une valeur à la plage sécurisée des octets de données MIDI (0 à 127).
Chargez le réglage Tutoriel correspondant pour afficher le script dans l’éditeur de scripts. Vous comprendrez ainsi la structure de la syntaxe et la mise en page du code et des commentaires. Consultez la section Utilisation de l’éditeur de scripts.
Script Tutoriel 11 : détection d’évènement
Dans MainStage, ce script fait passer tous les évènements et envoie un message « Désactiver toutes les notes » quand un évènement de contrôleur continu MIDI n°20 est reçu.
Le texte après /*…*/ correspond à des commentaires pour expliquer le code JavaScript.
function HandleMIDI(event) {
event.send(); /* pass through the event if the event is MIDI CC 20 */
if (event instanceof ControlChange && event.number == 20)
MIDI.allNotesOff(); /* send an all notes off message */
}