Función HandleMIDI de Scripter en Logic Pro para Mac
La función HandleMIDI() te permite procesar los eventos MIDI que recibe el módulo. Se llama a HandleMIDI cada vez que el módulo recibe un evento MIDI y se necesita para procesar eventos MIDI entrantes. Si no implementas la función HandleMIDI, los eventos pasarán a través del módulo sin verse afectados.
Se llama a HandleMIDI con un argumento que es un objeto JavaScript que representa el evento MIDI entrante. El uso de HandleMIDI y del objeto Event de JavaScript se muestra en los ejemplos.
Carga el ajuste de Tutorial correspondiente para ver el script en el editor de scripts. Esto te ayudará a entender la estructura de la sintaxis y la disposición del código y los comentarios. Consulta Usar el editor de scripts.
Script de Tutorial 1: Pasada simple
Pasar eventos MIDI a través del módulo.
function HandleMIDI(event) {
event.send();
}
Script de Tutorial 2: Rastrear eventos
Registrar eventos en la consola del módulo y no enviarlos a ningún sitio.
function HandleMIDI(event) {
event.trace();
}
Script de Tutorial 3: Transposición y retardo
Repetir notas una octava más agudas con un retardo de 100 ms y pasar todos los demás eventos a través del módulo.
El texto situado a continuación de /* muestra los comentarios que explican el código 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 de Tutorial 4: Desafinar el tono de nota
Afina arriba o abajo todas las notas de los eventos en valores de cent (1/100 de un semitono). El intervalo es de -100 a +100 cents.
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 */