Skip to main content

Historique: Utilisation de Ctrlr pour créer un contrôleur de synthé

Aperçu de cette version: 73


 note
Tutoriel en cours d'écriture...


Utilisation de Ctrlr pour créer un contrôleur de synthé est un tutoriel sur l'utilisation de Ctrlr pour réaliser un panneau de contrôle pour un synthétiseur matériel.





Description


Le but ici est de faire découvrir le très puissant mais peu documenté Ctrlr au travers de la réalisation d'un panneau de contrôle pour le synthétiseur matériel Meeblip Triode Image . Le Triode peut être remplacé par n'importe quel autre synthé du marché. Il ne sert ici que de support à ce didacticiel.
Pour info, le Triode est un petit synthétiseur de type basse avec oscillateur numérique et table d'onde ainsi qu'un filtre résonnant analogique. Matériel et logiciel entièrement libre. Bien que vendu, au départ, comme synthé tout monté dans un boîtier rouge, vous avez la possibilité de le fabriquer vous même. Tous les schémas, diagrammes et code source sont disponibles librement.

La version utilisé de Ctrlr pour l'écriture de ce tutoriel est la : 5.4.16 .

Voici à quoi ce panneau va ressembler :

Ctrlr PanneauFini

Après une première lecture, vous pourrez facilement créer vos panneaux pour d'autres synthétiseurs ou appareils MIDI. Le Triode ne sert que d'exemple.
Vous aurez ainsi les bases du logiciel Ctrlr et pourrez facilement aller plus loin dans son apprentissage.



Découverte de l'interface


Pour lancer Ctrlr, vous devez vous placer dans le dossier où vous l'avez installé. Soit depuis votre gestionnaire de fichier, avec un double clic sur le fichier Ctrlr-i686 ou Ctrlr-X86_64 suivant votre architecture.

Depuis un terminal :
Copy to clipboard
cd /chemin/vers/Ctrlr/Ctrlr-i686 # + [ENTRÉE] si vous être en 32 bits cd /chemin/vers/Ctrlr/Ctrlr-X86_64 # + [ENTRÉE] si vous être en 64 bits


La fenêtre par défaut de Ctrlr va s'ouvrir :

Ctrlr PanneauVierge

 note
À chaque démarrage, Ctrlr charge automatiquement le dernier panneau ouvert. Si vous avez déjà utilisé Ctrlr, vous devez créer un nouveau panneau. Dans le menu File, choisissez New Panel.


L'interface se décompose en trois parties :
  • en haut, la barre de menu,
  • à droite, les paramètres des divers éléments que vous allez créer. La bande grise avec un point sur la gauche permet de réduire/agrandir cette partie,
  • le reste de la fenêtre contient votre panneau lui même (fond blanc avec grille).
La zone des paramètres à droite peut être redimensionnée via la ligne grise foncée, via un glissé-déposé.
Le panneau peut être redimensionné au pixel près. Placez votre pointeur sur un des bords du panneau et effectuez un glissé-déposé pour agrandir / réduire.



Configuration de Ctrlr


 note
Chose importante pour les linuxiens : vous devez impérativement décocher l'option Use OS native file load/save dialogs (disable for linux) dans le menu Edit -> Preferences. Sans quoi vous aurez une erreur à chaque tentative de sauvegarde de votre panneau.


Pour communiquer avec un synthétiseur ou n'importe quel autre appareil MIDI, nous devons définir le port MIDI ainsi que le canal.
Allez dans Menu -> MIDI -> Settings. La fenêtre suivante va s'ouvrir :

Ctrlr MidiSettings

Dans le cas du Triode, il n'y a qu'à configurer le port et le canal de sortie. Dans d'autres cas, vous pouvez régler le port et canal d'entrée, le port et canal du contrôleur (Ctrlr peut être utilisé avec une surface de contrôle par exemple).
Pour le port de sortie, clic sur le menu déroulant sous Output device et choisissez votre interface MIDI dans la liste.
Idem pour le canal associé mais cette fois dans la colonne MIDI Channel.
Si vous suivez ce tuto sans aucun appareil, vous pouvez passer cette étape bien qu'elle puisse être utile pour vérifier le bon fonctionnement de votre panneau avec le moniteur MIDI intégré à Ctrlr.



Configuration de notre panneau


