Peinture Poesie Musique

Alètheia ( ἀλήθεια )

Espace programmation

Première page Page précédente Page suivante Dernière page

Projet metaSurface64

Présentation

metaSurface64 est une surface de contrôle de transformations continues du son en temps réel qui dispose à la fois de son propre générateur de boucles jusqu'à 64 voix et d'un moteur FX multieffets.

Chaque pavé de cette surface peut permettre de contôler directement le gain et les plug-ins attachés. Il est possible également de contrôler les pistes d'un séquenceur externe (Ardour ou Reaper). Pour ce faire, l'application utilise des modules contrôlables par OSC qui proviennent de la librairie du langage Faust qui est embarqué dans l'application.
Les fichiers audios des pavés peuvent être multicanaux. La sortie de chaque pavé sur Jack se règle indépendamment et peut être mono ou multicanal.

Comme les autres utilitaires de cette série, celui-ci peut être compilé sous Windows et OsX. Il a été testé avec Jack sous Linux sous LibraZiK2.

metaSurface

Vous trouverez ici une vidéo de présentation générale :

metaSurface

Vous pouvez la télécharger ici : metaSurface64-Video.mp4




Installation

Linux

Ce programme requière :

  • la librairie libboost >= 1.62
    • libboost-system
    • libboost-filesystem
  • la librairie libsfml >=2.4
  • la librairie liblo >= 0.28
  • la librairie gtk2
  • la librairie llvm >= 6.0
  • Faust >= 2.20

Pour les utilisateur de Debian ou Debian/LibraZiK3 vous devez compiler la version 2.20.2 disponible ici : Faust version 2.20.2

Les versions Faust2.15 de LibraZiK3 ne fonctionnera pas.
La version 2.27 disponible sur le site du Grame, ne compile pas sous Debian en raison d'un problème de version de LLVM

Avec votre gestionnaire de fichier, décompresser l'archive dans un dossier.

Vous devez charger une version compatible de la librairie de Faust disponible ici : Librairies

Le contenu du dossier "faustlibraries-master" doit se trouver dans "faust"/libraries

Ensuite :
make all
sudo make install

Vous pouvez maintenant compiler la metaSurface64.
Dans un terminal, après avoir choisi un dossier :

git clone https://github.com/dblanchemain/metaSurface

Ensuite :

make metaSurface
sudo make install PREFIX=/usr/local

Votre version de Faust peut contenir une version de GTKUI qui ne permet pas le scrolling de la fenêtre. Dans ce cas, vous devez remplacer ce fichier :

Dans un terminal, en root, renommez le fichier :
/usr/local/include/faust/gui/GTKUI.h en GTKUI2.h
puis récupérez le nouveau fichier :
wget http://blanchemain.info/Documents/Programmation/GTKUI.h et copiez le dans le dossier /usr/local/include/faust/gui

Windows

Le programme a été compilé sous Windows avec Msys2. Il faudra donc commencer par installer Msys2.
Vous pouvez vous reporter à la page d'installation de celui-ci.

Vous devrez également compiler Faust pour MSYS2.

Vous devez également installer Jack pour windows.

Pour que Reaper reconnaisse Jack, vous devez :

      1 Cliquez sur cmd.exe avec le bouton droit dans C:\windows\system32 et choisissez "exécuter en tant qu'administrateur".
      2 Dans l'invite de commande, tapez : cd \Program Files(x86)\Jack\64bits, suivant l'endroit où vous avez installé Jack, puis entrée
      3 Maintenant vous pouvez taper la commande : regsvr32 JackRouter.dll entrée

L'application est téléchargeable ici Archive

Avec votre gestionnaire de fichier habituel, il faut créer un dossier bin à la racine de votre dossier personnel dans Msys2 :
C:/msys2/home/<utilisateur>/bin et décompresser l'archive dans ce dossier.

Au premier lancement, l'application créera un dossier metaSurface à la racine du dossier personnel.

Pour lancer le programme ,vous devez ouvrir une console Msys64 que vous trouverez à la racine de votre dossier d'installation de Msys2Archive. Ensuite il faut taper la commande dans cette console :

/home/<utilisateur>/bin/metaSurface.sh

