Advertisement
  1. Music & Audio
  2. Logic Pro

Introducción a las secuencias de comandos en Logic X

by
Read Time:7 minsLanguages:

Spanish (Español) translation by Andrea J (you can also view the original English article)

Una de las nuevas características más exclusivas y menos comprendidas dentro de la actualización de Logic X de Logic 9 es el MIDI Scripter. Aunque viene con una gran cantidad de scripts listos para usar, una de sus características clave es la capacidad de escribir su propio programa de plugins desde cero.

En este tutorial me adentraré en los aspectos básicos de lo que es exactamente el Scripter y continuaré para crear un plugin de retardo MIDI bastante básico pero personalizado.

El Scripter explicado

El Scripter es básicamente un plugin que se ejecuta en el lenguaje de codificación JavaScript. Se inserta antes del instrumento para afectar los datos MIDI y/o de sincronización entrantes. Como tal, es diferente a cualquier otro plugin de Logic, ya que no tiene ningún efecto sobre el audio.

La información entrante pasa por el Scripter y solo después de pasar a través de él, la información llega a un instrumento insertado que luego crea un evento de audio.

Los efectos MIDI vienen pre-almacenados con una serie de ajustes preestablecidos editables (la opción Scripter) y no editables que son excelentes puntos de partida para explorar las nuevas capacidades. Se accede haciendo clic en la inserción superior de un canal de instrumento: la ranura MIDI FX.

El menú que aparece contiene los efectos MIDI de stock no editables junto con la opción Scripter editable que, a su vez, contiene una buena cantidad de ajustes preestablecidos de script de tutoriales editables.

Las interfaces de los programas no editables son evidencia suficiente para comprender que son programas bastante sofisticados, sin embargo, todos se pueden lograr con la cantidad adecuada de conocimiento de JavaScript dentro de Scripter, menos la interfaz limpia.

Un buen ejemplo de esto es el Arpegiador. La interfaz estándar del Arpegiador es muy limpia con una serie de opciones, mientras que la selección del preajuste de Arpegiador simple del Scripter en sí revela una interfaz bien equipada con muchas menos opciones.

The highly functional ArpeggiatorThe highly functional ArpeggiatorThe highly functional Arpeggiator
El arpegiador altamente funcional.
The less functional Simple Arpeggiator interfaceThe less functional Simple Arpeggiator interfaceThe less functional Simple Arpeggiator interface
La interfaz menos funcional del Arpegiador simple.
This is just a portion of the codeThis is just a portion of the codeThis is just a portion of the code
Al hacer clic en el botón 'Abrir script en el editor' se muestra el script necesario para crear el 'Arpegiador Simple'. No es tan simple como la interfaz hace que parezca. Esto es sólo una parte del código.

Under The Hood

El Scripter viene en dos secciones. La parte superior, el editor de código, es donde escribiré el código, mientras que la sección inferior, la consola interactiva, me proporciona información como errores, valores de salida, sobre el código escrito anteriormente.

El editor de código, una vez programado, buscará datos MIDI y/o de temporización entrantes desde el transporte, los manipulará de alguna manera y los enviará como texto a la consola o directamente a la entrada del instrumento instanciado.

En la parte superior izquierda está el botón Ejecutar script que evaluará el código escrito y es necesario presionar después de cualquier actualización de código para que se integren.

Además, Scripter viene equipado con una función de verificación automática de errores de sintaxis que resaltará automáticamente las líneas de error, así como una función de resaltado de sintaxis que distingue las palabras clave relevantes con color.

Empecemos

Profundizar en un nivel de principiante de JavaScript está realmente fuera del alcance de un tutorial de música, así que saltaré al delay que construí/escribí y daré una breve explicación de lo que está sucediendo con las líneas o bloques de código en particular.

Para obtener más información sobre JavaScript, Envato puede, por supuesto, usarse como una herramienta muy valiosa. El Manual de efectos lógicos también está lleno de código específico de Scripter y de ejemplos para un mayor aprendizaje.