En suivant les éléments encadrés en rouge dans la capture d'écran ci-dessous, nous allons nommer notre panneau, indiquer notre nom ou pseudo, notre adresse de courriel ainsi que l'URL de notre site web si nous en avons un. Ensuite nous allons lui donner un numéro de version et un nom de version (pas obligatoire). Pour finir, nous allons indiquer le nom et l'éditeur / constructeur du logiciel ou appareil piloté par ce panneau.

 note
Pour les cases contenant du texte, un simple clic passe en mode d'édition. Pour les cases contenant des nombres, un clic simple passe en mode d'édition, un clic-glissé permet de changer la valeur à la souris.


Ctrlr ConfigPanneau1

Pour le moment, j'ai mis 0 dans Version MAJOR et 1 dans Version MINOR ce qui correspond à 0.1. Nous augmenterons ces numéros progressivement au fur et à mesure pour arriver à la version fatidique 1.0 à la fin de ce tuto.

Il est maintenant grand temps d'enregistrer notre premier panneau. Allez dans le menu File puis Save as, choisissez l'emplacement. Vous verrez que par défaut, Ctrlr créé un nom pour vous. Dans mon cas c'est "Triode Panel_0_1_LinuxMAO_2018-09-30_12-24.panel". À l'avenir vous pourrez, soit sauvegarder avec Save ou avec Save versioned qui permet d'incrémenter le numéro Version MINOR ainsi que le nom du fichier. Pratique !



Quels paramètres MIDI à contrôler ?


Pour aller plus loin, il nous faut définir quels seront les paramètres que nous souhaitons contrôler depuis le panneau.
Pour cela, vous aurez besoin de la notice de votre synthé. Les assignations MIDI CC sont souvent différentes d'un fabricant à l'autre.

Dans le cas du triode, voici la liste des MIDI CC :
  • 48 LFO Depth
  • 49 LFO Rate
  • 50 Oscillator Detune
  • 51 Note Glide (portamento)
  • 52 Filter resonance
  • 53 Filter Cutoff
  • 54 Filter Decay
  • 55 Amplitude Decay
  • 56 Filter Accent
  • 57 Filter Envelope Modulation
  • 58 Oscilator Pulse Width
  • 59 Filter Attack
  • 60 Amplitude Attack
  • 64 Envelope Sustain
  • 65 Sub-oscillator
  • 66 PWM Sweep
  • 67 LFO Destination (osc/filter)
  • 68 Oscillator Wave (pulse/sawtooth)
  • 69 LFO Randomize
  • 70 LFO Note Retrigger (default ON)

Les MIDI CC compris entre 48 et 60 ont des valeurs comprises entre 0 et 127. Les MIDI CC compris entre 61 et 70 sont des interrupteurs. Les valeurs comprises entre 0 et 63 correspondent à Désactivé ou à la première valeur (osc pour LFO Destination par exemple) et 64 à 127 correspondent à Activé ou à la seconde valeur (filter pour LFO Destination).
 note
Vous rencontrerez parfois des valeurs comprises entre -63 et +63. Sachez qu'en matière de MIDI, il n'y a pas de valeur négative. C'est toujours entre 0 et 127. Ctrlr permet de faire une correspondance assez facilement (-63 = 0, 0 = 63 et +63 = 127). Nous verrons ça un peu plus loin.




Organisation de notre panneau


Regardons à quoi ressemble notre synthé. L'image ci-dessous va nous servir de base pour positionner nos divers boutons. Si votre synthé est différent, basez vous dessus.

Ctrlr PhotoTriode

En haut à droite, nous avons le potentiomètre de volume et la DEL de mise sous tension. Ils ne sont pas contrôlables via des CC, laissons les de côté.
Ceux qui nous intéressent sont dans les trois rangées en dessous.
Dans la première, nous retrouvons la section Envelopes avec Amp Decay, Filter Decay et l’interrupteur Sustain. La section Filter avec Cutoff et Rez.
Dans la seconde rangée nous trouvons la section Oscillators avec Glide, Detune et le bouton Sub OSC. La section LFO avec Rate et Depth.
Pour finir, les deux boutons du bas Waveform et LFO Dest.

Nous allons calquer la position des boutons de notre panneau en fonction de leurs positions réelles.

Les CC 56, 57, 58, 59, 60, 69 et 70 ne se retrouvent pas sur le synthé. Ces paramètres ne sont accessibles qu'en MIDI. Mettons les de côté pour l'instant.