Pour faire un lien sur votre bureau vous devez préciser d'abord le lancement de la console Msys64 puis le chemin du programme. Vous pouvez copier le fichier metaSurface.lnk qui se trouve dans : C:/msys2/home/<utilisateur>/bin/metaSurface , sur votre bureau.

Vous pourrez placer vos fichiers audios dans votre dossier de travail : C:/msys2/home/<utilisateur>/metaSurface/sounds. Vous pourrez ainsi les récupérer facilement avec le gestionnaire de fichier intégré à l'application.

Pour l'immédiat, il n'est pas possible de contrôler les plugins internes de l'autoLooper avec les curseurs de la surfaces. Vous devez exporter les sorties audios de la metaSurface visibles dans Jack vers les pistes de votre séquenceur et ajouter les plug-ins désirés pour simuler le même fonctionnement que sous Linux. Ceci permet également de mixer les sorties de l'autoLooper avec les pistes de votre séquenceur.

Dans le dossier C:/msys2/home/<utilisateur>/metaSurface/Plugins vous avez les plug-ins vst équivalents à ceux de la metaSurface. Ces vst sont à recopier dans votre dossier VST. Pour Reaper vous disposez de vst 8 canaux. Pour Ardour vous devez utiliser les plug-ins monos. Ardour se chargera de les adapter aux besoins de vos pistes.

Arborescence des fichiers

Arborescence

Arborescence sous windows / msys2

Le dossier utilisateur permet de classer les différents types de fichiers que l'application utilise.

Ainsi, le dossier :

  • Pad : permets de ranger les instruments de l'utilisateur (fichier .pad correspondant à une surface + la définition des fichiers audios).
  • Plugins : contiens la liste des plug-ins utilisateurs ainsi que les codes DSP correspondants
  • sounds : permets de ranger ses fichiers audios.
  • surfaces : permets d'enregister des surfaces créées par l'utilisateurs ( extension .msf )
  • surfacesBkg, dépôt des fichiers d'arrière plan pour les surfaces

Sous Linux, l'application peut être installée dans le dossier bin du dossier racine de l'utilisateur ou en /usr/local/bin et en /usr/local/share.

Le dossier utilisateur à la même structure et se trouve dans /home/<utilisateur>/metaSurface



Manuel

Menu

Fichier

  • Nouvelle surface
  • Permet de sélectionner, dans la fenêtre qui s'ouvre, une surface standard ou d'en créer une nouvelle.

    surface Select

    Vous devez, dans tous les cas, valider votre choix, même s'il s'agit d'une nouvelle surface créée avec l'utilitaire dédié à cela.

    Une surface est constituée d'un fond proposant un pavage du plan en image d'arrière-plan et d'un ensemble de pavés correspondants aux polygones du pavage. Les pavages proposés ont été réalisés avec l'utilitaire fourni. Ils sont rangés dans le dossier utilisateur :

    
    	<utilisateur>/metaSurface/surfaces
    
    

    et porte l'extension .msf

  • Ouvrir
  • Vous pouvez sélectionner un instrument que vous avez déjà préparé en utilisant le sélecteur de fichier. Les instruments sont par défaut placés dans le dossier utilisateur :

    
    	<utilisateur>/metaSurface/Pad
    
    

    et portent l'extension .pad.
    Contrairement aux surfaces, les instruments sont définis non seulement par un type de pavage, mais aussi par la description complète des pavés, en particulier les fichiers audios associés et éventuellement les chaînes de plug-ins avec leurs préréglages (Fx).

  • Enregistrer
  • Vous permet d'ouvrir le sélecteur de fichier pour enregistrer votre instrument.

  • Commentaire
  • Vous pouvez utiliser un éditeur pour commenter et garder une trace de votre session de travail. La nature de l'éditeur est défini dans les préférences.

  • Quitter
  • Le programme ne vérifiera pas, pour l'immédiat, que vous avez bien enregistré votre session avant de la fermer.

Éditer
  • Effacer
  • Permet d'effacer les constituants du pavé sélectionné et de le réinitialiser.

  • Tout effacer
  • Permet de réinitialiser toute la surface.

  • Préférences
  • La fenêtre qui s'ouvre permet de régler les éléments fondamentaux de l'application , en particulier les dossiers, le séquenceur associé, les paramètres OSC etc.

