Peinture Poesie Musique

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

Espace programmation

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

Projet metaFx 0.2 (février 2022)

Présentation

La metaFx est une surface de contrôle de transformations continues du son en temps réel au même titre que la metaSurface64. Comme elle, elle dispose à la fois de son propre générateur de boucles et d'un moteur FX multieffets, mais son fonctionnement est différent, en particulier pour la gestion des chaînes de greffons et les pavés.

Chaque mixeur de cette surface peut permettre de contrôler directement le gain et les greffons 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.

Ce programme a été testé avec Jack sous Linux / LibraZiK2.

metaSurface

Vous pouvez considérer la metaFX comme un synthétiseur qui transforme des sources audios en temps réel et en continu par le déplacement d'objets sur une surface.

Ce programme est sous licence GNU General Public License. Voir plus loin.

Une vidéo de présentation est disponible ici, ainsi que le texte de la présentation.

Présentation

Tutoriels



Change Log février 2022

  • Corrections d'erreurs mineurs
  • Prise en compte de l'inversion pour les pavés.


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 > 8.0
  • Faust >= 2.20

Ce programme utilise aussi un utilitaire de Faust : le dynamic-jack-gtk qui doit être compilé avec l'application. Le code est fourni. Vous pouvez le trouver dans les sources de Faust


/faust/tools/benchmark

Compilation

Avant de compiler, vous devez disposer d’un environnement de développement complet.

la metaFx dépend de SFML 2,4, glm 0,9,8, d’OpenGl et de Liblo ainsi que de boost_system et boost_filesystem que vous devez installer si vous ne l’avez pas déjà fait.


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

make all

Ceci compilera la metaFx et le dynamic-jack-gtk. Si tout se passe bien vous pouvez finaliser en tapant :


sudo make install

Sous Linux, Debian/LibraZiK, ceci installe le programme dans le répertoire /usr/local. Le programme sera installé dans /usr/local/bin et les fichiers complémentaires dans /usr/local/share. Si vous précisez un dossier, l'installateur copiera les fichiers dans celui-ci en respectant la hiérarchie des dossiers. Le programme se lance en tapant dans un terminal :


/usr/local/bin/metaFx.sh

  • metaFx constitue l'application proprement dite.
  • metaFx.sh est un script de lancement du programme. Vous pouvez l'utiliser pour un lanceur sur le bureau sans avoir besoin d'un terminal.

Dans le dossier


/usr/local/share/metaFx
vous trouverez les dossiers suivants :

  • Le dossier faust renferme des fichiers nécessaires au fonctionnement de l'application.
  • Le dossier Lang renferme le fichier de langue.
  • Le dossier Theme renferme les fichiers de configurations du theme.

Après un premier lancement, vous disposerez d'un fichier de configuration parsonnalisable dans votre dossier $HOME:


~/.config/metaFx/preferences.spc

Vous trouverez également ici un fichier de description des greffons externes.


Menu

Fichier

  • Nouveau
  • Ouvrir
  • Sauvegarder
  • Sauvegarder sous
  • Préférences
  • Quitter
  • Ce menu n'appelle pas de commentaires particuliers

À propos

Aide

Ces deux dernières entrées donnent accès à la documentation en ligne et à la licence.

Les mixeurs

Un mixeur mixeur est un générateur de son. L'audio associé correspond soit au fichier défini, soit à une entrée audio provenant de Jack.

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

mixeur