Entrons dans le vif du sujet ! Commençons par mettre une couleur. Faites descendre l’ascenseur de la partie à droite de la fenêtre Ctrlr jusqu'à Editor comme sur la capture d'écran ci-dessous :

Ctrlr CouleurFond

Choisissez la couleur de fond dans Background colour. Avec un clic simple, vous pouvez entrer des valeurs numériques. Avec un clic sur le bouton droit, vous ferez ouvrir un sélecteur de couleur bien pratique. Dans le cas du triode, j'ai mis "FFFF5050" mais vous pouvez mettre ce que vous voulez et même jouer sur la transparence.
Rien ne se passe ? Normal. Enfin j'ignore pourquoi mais ce paramètre n'a pas l'effet souhaité. Je le configure tout de même.
Ensuite, d'un simple clic-gauche sur la valeur de Background colour, vous allez la sélectionner. Taper Ctrl+c pour copier cette valeur. Refaites un simple clic-gauche sur la valeur juste en dessous Background colour 1 et tapez Ctrl+v pour copier la valeur de Background colour ici. Tapez entrée et cette fois, votre fond a changé. Mais c'est un dégradé vers le blanc !
Ctrlr est très puissant. Vous pouvez même faire de jolis dégradés avec. 😯 Il est aussi possible de mettre une image en fond ainsi que des images à la place des divers boutons afin de ressembler de manière très précise à l'appareil original.
Pour un fond uni, ouvrez le menu déroulant Background gradient type juste en dessous de background colour 1 et choisissez none. Enfin, nous y sommes ! Nous obtenons ainsi un joli fond de couleur.

Un conseil, sauvegardez maintenant. Je ne le répéterai plus mais n'hésitez pas à sauvegarder le plus souvent possible. Ce n'est pas spécifique à Ctrlr d'ailleurs.

Séparons maintenant notre panneau en quatre groupes. Envelopes, Filter, Oscillators et LFO.
La capture d'écran suivante vous donne une idée de l'organisation du panneau. L'exemple n'est qu'à titre indicatif et devra être adapté à votre synthé. Pour l'instant, ne cherchez pas à être trop précis, ce n'est qu'une ébauche.

Ctrlr UiLabels

Pour obtenir les étiquettes ENVELOPES, FILTER, OSCILATORS et LFO, nous allons utiliser les uiLabel.
Placez le pointeur de souris dans le panneau, clic-droit ouvre le menu contextuel. Allez dans Static puis clic sur uiLabel. Vous venez de créer une étiquette noire avec texte blanc. 😊

Maintenant, il vous faut la mettre en place. Pour la déplacer, un simple glissé-déposé à l'emplacement souhaité. Pour plus de précision, vous pouvez utiliser les flèches de votre clavier.
Redimensionnez l'étiquette en plaçant le pointeur sur le contour puis faites un glissé-déposé à la taille souhaitée.

Passons aux noms. Sélectionnez votre étiquette si ce n'est pas le cas. Dans la partie droite de la fenêtre, dans Modulator, mettez ENVELOPES dans la case Name. Cette partie est surtout là pour l'organisation de votre panneau et pour accéder à tous les éléments depuis le langage LUA. Pour le cacher sur le panneau, allez dans Component generic et décochez la case Name label visible. Et hop, le nom de l'étiquette disparaît.
Ensuite, rendez vous dans Component et inscrivez ENVELOPES dans la case Label text.

 note
Ctrlr pourrait être amélioré sur plusieurs points dont celui d'avoir un nom de uiLabel qui peut être différent du nom affiché. Un seul aurait suffit. C'est le cas pour la grande majorité des éléments. Et pas uniquement pour les noms. Au début, cela entraîne certaines confusions. Faites y bien attention.

Dernier point, mettons un peu de couleur. Dans Component, vous pouvez changer la couleur de fond Background colour et du texte Text colour. Choisissez, de préférence, des couleurs en harmonie avec votre synthé et surtout lisibles, bien contrastées.

Il ne vous reste plus qu'à copier votre première étiquette avec Ctrl+c et la coller avec Ctrl+v. Changez les noms comme ci-dessus. Faites en autant que nécessaire et positionnez et redimensionnez les, toujours de façon grossière pour l'instant.



Création de notre premier bouton de type potentiomètre


Pour ce faire, et comme pour les uiLabel, clic-droit sur le panneau pour ouvrir le menu contextuel, allez dans Sliders puis clic sur uiSlider. Votre premier bouton est créé. 😊
Exactement comme pour le uiLabel, vous pouvez le déplacer et le redimensionner.