Aide

Vous donne accès à la documentation en ligne et à la licence.

Les pavés

Un clic droit dans un pavé fait apparaître cette fenêtre :

metaSurface

metaSurfaceCette case permet d'activer le routage vers un séquenceur externe, Ardour ou Reaper en fonction des réglages dans les paramètres de l'application. La piste associée au pavé est définie par la case Track
metaSurfacePar défaut, vous avez une sortie par pavé. Il est possible, en cliquant ici, d'activer la sortie multicanal du pavé sélectionné. Vous aurez autant de sorties que de canaux dans le fichier audio. Vous devrez donc bien penser vos connexions avec jack.
metaSurfaceVous pouvez définir une échelle au bouton du mixer.
metaSurfaceLe gain est modifié par le déplacement du curseur. Si vous décochez cette case, le gain ne sera plus modifié par le déplacement du mixeur alors que les plug-ins le seront toujours.
Les cases gainMin et gainMax permettent de régler les valeurs limites du gain.
Les cases Canaux et Durée sont renseignées par la sélection du fichier audio. Elles ne sont pas modifiables.
metaSurfaceCette case renseigne la piste du séquenceur associée au pavé lorsque celui-ci est activé.
FX rend possible l'accès à la définition de la chaîne FX
metaSurfaceVous pouvez préciser le groupe auquel appartient ce pavé en sélectionnant un type de curseur particulier pour le mixeur. Cela peut être utile lorsque vous souhaitez des traitements par groupe comme les déplacements ou l'effacement.

Vous disposez de 32 groupes possibles pour les mixeurs :

Groupe

La surface

Les mixeurs

En cliquant avec le bouton gauche de la souris sur un pavé de la surface, un bouton circulaire apparaît. Ce bouton peut être déplacé (clic gauche souris sur le bouton + déplacement) à l'intérieur du polygone dont les vertex définissent les limites. Chaque pavé dispose d'un point central précisé par l'utilisateur au moment de la conception du pavage, ainsi que d'une distance maximale entre ce point central et les bords du polygone.

mixer

Ces paramètres permettent de calculer l'évolution du gain attribué au fichier audio en fonction de l'éloignement du bouton au centre du pavé. C'est la raison pour laquelle ces boutons sont appelés mixeurs. Les polygones peuvent comporter jusqu'à 16 vertex, et le mixeur peut se déplacer sur l'ensemble du pavé. Seule la distance du mixeur et la distance maximale au centre sont pris en compte pour le calcul du gain. Plus le mixeur est proche du centre, plus le gain est élevé.

deleteOmVous pouvez effacer le mixeur sélectionné, le groupe correspondant, ou tous les mixeurs.
deplacementEn cliquant sur un de ces icones, vous pouvez précisé si vous souhaitez déplacer le mixeur sélectionné, le groupe de mixeurs correspondant ou tous les mixeurs.

Conjointement, la position du mixeur permet de modifier les paramètres activés des différents plug-ins attachés au pavé.

Les objets mobiles

Sur la partie gauche de votre fenêtre vous disposez d'une palette d'outils.

Ces outils permettent, entre autres, de paramétrer et d'utiliser une nouvelle classe d'objet : les objets mobiles : Objets mobiles en cliquant sur le bouton correspondant dans la palette.

Contrairement aux mixeurs qui sont attachés aux pavés, les objets mobiles sont attachés à la surface et peuvent se déplacer sur tout l'espace qu'offre celle-ci. Par défaut, leurs déplacements sont automatiques et aléatoires. Lorsqu'ils traversent un pavé, le gain est automatiquement ajusté si le mixeur du pavé visité est actif.

Ce comportement peut être modifié en décochant la case Ramdom qui rend la main à l'utilisateur et qui peut donc déplacer manuellement le ou les objets qui l'intéressent. Par ailleurs le calcul du gain peut être généralisé à tous les pavés en cochant la case Surface

Vous pouvez définir le nombre maximum d'objets mobiles en ajustant la valeur de la case Explode

