Un'introduzione allo scripting in Logic X

Uno dei più unici e meno conosciuti delle nuove funzionalità all'interno di Logica X aggiornamento da Logica 9 è il MIDI Scripter. Anche se viene fornito con una serie di script già pronti, una delle sue caratteristiche principali è la capacità di scrivere da zero il proprio programma di plug-in. 

In questo tutorial vedrò cosa è esattamente lo Scripter e creerò un plug-in MIDI delay abbastanza semplice, ma personalizzato.

Spiegato lo Scripter

Lo Scripter è fondamentalmente un plugin che gira sul linguaggio di codifica JavaScript. Viene inserito pre-strumento per effettuare i dati MIDI e / o di sincronizzazione in entrata. In quanto tale, è diverso da qualsiasi altro plug-in Logico in quanto non ha alcun effetto sull'audio. 

Le informazioni in entrata passano attraverso lo Scripter e solo dopo averlo attraversato le informazioni raggiungono uno strumento inserito che crea quindi un evento audio.

Gli effetti MIDI sono pre-caricati con un numero di modificabili - l'opzione Scripter - e pre-set non modificabili che sono grandi punti di partenza per esplorare le nuove funzionalità. Vi si accede facendo clic sull'inserto più in alto nel canale di uno strumento, lo slot MIDI FX. 

 Il menu che appare contiene gli effetti MIDI non modificabili insieme al modificabile Scripter opzione che, a sua volta, contiene un buon numero di preset di script tutorial modificabili.

Le sole interfacce dei programmi non modificabili sono prove sufficienti per capire che sono programmi piuttosto sofisticati, eppure sono tutti realizzabili con la giusta quantità di conoscenza di JavaScript all'interno di Scripter, meno l'interfaccia pulita. 

 Un buon esempio di questo è il arpeggiatore. La scorta arpeggiatore l'interfaccia è molto pulita con un numero di opzioni, mentre selezionando il Arpeggiatore semplice pre-set dello stesso Scripter rivela un'interfaccia tarchiata con molte meno opzioni.

L'arpeggiatore altamente funzionale.L'interfaccia Arpeggiator semplice e meno funzionale.Facendo clic sul pulsante "Apri script in editor" viene visualizzato lo script necessario per creare il "semplice arpeggiatore". Non è così semplice come sembra l'interfaccia. Questa è solo una parte del codice.

Sotto il cappuccio

Il Scripter arriva in due sezioni. La parte superiore, il Editor di codice, è dove scriverò il codice mentre la sezione in basso, Console interattiva, mi dà informazioni come errori, valori di output, sul codice scritto sopra. 

Il Editor di codice, una volta programmato, cercherà i dati MIDI e / o di sincronizzazione in arrivo, dal Transport, lo manipolerà in qualche modo e lo invierà come testo al consolle o direttamente all'ingresso dello strumento istanziato.

In alto a sinistra è il Esegui script pulsante che valuterà il codice scritto ed è necessario per colpire dopo eventuali aggiornamenti del codice in modo che possano essere integrati. 

Inoltre, Scripter è dotato di una funzione di controllo degli errori di sintassi automatica che evidenzierà automaticamente le righe di errore e una funzione di evidenziazione della sintassi che distingue le parole chiave pertinenti con il colore.

Iniziare

L'approfondimento a livello di principiante di JavaScript è davvero al di là della portata di un tutorial musicale, quindi passerò al ritardo che ho costruito / scritto e fornirò una breve spiegazione su ciò che sta accadendo con le linee o blocchi particolari di codice. 

 Per ulteriori informazioni su JavaScript, Envato può, ovviamente, essere usato come uno strumento inestimabile. Il Manuale degli effetti di logica è anche pieno di codice specifico per gli script ed esempi per ulteriori approfondimenti. 

Il codice finale Ho omesso le parentesi nella spiegazione sottostante per motivi di formattazione. Devono essere presenti affinché il codice funzioni.

La riga di codice function HandleMIDI (evento) è la prima riga in questo particolare esempio ed è la linea che dice Scripter cercare un evento MIDI e passare tali informazioni attraverso il Scripter codice. 

 La prossima linea event.send (); dice il Scripter per passare l'evento MIDI attraverso Scripter intatto. Questo servirà da segnale secco mentre la prima linea servirà da bagnato / ritardo.

if (event instanceof Note)

event.sendAfterMilliseconds (DELAYTIME);

Questo dice Scripter che un evento di nota in arrivo deve essere inviato dopo un tempo di ritardo specificato in millisecondi. Il ritardo è un valore variabile determinato da un cursore che verrà costruito in seguito. Questo valore può anche essere cambiato da ritardo a un valore numerico specifico se si desidera un tempo di ritardo non variabile (ad esempio 100 al posto di ritardo per un ritardo di 100 ms impostato).

var delayTime;  

var PluginParameters =  

name: 'Delay Time', digita: 'lin', unità: 'ms',

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

Questo blocco di codice crea un fader per il Scripter interfaccia e nomina il suo output ritardoper il routing interno. In questo caso il cursore verrà nominato Ritardo nel Scripter interfaccia, sarà un fader lineare, lin, e le unità di output saranno millisecondi, ms. Produrrà un minimo di 0 ms, un massimo di 1200 e avrà una risoluzione di 120 passi, o 10 millisecondi.

function ParameterChanged (param, value)

var timeInMilliseconds = valore;

if (param == 0) delayTime = timeInMilliseconds;

Questo blocco di codice collega il cursore ('0' indica che è il primo fader del plug-in) e cosa emette internamente all'iniziale ritardo valore. 

In sostanza, se il cursore viene spostato, emette un tempo in millisecondi e viene inviato a quell'ora sendAfterMilliseconds (DELAYTIME);.

L'interfaccia di ritardo finale

Come suona

Ho impostato il Scripter con il codice completo, Logic's B3 Organ, una sequenza MIDI e un compressore Slate, solo per far sembrare le cose un po 'migliori. 

Come potete sentire qui sotto, questo ritardo è molto diverso da un ritardo audio tradizionale in quanto non vi è alcun decadimento di ampiezza o altre variazioni durante il ritardo. Sta semplicemente inviando lo stesso segnale MIDI due volte a qualunque valore di cursore sia selezionato. L'unico motivo per cui i ritardi suonano leggermente diversi è che vengono inviati in momenti diversi al B3 che ha un effetto di modulazione interna.

Nell'esempio del suono qui sotto, ho iniziato con un valore di 750 millisecondi, che suona meglio per me con questo particolare esempio, e poi ho fatto scorrere verso l'alto e indietro tutti i parametri possibili, atterrando su zero per mostrare il ciclo secco.

Il canale

outro

Il Scripter e il codice di cui sopra apre un campo di possibilità, sia per la codifica che per l'ulteriore elaborazione. Si potrebbe usare questo davanti a uno schema di hi-hat stantio in modo intuitivo e improvvisando attraverso un gran numero di modelli impensati in cui certi colpi sono accentati con l'automazione. 

Si potrebbe anche espandere la codifica e davanti a uno strumento lanciato creare progressioni di accordi ritardate o accordi in cui gli eventi di nota non avvengono simultaneamente e hanno irregolarità di temporizzazione in base alle posizioni dei cursori.

Il Scripter, al mio pensiero, è probabile LogicaLa risposta a Max per Vivere e un romanzo come Vivere può già essere integrato in Logica da alcuni anni. La possibilità di codificare i propri programmi all'interno di una DAW standalone è unica e spero che tu possa imparare e ispirarti.