Changez quelques paramètres dans la partie droite (dorénavant, je vais juste indiquer les noms des paramètres) :
  • Modulator -> Name -> amp-decay
  • Component generic -> Visible name -> AMD DECAY
Vous pouvez aussi changer la police dans Name label font et la couleur dans Name label colour.
 note
Bien que le paramètre Modulator Name soit peu utile pour une étiquette, il est très important ici. En particulier si vous envisagez d'employer le langage LUA. Ce nom est celui qui vous permettra de choisir ce bouton dans votre script.


Passons maintenant au plus important : contrôler notre synthé.
Toujours avec notre bouton sélectionné, dans la partie droite, section MIDI :
Choisissez CC dans MIDI message type.
Le canal MIDI dans MIDI Channel doit être celui que vous avez configuré au début de ce tuto. Mais vous pouvez contrôler plusieurs appareils avec un seul panneau. Chaque bouton peut envoyer / recevoir des informations sur un canal différent si besoin.
Dans MIDI controler number, indiquez le numéro de CC. Avec le triode, indiquons le numéro 55.
Bien, si vous avez respectés scrupuleusement les indications ci-dessus, le bouton doit contrôler le synthé.

Encore une petite étape avant d'essayer ce bouton. Changeons la couleur du bouton. Pour le triode, je mets :
  • blanc (FFFFFFFF) à Component Rotary outline colour
  • noir (FF000000) à Component Rotary fill colour

 note
Si votre bouton doit avoir une valeur comprise entre -63 et 63 par exemple, vous devez modifier : Modulator -> Expression to evaluate when calculating MIDI message from the modulator value -> modulatorValue+64.
Component -> Minimum value à -63 et Maximum value à 63.




Essayons notre panneau


La première chose à faire, est de sortir du mode d'édition pour passer au mode "panneau". Dans le menu Panel, choisissez Panel mode. Le raccourcis Ctrl+e est bien pratique à retenir.
Désormais, vous pouvez faire tourner votre bouton et changer la valeur indiquée juste en dessous.
Si vous avez un synthé avec écran, vous devriez vous la valeur changer dessus aussi.
Si vous n'avez pas de synthé, ou s'il n'a pas d'écran, Ctrlr offre un utilitaire bien pratique : un moniteur MIDI. Dans le menu Tools, clic sur MIDI Monitor. Une nouvelle fenêtre vient de s'ouvrir. Pour activer la fonction de monitoring, dans le menu de cette fenêtre, View, clic sur Monitor Output va activer le moniteur de sortie MIDI.
Faites bouger votre bouton et vous verrez des indications dans la partie rouge, en haut de la fenêtre du moniteur.

Par exemple :
Copy to clipboard
[22:11:11:000796]: Time(1.000000) [Controller] Ch:[ 1] No:[ 55] Val:[ 45] RAW:[b0 37 2d]

Ce qui nous intéresse commence à Controller, dont Ch, No et Val. Si les valeurs ne correspondent pas à ce que votre bouton est censé faire, c'est que vous avez fait une erreur ou un oubli dans le chapitre précédent. Dans ce cas, prenez le temps de le relire.
Dans notre cas, nous agissons bien sur le canal 1, avec le CC numéro 55. La valeur étant comprise entre 0 et 127, tout va bien.

Vous êtes maintenant en mesure de copier ce bouton autant de fois que nécessaire et de l'adapter.

Ci-dessous, une image du Triode avec tous ces boutons :

Ctrlr UiButton



Petites modifications visuelles


Pour ne pas compliquer les choses dès le départ, nous avons laissés le texte au dessus des boutons. Sur notre triode, le texte est en dessous. Ctrlr permet de changer ça très facilement.

En mode Panel Edit, choisissez un bouton puis déplacez l’ascenseur de la partie de droite jusqu'à Component generic. Là, vous avez Name label position. Vous avez le choix entre none, top, bottom, left et right qui correspondent respectivement à aucun, haut, bas, gauche et droite. Dans le cas du triode, choisissez bottom.

Vous pouvez aussi choisir l'alignement du texte, sa taille et encore d'autres paramètres. Vous devriez commencer à être un peu plus autonome avec ce logiciel. Lâchez vous et essayez ! Vous voyez, au début Ctrlr paraît intimidant mais au final tout est assez clair.