Une des particularités des objets mobiles est d'exploser en entrant en collision avec un mixeur. Le nombre d'objets générés dépendant du nombre maximum d'objets mobiles autorisés dans la case Explode. Ils ont également une durée de vie définie aléatoirement au moment de leur création dont les contraintes sont définies par les deux sliders de la palette. La vitesse de leur déplacement est temporisée par les contraintes du Delay. Cette vitesse reste tributaire de la complexité de votre surface.

deleteOmEn cliquant sur un de ces icônes, vous pouvez détruire le dernier objet mobile créé ou tous les objets mobiles.
deplacementDans le cas du déplacement manuel, vous pouvez choisir de déplacer un ou tous les objets mobiles

La surface offre un utilitaire de navigation sur la surface. Vous pouvez déplacer le cadre intérieur de ce navigateur pour vous déplacer rapidement sur la surface. Les deux sliders de la fenêtre pemettent également des ajustements.

navigateur

Par ailleurs, vous pouvez zoomer sur la surface avec la molette de votre souris et modifier à loisir la dimension de la fenêtre de visualisation.

Vous pouvez activer votre surface en cliquant sur ce bouton de la palette :speaker. Vous pouvez ensuite déplacer vos mixers et observer/entendre les conséquences de vos actions sur le rendu audio. Ce bouton active l'autoLooper de la metaSurface pour tous les pavés.

Si vous avez coché le bouton Daw, le curseur du pavé n'aura plus d'action sur celui-ci, mais vous pouvez mixer le fichier audio défini avec la piste de votre Daw. Les paramètres FX pourront toujours être modifiés manuellement et indépendemment de ceux de la piste associée.

Les chaînes FX

Lorsque vous valider le bouton FX dans la fenêtre des pavés et que vous cliquez sur le bouton boutonFx une nouvelle fenêtre s'ouvre :

metaSurface

Le bouton Fx permet de débrayer les plug-ins attachés au pavé en une seule opération tout en gardant leurs définitions. Ceci permet de les ractiver à la demande.

Vous disposez de 12 entrées possibles pour les plug-ins associés au pavé sélectionné. Ces plugins sont contrôlés directement par OSC lorsque vous utilisez l'autoLooper interne. Ils sont contôlés via le protocole OSC du séquenceur lorsque le pavé externalise le traitement. Attention cependant à la charge DSP que le cumul de ceux-ci peut induire.

Lorsque vous cliquez sur une des flèches de menu déroulant, une liste apparaît. Vous pouvez sélectionner un plug-in. L'ordre de traitement de ceux-ci sera respecté par la suite. Chaque plug-in dispose d'une interface permettant de préciser comment seront modifiés les paramètres en fonction du déplacement du mixeur. Cette possibilité est donnée en cliquant sur ce bouton fxparam

Vous pouvez tester et régler les paramètres statiques de votre chaîne Fx en cliquant sur ce bouton : test

Dans cet exemple nous avons un pavé avec un fichier audio 8 canaux avec trois plug-ins activés dans cet ordre : Delay, Flanger, Freeverb. Comme nous sommes dans le cas où la case à coché Daw n'est pas validée, nous sommes dans le cadre de l'autoLooper fourni par l'application.

dspExemple1

Si le fichier audio associé à ce pavé est multicanal, vous pouvez activer une interface pour chaque canal en validant l'option Canal.
Attention, pour des raisons de risque de surcharge DSP, cette option n'est pas disponible lorsque vous activez globalement votre métaSurface.

dspExemple1

Vous disposez dans ce cas d'un Mixer pour la gestion des canaux et du Spectrum Analyser si vous avez sélectionné l'option correspondante. Ensuite, vous avez autant d'onglets que de canaux qui permettent de régler les paramètres pour chaque canal en fonctions de vos besoins. Attention à la charge DSP. Cet outil est avant tout destiné à la création d'objets audios que vous pouvez enregistrer dans votre Daw pour une réutilisation ultérieure.

Les fenêtres d'édition des paramètres modifiables ont toutes la même structure :

modifFx