The final codeThe final codeThe final code
El código final. Omití los corchetes en la siguiente explicación por el formato. Necesitan estar presentes para que el código funcione.

La línea de código function HandleMIDI(event) es la primera línea en este ejemplo particular y es la línea que le dice a Scripter que busque un evento MIDI y pase esa información a través del código de Scripter.

La siguiente línea event.send(); le dice al Scripter que pase el evento MIDI a través de Scripter sin tocar. Esto servirá como señal original mientras que la primera línea servirá como procesada/delay.

if (event instanceof Note)

event.sendAfterMilliseconds(delayTime);

Esto le dice a Scripter que un evento de nota entrante debe enviarse después de un tiempo de retraso especificado en milisegundos. El delayTime es un valor variable determinado por un slider que se compilará más adelante. Este valor también se puede cambiar de delayTime a un valor numérico específico si se quiere un tiempo de retardo no variable (por ejemplo, 100 en lugar de delayTime para un retardo configurado de 100 ms).

var delayTime;

var PluginParameters =

{name:'Delay Time', type:'lin', unit:'ms',

minValue:0, maxValue:1200, defaultValue:1, numberOfSteps:120},

Este bloque de código crea un fader para la interfaz Scripter y nombra su delayTime de salida para el enrutamiento interno. En este caso, el slider se denominará Delay Time en la interfaz de Scripter, será un fader lineal, lin, y las unidades de salida serán milisegundos, ms. Dará una salida de un mínimo de 0 ms, un máximo de 1200 y tendrá una resolución de 120 pasos, o 10 milisegundos.

function ParameterChanged(param, value)

var timeInMilliseconds = value;

if (param == 0) delayTime = timeInMilliseconds;

Este bloque de código conecta el slider ('0' indica que es el primer fader del plugin) y lo que genera internamente al valor delayTime inicial.

Básicamente, si el slider se mueve, está generando un tiempo en milisegundos y ese tiempo se envía a sendAfterMilliseconds(delayTime);.

The final delay interfaceThe final delay interfaceThe final delay interface
La interfaz de retardo final

Como suena

Configuré el Scripter con el código completo, el B3 Organ de Logic, una secuencia MIDI y un Slate Compressor, solo para hacer que las cosas suenen un poco mejor.

Como puedes escuchar a continuación, este retardo es muy diferente al retardo de audio tradicional en que no hay caída de amplitud u otras variaciones a lo largo del retardo. Simplemente envía la misma señal MIDI dos veces con el valor del slider seleccionado. La única razón por la que los retardos suenan ligeramente diferentes es porque se envían en diferentes momentos al B3 que tiene un efecto de modulación interna.

En el siguiente ejemplo de sonido, comencé con un valor de 750 milisegundos, que me suena mejor con este ejemplo en particular, y luego me deslicé hacia arriba y hacia abajo a través de todos los parámetros posibles, llegando a cero para mostrar el bucle seco.

The channel
El canal

Outro

El Scripter y el código anterior abren un campo de posibilidades, tanto para la codificación como para el procesamiento posterior. Se podría utilizar esto frente a un patrón de contratiempo obsoleto para deslizarse intuitiva e improvisadamente a través de una gran cantidad de patrones impensables donde ciertos golpes se acentúan con la automatización.

También se podría expandir la codificación y, frente a un instrumento afinado, crear progresiones de acordes retardados o acordes donde los eventos de nota no suceden simultáneamente y tienen irregularidades de tiempo de acuerdo con las posiciones del slider.

El Scripter, en mi opinión, es probablemente la respuesta de Logic a Max for Live y una novedosa como Live ya se puede integrar en Logic desde hace algunos años. La capacidad de codificar los propios programas dentro de un DAW independiente es única y espero que puedas aprender e inspirarte.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.