metaFxCette 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
metaFxPiste associée dans le séquenceur.
metaFxLe 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 greffons pourront disposer de paramètres toujours actifs.
Les cases GainMin et gainMax permettent de régler les valeurs limites du gain.
metaFxLe gain est modifié par le déplacement du curseur. Lorsque cette case est cochée, le gain augmente, sinon le gain diminue en se rapprochant du centre de la surface.
metaFxPar défaut (case cochée) le gain augmente lorsque le mixeur s'approche du centre de la surface. Lorsque cette case n'est pas cochée, le gain augmente lorsqu'un mixeur s'approche du centre d'un pavé et les deux sources audios sont fusionnées. Cela change le mode de fonctionnement de la surface. Le mode de calcul du gain peut être inversé.
metaFxVous 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
metaFxLa vitesse concerne la lecture du fichier audio associé au mixeur. Si cette case est cochée, elle pourra être modifiée dynamiquement par le déplacement du curseur. Elle induit une transposition. Vous pouvez, comme pour le gain, régler une vitesse minimale et une vitesse maximale. Il est également possible d'inverser le mode d'ajustement de celle-ci.
metaFxFX rend possible l'accès à la définition de la chaîne FX. Si cette case est décochée, les greffons seront désactivés, mais pas effacés. Vous pouvez les réactiver à tout moment en recochant la case.
metaFxCeci ouvre une fenêtre qui permet de construire un graphe correspondant au traitement de l'audio.

La barre d'outils

mixeurCréation d'un nouveau mixeur. Un clique droit sur celui-ci vous permettra de préciser son fonctionnement.
deleteOmVous pouvez effacer le mixeur sélectionné, le groupe correspondant, ou tous les mixeurs.
deplacementEn cliquant sur un de ces icones, vous pouvez préciser si vous souhaitez déplacer le mixeur sélectionné, le groupe de mixeurs correspondant ou tous les mixeurs.
paveCréation d'un nouveau pavé. Un clique droit sur celui-ci vous permettra de préciser son fonctionnement.
pavepaveCe bouton permet d'activer ou non le moteur Faust pour les greffons. Lorsque vous activez la surface, un temps de latence d'une seconde est nécessaire pour redéfinir les valeurs des paramètres dynamiques.

Les pavés

À défaut d'un autre nom, les pavés constituent un autre groupe de générateurs de son. Vous pouvez insérer un nouveau pavé en cliquant sur pave. Les pavés ne proposent pas de chaîne de transformations audios comme les mixeurs. Ils ne peuvent pas être déplacés losque l'interface Gtk est active. Cependant vous pouvez définir certains paramètres :

metaFx

Echelle permet de définir la dimension relative (de 0.1 à 4.0) du pavé. Les autres paramètres sont identiques à ceux des mixeurs.

L'audio d'un pavé est activé lorsqu'un mixeur passe dessus avec un gain calculé en fonction de la distance du mixeur au centre du pavé. Si plusieurs mixeurs sont concernés, le gain est égal à la moyenne des gains des mixeurs.

Les chaînes FX

Modules Internes

Lorsque vous cliquez sur le bouton metaFx, une nouvelle fenêtre s'ouvre. Celle-ci vous propose au moins un bloc d'entrée et un bloc de sortie chacun avec un petit carré de connexion.

metaFx

Tout graphe comporte au moins une entrée définie par un fichier ou une entrée de Jack et une sortie mono vers Jack.
Le menu Modules_Fx propose 23 greffons que vous pouvez placer sur votre graphe. Les modules doivent être reliés entre eux par des connecteurs. Ceux-ci sont dessinés en cliquant sur une sortie (boîte verte) d'un module et en glissant avec la souris vers une entrée (boîte rouge) d'un autre module. Il est possible d'avoir plusieurs connecteurs sur une entrée ou une sortie comme vous pouvez le voir sur l'image.

Vous pouvez supprimer une liaison en cliquant sur le connecteur. Vous pouvez supprimer également un module en cliquant sur la petite croix à droite, en haut de sa boîte. Les modules peuvent être déplacés sur toute la surface avec la souris.

Lorsqu'un module dispose de plusieurs sorties, cela implique un traitement parallèle des greffons. Lorsque vous enchaînez des blocs parallèles, vous devez veiller à ce que le nombre de sorties du premier bloc soit dans une relation de multiple avec le second bloc parallèle.

Le module PassThrough permet de conserver un signal sans transformation. Cela peut servir, entre autres, lorsque vous avez des problèmes de nombre de voix dans l'enchaînement de vos blocs.

Ceci permet des traitements plus riches que dans la metaSurface mais ces graphes peuvent être délicat à réaliser lorsqu'ils sont complexes.

