Utilisation de l’objet JavaScript Event dans Logic Pro

Lorsqu’une fonction HandleMIDI est appelée, une objet Event représente un évènement MIDI et implémente plusieurs méthodes que vous pouvez appeler dans votre script.

L’objet Event n’est pas directement instancié, mais constitue un prototype pour les méthodes, propriétés et types spécifiques des évènements suivants.

Astuce : le mot-clé JavaScript « new » vous permet de générer une nouvelle instance d’un objet Event de quelque type que ce soit.

Méthodes d’Event

  • Event.send() : envoie l’évènement.

  • Event.sendAfterMilliseconds(valeur en ms) : envoie l’évènement après que la valeur précisée s’est écoulée (la valeur peut être exprimée sous forme d’un entier ou d’un nombre à virgule flottante).

  • Event.sendAtBeat(numéro du temps) : envoie l’évènement à un temps particulier (numéro à virgule flottante) dans la timeline de l’hôte.

  • Event.sendAfterBeats(numéro du temps) : identique à la méthode ci-dessus, à la différence que sa valeur de temps représente un retard exprimé en temps à partir du point actif.

  • Event.trace() : affiche le résultat dans la console du module. Consultez la section Utilisation de l’objet Trace.

  • Event.toString() : renvoie une représentation de l’évènement sous forme de chaîne.

Propriétés de l’objet Event

  • Event.toarticulationID(entier) : définit l’identifiant de l’articulation allant de 0 à 254.

  • Event.channel(nombre) : définit le canal MIDI, de 1 à 16.

  • Event.beatPos : Récupère la position de temps exacte de l’évènement.

Types d’évènements

L’objet Event est un prototype pour les types d’évènements suivants. Tous les types d’évènements héritent les méthodes et les propriétés de canaux décrites ci-dessus.

Les types d’évènements et leurs propriétés sont passés à HandleMIDI comme suit :

  • NoteOn.pitch(nombre entier) : tonalité de 1 à 127.

  • NoteOn.velocity(nombre entier) : vélocité de 0 à 127. Une valeur de vélocité de 0 est interprétée comme un évènement de relâchement de touche et non comme un déclenchement de note.

  • NoteOff.pitch(nombre entier) : tonalité de 1 à 127.

  • NoteOff.velocity(nombre entier) : vélocité de 0 à 127.

  • PolyPressure.pitch(nombre entier) : tonalité de 1 à 127.

  • PolyPressure.value(nombre entier) : Il définit la valeur de pression allant de 0 à 127.

  • ControlChange.number(nombre entier) : numéro de contrôleur de 0 à 127.

  • ControlChange.value(nombre entier) : valeur de contrôleur de 0 à 127.

  • ProgramChange.number(nombre entier) : numéro de changement de programme de 0 à 127.

  • ChannelPressure.value(nombre entier) : valeur d’aftertouch de 0 à 127.

  • PitchBend.value(nombre entier) : valeur de pitchbend sur 14 bits, de – 8192 à 8191. Une valeur de 0 correspond au centre.

  • TargetEvent.target(chaîne) : permet de créer des messages CC MIDI définissables par l’utilisateur ou de contrôler les paramètres du module.

  • TargetEvent.value(virgule flottante) : Il détermine la valeur cible.

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 7 : Création d’un évènement

Dans Logic Pro, cet exemple remplace chaque évènement MIDI reçu par un message de changement de contrôle de modulation.

  • Le texte après /*…*/ correspond à des commentaires pour expliquer le code JavaScript.

    Astuce : le mot-clé JavaScript « new » vous permet de générer une nouvelle instance d’un objet Event de quelque type que ce soit.

    function HandleMIDI() { var cc = new ControlChange; /* make a new control change message */ cc.number = 1; /* set it to controller 1 (modulation) */ cc.value = 100; /* set the value */ cc.send(); /* send the event */ cc.trace(); /* print the event to the console */}

Script Tutoriel 8 : Modification d’un évènement

Dans Logic Pro, cet exemple remplace chaque évènement MIDI reçu par une note C3 (Do troisième) appuyée/relâchée. Il utilise aussi la variable NeedsTimingInfo. Consultez la section Utilisation de l’objet JavaScript TimingInfo.

  • Le texte après /*…*/ correspond à des commentaires pour expliquer le code JavaScript.

    Astuce : le mot-clé JavaScript « new » vous permet de générer une nouvelle instance d’un objet Event de quelque type que ce soit.

    var NeedsTimingInfo = true; /* needed for .sendAfterBeats() to work */function HandleMIDI() { var on = new NoteOn; /* make a new note on */ on.pitch = 60; /* set its pitch to C3 */ on.send(); /* send the note */ var off = new NoteOff(on); /* make a note off using the note on to initialize its pitch value (to C3) */ off.sendAfterBeats(1); /* send a note off one beat later */}

Script Tutoriel 15 : Modules de commande

Dans Logic Pro, vous pouvez créer des messages CC MIDI définissables par l’utilisateur ou contrôler les paramètres d’un module. L’objet TargetEvent lit le paramètre à modifier à partir d’un menu où l’utilisateur peut sélectionner un CC MIDI de destination. Vous avez aussi la possibilité d’utiliser la fonctionnalité Learn Plug-in Parameter pour assigner un paramètre de module quelconque, inséré après (en dessous) de Scripter dans la même tranche de console. La destination choisie est enregistrée dans la configuration du module.

  • Le texte après /*…*/ correspond à des commentaires pour expliquer le code JavaScript.

    Astuce : le mot-clé JavaScript « new » vous permet de générer une nouvelle instance d’un objet Event de quelque type que ce soit.

    TargetEvent properties:TargetEvent.target(string) /* Name of target menu entry */TargetEvent.value(float) /* Value of set Target from 0.0 to 1.0 */

    Le code ci-dessous permet de contrôler n’importe quel paramètre de module à l’aide de la molette de modulation. Pour tester la fonction dans le script Tutoriel 15, insérez un module ou un instrument logiciel sur le même canal et exécutez le script. Dans le menu, choisissez le paramètre de module Apprendre, puis cliquez sur un paramètre de module pour le contrôler à l’aide de la molette de modulation.

    Pour créer un menu pour la cible de la molette de modulation, attribuez un nom à l’entrée de menu et définissez-la sur un type « cible ».

    var PluginParameters = [/* parameter 0 */{ name:"Modwheel Target", type:"target"}];

    La fonction HandleMIDI est appelée chaque fois que Scripter reçoit un évènement MIDI dans le script Tutorial 15. Le code ci-dessous associe la molette de modulation à la cible choisie dans le menu.

    function HandleMIDI(incomingEvent) { /* remap modulation to target selected in menu and check for incoming CC event with number 1 (Modwheel) */ if ((incomingEvent instanceof ControlChange) && (incomingEvent.number == 1)) { var newEvent = new TargetEvent(); /* create new Target event */ newEvent.target = "Modwheel Target"; /* name the menu entry to be used by this event */ newEvent.value = incomingEvent.value / 127; /* rescale from 0..127 to 0.0...1.0 */ newEvent.send(); /* send the event */ } else { /* send all other events */ incomingEvent.send(); };};

Téléchargez les guides :

Guide d'utilisation de Logic Pro : Livres

Instruments de Logic Pro : Livres

Effets de Logic Pro : Livres

Morty Proxy This is a proxified and sanitized view of the page, visit original site.
Avez-vous trouvé cet article utile ?
Limite de caractères : 250
La limite maximale des caractères est 250.
Merci de votre feedback.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.