Dans cet exemple du plug-in Delay, après le nom du paramètre, une première case à cocher indique si vous voulez modifier dynamiquement ce paramètre. Seuls les paramètres dont les cases à cocher seront validées seront pris en compte. Ensuite, vous pouvez préciser les valeurs minimales et maximales de ces modifications ainsi qu'un facteur d'échelle qui permet d'augmenter ou de réduire la vitesse de variation en fonction du déplacement du mixeur. Un dernier bouton précise le type de variation : diminution < en s'éloignant du centre ou augmentation > en s'éloignant du centre.

Le Mixer et le SpectrumAnalyser ne permettent pas de modifier dynamiquement leurs paramètres.

Les autres boutons n'appellent pas de commentaires particuliers sinon que vous devez valider vos changements pour qu'ils soient pris en compte.

Plug-ins

Nouveau plug-in

La définition d'un plug-in comporte deux parties : une première qui concerne le code DSP de celui-ci et une deuxième qui concerne les réglages des contraintes d'utilisation.
Vous pouvez utiliser votre éditeur pour éditer le code Faust correspondant à votre plug-in, mais aussi l'IDE du Grame qui se charge dans votre navigateur. À partir de cet IDE, vous pourrez également créer des plug-ins vst ou lv2.

Les plug-ins externes ne disposent pas de code DSP car ils sont gérés directement par le séquenceur actif. Vous devrez faire très attention aux numéros d'ordre de vos paramètres et aux chemins d'accès à ceux-ci pour que cela fonctionne correctement.

Pour créer un gestionnaire de plug-in externe vous devez cliquer sur le bouton Externe . Les numéros d'Id correspondent aux numéros d'ordre de votre plug-in -1. Vous n'avez pas besoin de définir une adresse pour ce type de contrôleur. Si vous devez utiliser une échelle logarithmique, vous devez cliquer sur Log.

Attention, dans Reaper, les plugins externes doivent être associés à une piste, pas à un objet.

metaSurface

gestion des plug-ins

metaSurface

La création de surface

createSurface

La création d'une nouvelle surface repose sur une image d'arrière plan qui propose un pavage du plan. Cet utilitaire va vous permettre de définir l'ensemble des polygones qui vont décrire les limites des pavés de votre pavage ainsi que les points de référence ( centre visuel ) pour le calcul de la distance des mixeurs.

Configuration

metaSurface

Pour l'immédiat, vous ne pouvez pas changer de thème ni de langue, mais les autres options sont disponibles. Sous windows, vous devrez donner le chemin complet de l'éditeur et de votre navigateur, mais cela peut poser des problèmes lorsque les programmes sont installés dans Program File(x86) par exemple.

Les entrées Port et Serveur concernent le séquenceur sélectionné. Le port OSC permet de contrôler les plug-ins internes de l'autoLooper.



Guides

Premier Test

Procédure

Avant toute chose, vous pouvez commencer par alimenter votre dossier /home/<utilisateur>/metaSurface/sounds avec des fichiers audios. En procédant ainsi vous pourrez retrouver facilement vos fichiers avec le sélecteur interne de l'application.

Une fois que quelques fichiers sont disponibles vous pouvez ouvrir votre surface.

Ouvrez le menu <fichier> -> <Nouvelle surface>

Une fenêtre s'ouvre qui vous permet de choisir une surface prédéfinie.

Une fois la sélection faite appuyez sur Valider

Si vous obtenez bien votre surface, c'est que votre installation de l'application est correcte.

Cliquez sur un pavé de votre surface avec le bouton droit de la souris. La fenêtre de gestion du pavé s'ouvre.

Commencez par sélectionner un fichier audio en cliquant sur le premier champ avec la bouton gauche de votre souris.

Procédure

Le sélecteur de fichier s'ouvre. Vous devriez vous retrouver dans votre dossier utilisateur. Si ce n'est pas le cas, vous pouvez sélectionner un dossier ou remonter l'arborescence en cliquant sur le deux points en haut à gauche dans la liste des dossiers. Vous ne devez cliquer qu'une seule fois.
Vous devez retrouver le dossier /home/<utilisateur>/metaSurface/sounds puis choisissez votre fichier audio. Après validation, celui-ci est affiché dans la fenêtre de gestion des pavés. Le nombre de canaux et la durée sont également précisés.