Vous pouvez visualiser et entendre votre instrument en cliquant sur le bouton pave. Vous devez utiliser le bouton suivant pave pour arrêter le processus. Si vous vous contentez de fermer la fenêtre Gtk vous devrez malgré tout cliquer sur ce bouton pour pouvoir éditer à nouveau vos graphes.

Si, pour une raison ou une autre, l'interface Gtk n'apparaît pas lorsque que vous cliquez sur pave, vous devez avoir une erreur sur votre graphe. Si cela perdure, cliquez sur le bouton pave afin de réinitialiser votre graphe, et reconstruisez votre chaîne de traitement proprement en veillant aux relations entre les blocs de traitement parallèle.

metaFx

Sur l'image de l'interface Gtk, vous pouvez voir nos greffons : DELAY et CUBIC ...(correspondant au module de distortion) traités en parallèle et le greffon Freeverb traité ensuite.

Tous les éléments de tous les graphes des mixeurs sont transformés en une expression compréhensible par Faust. Pour notre exemple :


tgroup("Mixer",hgroup("M0[0]",_:*(lgainp(0)):lmet<:
vgroup("v0",hgroup("h0",delay),hgroup("h1",dm.cubicnl_demo)):>
vgroup("v1",hgroup("h0",freeverb)):>_));

Le fichier DSP généré par la metaFx sera ensuite compilé pour fournir l'interface Gtk avec laquelle nous pourrons utiliser notre instrument en cliquant sur pave.

Plus les graphes seront complexes plus il y aura de latence et plus vous risquerez de faire décrocher votre système. En soi, la latence, lorsqu'on cherche à fabriquer de nouveau son, n'a pas d'importance, mais la charge DSP peut être critique.

Contraintes pour les modules internes

En cliquant avec le bouton droit de la souris dans un module, vous pouvez disposez d'une nouvelle fenêtre dans laquelle vous pouvez définir les paramètres associés aux traitements dynamiques de votre module lors du déplacement de votre mixeur.

contrainte

Pour qu'un paramètre soit actif il faut que la case qui suit son label soit activée. Sur notre exemple, seul le paramètre Delay est actif. Ainsi, lorsque vous déplacerez votre mixeur sur la surface, la valeur de ce paramètre sera modifiée en fonction des valeurs Min et Max. Le Ratio n'est pas utilisé pour l'immédiat. Par contre, Inv permet d'inverser le fonctionnement : la valeur diminuera lorsque le mixeur s'approchera du centre.


Les greffons externes

Le menu Externe sur la fenêtre d'un graphe permet d'accéder à un nouveau menu.

contrainte

  • Ajouter vous permettra d'ajouter un nouveau greffon pour votre séquenceur.
  • Nouveau vous permettra de définir une nouvelle table de contraintes pour un greffon de votre séquenceur.
  • Modier vous permettra de modifier une table d'un greffon.
  • Supprimer vous permettra de supprimer un greffon de votre liste.

Pour être opérationnel, vous devez définir votre séquenceur et les paramètres de contrôle OSC dans les préférences.

La case Stan doit être cochée et le numéro de la piste renseigné pour votre séquenceur.

Lorsque vous cliquez sur Ajouter dans le menu, une fenêtre s'ouvre :

contrainte

Si vous cliquez sur le petit triangle à droite, vous obtenez une liste de greffons. Vous pouvez définir jusqu'à 12 greffons externes parmis les 23 disponibles. L'ordre des greffons doit correspondre à celui du séquenceur. L'icone contrainte permet de préciser les contraintes pour ce greffon.

Si vous cliquez sur Nouveau dans le menu, cette fenêtre s'ouvre :

contrainte

Le nom du nouveau greffon externe doit être renseigné en haut. Ensuite vous pouvez préciser les paramètres en définissant, pour chacun, le label, le numéro de paramètre dans le greffon, la valeur minimale et la valeur maximale. Vous devez valider ce tableau. Le nom de ce nouveau greffon apparaîtra ensuite dans la liste des greffons externes.

Préférences

La fenêtre Préférence vous permet de définir le séquenceur que vous utilisez et les parmètres de fonctionnement de la liaison OSC.

contrainte



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