
Fonction HandleMIDI du module MIDI Scripter de MainStage
La fonction HandleMIDI() vous permet de traiter les évènements MIDI reçus par le module. HandleMIDI est appelé chaque fois que le module reçoit un évènement MIDI et est obligatoire pour traiter les évènements MIDI entrants. Si vous n’implémentez pas la fonction HandleMIDI, les évènements sont transmis inchangés au module.
HandleMIDI est appelé avec un argument correspondant à un objet JavaScript qui représente l’évènement MIDI entrant. L’usage de HandleMIDI et de l’objet évènement JavaScript est illustré dans les exemples.
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 1 : Interconnexion simple
Permet de transmettre les évènements MIDI par le biais du module.
function HandleMIDI(event) {
event.send();
}
Script Tutoriel 2 : Évènements de trace
Consignent les évènements dans la console du module et ne les envoient pas n’importe où.
function HandleMIDI(event) {
event.trace();
}
Script Tutoriel 3 : Transposer et retarder
Répète les notes d’une octave vers le haut avec un retard de 100 ms et transmet tous les autres évènements.
Le texte après /*…*/ correspond à des commentaires pour expliquer le code JavaScript.
function HandleMIDI(event) {
event.send(); /* send original event */
if (event instanceof Note) { /* if it is a note */
event.pitch += 12; /* transpose up one octave */
event.sendAfterMilliseconds(100); /* send after delay */
}
}
Script Tutoriel 4 : Désaccordage de la tonalité des notes
Accordez tous les évènements de déclenchement de note vers le haut ou le bas par valeurs d’un centième (1/100 de demi-ton). La plage va de -100 à +100 centièmes.
function HandleMIDI(event) {
if (event instanceof NoteOn) { /* if it's a note on */
event.detune = GetParameter("Detune") /* retrieve detune parameter value from var PluginParameters */
}
event.send(); /* send detune value */
}
var PluginParameters = [{name:"Detune", type:"lin", numberOfSteps:200, minValue:-100.0, maxValue: 100.0, defaultValue:0}];
/* create a linear parameter called "Detune" with a range of -100 to 100, and a default value of 0 */