Pour entendre votre sélection vous pouvez cliquer sur le bouton speaker à droite du nom du fichier.

speaker

Il s'agit d'une simple écoute du fichier brut, sans plug-in.

Répétez cette séquence d'initialisation pour plusieurs pavés

Lorsque vous le désirez, vous pouvez tester l'ensemble de votre surface en cliquant cette fois sur le bouton Speaker speaker en bas à gauche de votre fenêtre principal.

speaker

Une nouvelle interface s'ouvre avec un mixer et plusieurs onglets correspondants aux différents pavés.

speaker

En cliquant sur ce Speaker vous lancez la génération du DSP qui sera transformé dynamiquement par Faust en interface audio pour Jack. Ce n'est qu'à partir de ce moment que votre Pad sera visible pour Jack et vos séquenceurs. Vous pouvez utilisez l'interface pour modifier manuellement le gain et la vitesse de lecture des fichiers ou jouer avec les curseurs de vos pavés pour varier les volumes. Sous Linux, avec les déplacements des curseurs, vous entendrez immédiatement les modifications du gain.Ce n'est pas directement possible pour windows pour l'immédiat (voir plus loin pour une solution).

Vous devez fermer cette fenêtre padPlayer et la relancer à chaque fois que vous modifiez votre surface pour que les modifications soient prises en compte par le DSP.

Cela peut paraître contraignant, mais c'est le seul moyen pour obtenir un DSP optimisé.

metaSurface et Jack

La metaSurface repose sur la capacité de Jack d'assurer le routage des entrées/sorties.

Par défaut, même si vos fichiers audios sont multicanaux, chaque pavé propose une seule sortie audio. Ainsi, une surface de 16 pavés donnera 16 sorties. Il suffit donc de relier chaque sortie de la métaSurface aux sorties matérielles de Jack.

Vous pouvez cependant choisir, indépendamment pour chaque pavé, l'option Multi pour multicanal, ce qui permet d'obtenir autant de canaux de sortie que le nombre de canaux maximal des fichiers audios.Ceci complique évidemment le brochage des sorties.

Si le nombre maximal de canaux est de 8, si votre premier pavé est multicanal, le deuxième, mono et le troisième multicanal, le quatrième se trouvera sur la broche 17. Si un pavé multicanal dispose d'un fichier audio de 6 canaux, il utilisera malgré tout 8 broches.

metaSurface

padPlayer et Jack dans Catia

Sous Windows vous devez utiliser qJackCtrl et son panneau de connexion.

metaSurface, Ardour et Reaper

Pour enregistrer l'audio de votre Pad, vous pouvez le relier directement aux pistes de votre séquenceur.

La structure du réseau de connexion avec votre Daw dépendra du projet.
Vous pouvez relier chaque pavé (sortie) à une piste de votre Daw, mais vous pouvez également envoyer chaque canaux de vos pavés multicanaux sur autant de piste ou de bus. Cela dépendra de la manière dont vous envisagez le traitement de l'audio. Les combinaisons possibles sont très variées et devraient répondre aux besoins des plus exigeants.

Pour Ardour, cela se fait simplement en utilisant la fenêtre de connexion Audio lorsque le Pad est actif.

metaSurface

Ici les premières sorties de la metaSurface sont connectées aux entrées du Bus 1. Vous pouvez utiliser également de simples pistes audios. Pour ne pas avoir d'interférences, n'oubliez pas de supprimer les connexions direct du Pad à Jack

Dans cette configuration, sous Linux, vous pouvez entendre les variations d'intensité sur les sorties en jouant avec les curseur de la surface.
Sous Windows cela ne fonctionnera pas directement. Les curseurs de la surface ne peuvent pas agir sur le volume ni sur les plug-ins. Par contre l'interface reste active. Elle agit comme un prétraitement audio.

Pour compenser, vous devez cocher la case Daw de la fenêtre de contrôle du pavé, associer une piste et envoyer la sortie audio correspondante. Sous Ardour, vous pouvez utiliser un bus. Sous Reaper vous pouvez utiliser une piste que vous armerez pour l'enregistrement en définissant le type de connexion (mono ou multi canal : click droit sur le bouton d'armement).

reaperTrack2