Profitons-en pour changer les couleurs de la zone indiquant la valeur du paramètre, située au dessous de nos boutons. Allez dans Component est cherchez Value text colour. Remplacez par la couleur de votre choix. J'ai choisi blanc pour le triode.
Changez aussi Value background colour, j'ai pris noir. Puis Value outline colour, transparent dans mon cas (00000000).



Création de nos interrupteurs à deux positions


D'un clic-droit sur le panneau, en mode d'édition, sélectionnez Add component -> Buttons -> uiButton. Placez-le à la bonne place et redimensionnez-le si besoin. Dans le cas du triode, à droite de FILTER DECAY dans la section ENVELOPES.
Nommez-le dans Modulator -> Name. env-sustain pour le triode.
Dans MIDI message type, choisissez CC puis indiquez le numéro de CC correspondant, 64 pour le triode dans MIDI Controller number.
Pour rester cohérent avec l'ensemble de notre panneau, choisissez bottom dans Component generic -> Name label position, puis SUSTAIN dans Visible name. Vous pouvez aussi modifier la police dans Name label font si besoin.
Allez dans Component, puis faites les réglages suivants :

  • cochez Button is toggle button, ce qui permet de basculer entre les deux positions. Sinon vous devrez garder le clic pour activer,
  • blanc (FFFFFFFF) à Button background colour (on),
  • par défaut, Button values est à ON et OFF. Indiquez Inactif=0 et Actif=127 dessous.

Nous venons de créer notre premier interrupteur. 😊

Vous pouvez maintenant le copier pour SUB OSC de la section OSCILLATORS.
Puis pour finir, copiez-le pour le bouton LFO DEST de la section LFO. Mais cette fois, indiquez OSC=0 et FILTER=127 dans Button values afin de faire apparaître la fonction sur le bouton lui même. Changez les couleurs de ce texte si besoin dans Button text colour (on) et Button text colour (off).



Conclusion


Il nous reste quelques boutons qui ne sont pas sur le synthé. Pas besoin de ré-expliquer comment faire, si vous avez suivi ce tuto depuis le début, tout ira bien.
Il reste toutefois un bouton à trois positions que je n'ai pas abordé, le sélecteur WAVEFORM car il est un peu particulier sur le triode et répond à deux CC différents. Je n'ai pas trouvé comment faire ça avec Ctrlr...

Nous avons terminés notre panneau. Si tout fonctionne correctement, n'oubliez pas de le numéroter en 1.0.
S'il peut servir à la communauté, vous pourriez aussi le publier sur le site officiel en suivant ce tuto Image

Historique

Information Version
Tue 06 Nov 2018 10:41 olinuxx + suppression du bandeau suite à intégration dans le portail logiciel + multi-structures + cohérence wiki 95
Afficher
Mon 15 Oct 2018 10:00 olinuxx 93 - 94
Afficher
Sat 13 Oct 2018 19:41 bda Passage à grammalecte 79 - 92
Afficher
Sat 13 Oct 2018 14:52 bda Quelques corrections 74 - 78
Afficher
Sun 07 Oct 2018 13:43 olinuxx encore quelques petites choses 73
Afficher
Sun 07 Oct 2018 12:58 olinuxx + amélioration d'écriture + coquilles + mise en page / cohérence wiki + améliorations CODE + lien interne + ponctuations 72
Afficher
Sat 06 Oct 2018 18:59 bda Ajout d'une capture d'écran 70 - 71
Afficher
Sat 06 Oct 2018 18:22 bda Quelques corrections 69
Afficher
Sat 06 Oct 2018 17:29 bda Fin du chapitre sur la création d'interrupteur. 67 - 68
Afficher
Sat 06 Oct 2018 12:05 bda Quelques ajouts en fin de chapitre. 66
Afficher
Sat 06 Oct 2018 11:32 bda Ajout du chapitre "petites modifications visuelles" et création du chapitre "création de nos interrupteurs à deux positions" 64 - 65
Afficher
Tue 02 Oct 2018 22:42 bda 55 - 63
Afficher
Tue 02 Oct 2018 15:03 olinuxx + ponctuations 53 - 54
Afficher
Tue 02 Oct 2018 10:45 bda Quelques corrections / reformulation. Ajout d'espace insécable. Remplacement de nombreux termes entre " par du gras. 46 - 52
Afficher
  • «
  • 1 (en cours)
  • 2