Introduction aux scripts dans Logic X

L’un des éléments les plus uniques et les moins bien compris des nouvelles fonctionnalités du Logic X mise à niveau de Logique 9 est le scripteur MIDI. Bien qu’il soit livré avec une foule de scripts prêts à l’emploi, l’une de ses principales caractéristiques est la possibilité d’écrire son propre programme de plug-in à partir de zéro.. 

Dans ce tutoriel, je vais entrer dans les détails de ce qu'est exactement le scripteur et créer un plugin de délai MIDI assez basique, mais personnalisé..

Le scripteur expliqué

Le Scripter est essentiellement un plugin qui s’exécute sur le langage de codage JavaScript. Il est inséré dans un pré-instrument afin de traiter les données MIDI et / ou de synchronisation entrantes. En tant que tel, il ne ressemble à aucun autre plug-in Logic car il n'a aucun effet sur l'audio.. 

Les informations entrantes passent par le scripteur et ne sont transmises qu’à un instrument inséré qui crée ensuite un événement audio..

Les effets MIDI sont pré-stockés avec un certain nombre de pré-ensembles modifiables (l'option Scripter) et non modifiables, qui constituent d'excellents points de départ pour explorer les nouvelles fonctionnalités. Vous pouvez y accéder en cliquant sur l’insert le plus haut dans un canal d’instrument, le slot MIDI FX.. 

 Le menu qui apparaît contient les effets MIDI non modifiables ainsi que les effets modifiables. Scripter option qui, à son tour, contient un bon nombre de paramètres prédéfinis de script de didacticiel.

Les seules interfaces des programmes non modifiables sont suffisantes pour comprendre qu'il s'agit de programmes assez sophistiqués, mais elles sont toutes réalisables avec la bonne quantité de connaissances en JavaScript dans Scripter-minus, l'interface claire.. 

 Un bon exemple de ceci est le Arpégiateur. Le stock Arpégiateur l'interface est très propre avec un certain nombre d'options, tout en sélectionnant le Arpégiateur simple le pré-ensemble du script lui-même révèle une interface trapue avec beaucoup moins d'options.

L'arpégiateur hautement fonctionnel.L'interface d'arpégiateur simple moins fonctionnelle.En cliquant sur le bouton «Ouvrir le script dans l'éditeur», vous obtenez le script nécessaire à la création de «l'arpégiateur simple». Ce n'est pas aussi simple que l'interface le semble. Ceci est juste une partie du code.

Sous la capuche

le Scripter vient en deux sections. La partie supérieure, la Éditeur de code, est où je vais écrire le code tandis que la section inférieure, Console interactive, me donne des informations telles que des erreurs, des valeurs de sortie, sur le code écrit ci-dessus. 

le Éditeur de code, une fois programmé, recherchera les données MIDI et / ou de synchronisation entrantes dans le Transport, les manipulera d’une manière ou d’une autre et les transmettra sous forme de texte au Console ou directement à l'entrée de l'instrument instancié.

En haut à gauche est le Script de lancement bouton qui évaluera le code écrit et qu'il est nécessaire d'appuyer après chaque mise à jour du code pour qu'il soit intégré. 

aditionellement, Scripter est équipé d'une fonction de vérification automatique des erreurs de syntaxe qui met automatiquement en surbrillance les lignes d'erreur, ainsi que d'une fonction de mise en évidence de la syntaxe permettant de distinguer les mots clés pertinents par leur couleur.

Commencer

Obtenir des connaissances approfondies au niveau débutant de JavaScript dépasse le cadre d'un tutoriel musical. Je vais donc passer rapidement au délai que j'ai construit / écrit et donner une brève explication de ce qui se passe avec les lignes ou blocs de code. 

 Pour plus d'informations sur JavaScript, Envato peut bien entendu être utilisé comme un outil inestimable. Le manuel Logic Effects Manual contient également du code spécifique à Scripter et des exemples d’apprentissage ultérieur.. 

Le code final. J'ai omis les crochets dans l'explication ci-dessous pour des raisons de formatage. Ils doivent être présents pour que le code fonctionne.

La ligne de code fonction HandleMIDI (événement) est la première ligne dans cet exemple particulier et est la ligne qui dit Scripter rechercher un événement MIDI et transmettre cette information à travers le Scripter code. 

 La ligne suivante event.send (); raconte le Scripter passer l'événement MIDI à travers Scripter intacte. Cela servira de signal sec tandis que la première ligne servira de signal humide / retard.

if (instance d'instance of Note)

event.sendAfterMilliseconds (delayTime);

Cela raconte Scripter qu'un événement de note entrant doit être envoyé après un délai spécifié en millisecondes. le temporisation est une valeur de variable déterminée par un curseur qui sera construit ultérieurement. Cette valeur peut également être modifiée à partir de temporisation une valeur numérique spécifique si un délai non variable est souhaité (par exemple 100 à la place de temporisation pour un délai de 100 ms).

var delayTime;  

var PluginParameters =  

name: 'Delay Time', tapez: 'lin', unité: 'ms',

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

Ce bloc de code crée un fader pour le Scripter interface et nomme sa sortie temporisationpour le routage interne. Dans ce cas, le curseur sera nommé Temporisation dans le Scripter interface, ce sera un fader linéaire, lin, et les unités de sortie seront en millisecondes, ms. Il émettra un minimum de 0 ms, un maximum de 1200 et une résolution de 120 étapes ou 10 millisecondes..

fonction ParameterChanged (param, valeur)

var timeInMilliseconds = valeur;

if (param == 0) delayTime = timeInMilliseconds;

Ce bloc de code relie le curseur ('0' indique qu'il s'agit du premier fader du plug-in) et de ce qu'il sort en interne du premier temporisation valeur. 

En gros, si le curseur est déplacé, il affiche une heure en millisecondes et cette heure est envoyée à sendAfterMilliseconds (delayTime);.

L'interface de délai final

Comment ça sonne

J'ai mis en place le Scripter avec le code complet, l'orgue B3 de Logic, une séquence MIDI et un compresseur Slate, juste pour que les choses sonnent un peu mieux. 

Comme vous pouvez l'entendre ci-dessous, ce délai est très différent d'un délai audio traditionnel en ce sens qu'il n'y a pas de décroissance d'amplitude ni d'autres variations pendant le délai. Il envoie simplement le même signal MIDI deux fois, quelle que soit la valeur du curseur sélectionnée. La seule raison pour laquelle les retards semblent légèrement différents est qu’ils sont envoyés à des moments différents au B3 qui a un effet de modulation interne..

Dans l'exemple sonore ci-dessous, j'ai commencé avec une valeur de 750 millisecondes (ce qui me semble le mieux avec cet exemple particulier), puis j'ai glissé vers le haut et le bas à travers tous les paramètres possibles, atterrissant à zéro pour afficher la boucle sèche..

La chaîne

Outro

le Scripter et le code ci-dessus ouvre de nombreuses possibilités, tant pour le codage que pour le traitement ultérieur. On pourrait utiliser cela devant un modèle de charleston usé pour faire glisser intuitivement et de façon improvisée un grand nombre de modèles impensés où des succès sont accentués de manière automatique.. 

Vous pouvez également développer le codage et créer devant un instrument à diaphragme des progressions d'accords ou des accords différés où les événements de note ne se produisent pas simultanément et présentent des irrégularités de synchronisation en fonction de la position du curseur..

le Scripter, à mon avis, est probable Logiquela réponse de Max pour Vivre et un roman comme Vivre peut déjà être intégré dans Logique depuis quelques années. La possibilité de coder ses propres programmes au sein d’une station de travail autonome est unique et j’espère que vous pourrez apprendre et être inspiré par.