Ici, la surface envoie la sortie multicanal (8) du premier pavé sur une piste armée en enregistrement. L'option, input:8 channel est sélectionnée. Sur la partie inférieure de l'image, vous découvrez les connexions pour Jack.

Lorsque vous déplacez le curseur du pavé sélectionné, vous entendez les modifications de volume dans Ardour ou Reaper. N'oubliez pas de définir le numéro de la piste associée.

Créer une interface pour un plug-in externe

Nous allons prendre l'exemple du plug-in a-delay d'Ardour.

a-delay

Il peut être délicat d'identifier l'ordre des paramètres d'un plug-in et les valeurs que ceux-ci peuvent prendre.
Le plus simple est de récupérer les descripteurs.
Sous Linux, vous devez en premier lieu ouvrir un terminal puis taper la commande suivante :
oscdump 8000 (le port de feedback d'Ardour).
Ensuite, il faut ouvrir un autre terminal et taper la commande :
oscsend localhost 3819 (le port OSC d'Ardour) /strip/plugin/descriptor ii <piste> <numero d'ordre du plugin>. Les deux i sont indispensables et indiques à Ardour que le message OSC comporte deux entiers numériques. Les autres paramètres sont à adapter en fonction de vos besoins.
Vous obtiendrez, dans la fenêtre de retour, l'ensemble des descripteurs du plug-in sélectionné. Ceci suppose, évidemment, que vous ayez placé ce plug-in sur la piste correspondante dans Ardour.
Voici un exemple de retour :

descriptorArdour

Sous Windows, vous devez utiliser deux terminaux MINGw64 et y taper les mêmes commandes. Comme vous avez compilé liblo, vous disposez d'oscdump et d'oscsend.

Nous allons nous concentrer sur les paramètres continus du plug-in. Sur notre saisi d'écran nous avons par exemple ceci :
/strip/plugin/descriptor iiisisffsid 3 1 3 "Time" 132 "NOTHING" 1.000000 8000.000000 "%.1f ms" 0 16.875729. Le premier paramètre qui nous intéresse est Time. Dans ce cas, le plug-in est placé sur la piste 3, le plug-in est le premier et Time est le 3è paramètre de ce plug-in. Il peut varier de 1.00 à 8000.0 . L'id doit être minoré de 1, ainsi, si dans le descriptor vous voyez par exemple 4, vous devez indiquer 3.
Ensuite, dans les paramètres que nous devons retenir, nous avons Dry/Wet qui est le 5è paramètre (id=4) et qui peut varier de 0.0 à 100.0 et ainsi de suite.

Nous allons introduire ces informations dans notre gestionnaire de plug-in.

metaSurface

Commencez par valider la case Externe puis donnez un nom à votre plug-in, ici, par exemple, a-delay.

Ensuite, nous allons définir nos paramètres:

  • id : 3
  • Nom : Time
  • Min : 1
  • Max : 8000

Nous n'avons pas besoin de définir l'<adresse, mais vous pouvez définir Log pour disposer d'une échelle logarithmique.
Vous devez cliquer sur l'icône Groupe pour ajouter ce paramètre.
Procédez de la même manière pour Dry/Wet
Maintenant, vous devez valider votre saisie pour que cette interface soit enregistrée dans la liste des plug-ins.

Si vous allez dans le menu <Plugin> -> <Edit>, votre nouveau plug-in est intégré à la liste. Si vous faites un clic droit dans un pavé de votre surface, que vous définissez une chaîne FX, vous pouvez voir ce nouveau plug-in dans la liste de sélection. En l'intégrant aux plug-ins de votre pavé et en cliquant sur l'icône à sa droite, vous pouvez visualiser la fenêtre d'interface :

i-adelay

Pour ajouter des paramètres, vous devez aller dans le menu <Plugin> -> <Edit> et sélectionner votre plug-in. Ensuite vous faites défiler les paramètres jusqu'au premier qui apparaît vide, vous le définissez, vous cliquer sur Groupe et vous enregistrez. Pour modifier un élément, il suffit de se placer sur le paramètre que vous souhaitez modifier et d'effectuer une nouvelle saisie en n'oubliant pas de valider vos modifications.

Cet utilitaire devrait vous permettre de définir n'importe quel contrôleur de plug-in pour Ardour ou Reaper.

Pour Reaper, vous ne disposez pas de la commande qui permet de récupérer les descripteurs d'un plug-in comme dans Ardour, mais vous pouvez visualiser la variation de chaque paramètre dans la fenêtre où vous avez oscdump. Les sliders, dans Reaper, recoivent des valeurs comprises entre 0 et 1(parfois 2). Vous devrez certainement tatonner pour obtenir les bons réglages. La manière dont Reaper utilise les valeurs pour ses sliders n'est pas toujours très lisible. À vous de tester. Les plug-ins doivent être associés aux piste et non pas aux objets.


Créer un plug-in interne

Pour créer un plugin interne vous devez d'abord définir son nom, qui constituera l'entête du nom du fichier DSP associé, puis donner le nom de la fonction Faust. Ensuite il faudra éditer le code Faust de ce nouveau plugin, soit en utilisant votre éditeur, soit en utilisant l'IDE en ligne proposé par le Grame. Cette dernière solution vous permettra de tester rapidement votre plug-in et éventuellement de créer un Lv2 ou un vst pour votre séquenceur.

Nous allons prendre un exemple simple, un filtre en peigne élémentaire : feedbackCombFilter, sur une proposition de R.Michon. Vous trouverez une présentation théorique de ce filtre ici.

Vous pouvez copier ce code dans votre IDE:


import("stdfaust.lib");
import("music.lib");
mu = library("music.lib");
myFbComb=ba.bypass1(combp,myComb)
with{
  comb_group(x)=vgroup("Comb Filter", x);
  combp=comb_group(vgroup("[0]",checkbox("Bypass [tooltip: When this is checked, Comb Filter has no effect]")));
   myComb=comb_group(hgroup("[1]",+~(mu.delay(2048,delLength)*(-a1))));
  	a1 = vslider("a1",0,-1,0.999,0.001) : si.smooth(0.999);
	delLength = slider("delLength",1,1,2000,1);
};
process = _:myFbComb:_;

Pour tester votre nouveau plug-in, vous devez cliquer sur Run. Si tout ce passe bien, vous devriez entendre le fichier audio en cliquant sur lecture, en haut à droite de la fenêtre. Vous pouvez maintenant varier les paramètres pour évaluer l'effet.

Vous pouvez exporter ce plug-in en Lv2 ou vst en cliquant sur le petit camion en haut à gauche. Vous devez lui donner un nom de fichier et choisir un système d'exploitation ainsi que le format d'exportation.

Pour intégrer votre plug-in dans la métaSurface vous devez supprimer la dernière ligne :


process = _:myFbComb:_;

Enregistrez ce plug-in dans le dossier utilisateur /home/<utilisateur>/metaSurface/Plugins à partir de l'IDE avec le nom que vous lui avez donné dans le champ Nom Fx avec l'extension .lib et précisé myFbComb comme nom de Fonction.

Si vous validez, votre plug-in sera incorporé à la liste des plug-ins disponibles. Vous pourrez ensuite définir les paramètres dynamiques comme pour n'importe quel autre plug-in. Vous devez indiquer l'adresse de chaque paramètre. Pour ce faire vous ouvrez un terminal et vous tapez oscdump 5511. Dans un autre terminal vous faites oscsend localhost 5510 /padPlayer s get. Vous devriez obtenir des lignes d'informations dont :


e2934e5e.385de9bf /padPlayer/Pad/p05/0x00/0x00/Comb_Filter/0x00/Bypass fff 0.000000 0.000000 1.000000
e2934e5e.385e3da2 /padPlayer/Pad/p05/0x00/0x00/Comb_Filter/0x00/a1 fff -0.008641 -1.000000 0.999000
e2934e5e.385ea24c /padPlayer/Pad/p05/0x00/0x00/Comb_Filter/0x00/delLength fff 594.000000 1.000000 2000.000000

Ainsi, Comb_Filter/0x00/delLength constitue l'adresse du paramètre delLength.



License

This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; If not, see http://www.gnu.org/licenses.

EXCEPTION : dbmeter license : "BSD".

Première page Page précédente Page suivante Dernière page