Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]

6 - Le MIDI

> Forums de discussion > 6 - Le MIDI > Carla, AJ2 & branchements fixes
Dernier post

Carla, AJ2 & branchements fixes

jokoko utilisateur non connecté
Salut,

Je suis actuellement en train de me construire un setup très simple pour le live:
Je suis sous ubuntu studio 22.04
Pour ce faire j'utilise carla et différents plugins :
Synthés (helm, zynaddsubfx, amsynth) ou sampler (DecentSampler) avec des effets (fire, B.slizr, calf compressor, calf filter et j'en passe).

Pour contrôller tout ça j'utilise un clavier maître en USB (midiStart de miditech) ainsi qu'un LPD8 de Akai.

J'obtiens des résultats qui me plaîsent beaucoup, et quand je suis satisfais du résultat, PAF, je l'enregistre au format .carxp pour pouvoir la charger plus tard. ça marche super bien, j'arrive a retrouver tous mes presets, les modules sont tous patchés correctement au niveau audio.
Mais c'est au niveau MIDI que ça ne fonctionne pas de manière optimale: mes contrôlleurs ont des noms identiques d'une fois sur l'autre, à l'exeption d'un petit numéro, qui fait que carla n'arrive pas à les reconnaître et donc à les rebrancher comme je le souhaite.
exemple:
a2j:USB Device 0x2702:0x1110 [24] (capture): USB Device 0x2702:0x1110 MIDI 1
pour mon clavier maître. Ici il porte le numéro 24 entre crochets, et ce numéro, d'une fois sur l'autre change et empêche carla de le reconnaître.

J'ai fais un test dans lequel je change dans mon fichier carxp le numéro par le numéro qu'il (mon contrôlleur) porte ce jour là, le branchement s'opère parfaitement dès le chargement.

Je ne sais pas comment faire pour leur assigner un numéro fixe, ou pour demander a carla de ne pas prendre en compte ce numéro puisque sinon leur nom est le même.
J'imagine que cette question à déjà du être posé mais je n'ai pas trouvé dans mes recherche (surement pas les bons mots clés de recherche, je suis pas hyper calé en midi).

J'espère que mon message est suffisament clair.

Merci et à tout vite!

tongo utilisateur non connecté
Salut franchement j'utilise beaucoup Carla aussi pour faire en gros la même chose que toi et j'ai le même soucis et pour l'instant je ne l'ais pas réglé .. et en plus avant ça ne le faisait pas .
( mois je suis sous librazik 4 et quand j'étais sur librazik 3 ça ne faisait pas ça ) .

Une petite solution de contournement :
Il te faut créer des port midi through virtuel il y a un tuto sur linux mao , je ne sais plus ou .
Il faut passer tes contrôles midi par le ou les ports through et connecter ton contrôleur en entré du port through comme ça si t'as plusieurs truc connectés en sortie du port through ça va resté en mémoire et t'auras juste a reconnecter ton clavier maitre au port through à chaque fois que tu démarre ta session .
Sinon j'ai remarqué qu'en utilisant carla au travers de Ray session ou d'un autre gestionnaire de session NSM et en utilisant le patch de connexions jack ça règle le soucis ( il me semble ) .
En tout cas si il existe une vraie solution je suis preneur aussi , jusqu'à maintenant je pensais que ça venait de mon pc .
A+

jokoko utilisateur non connecté
Hello Tongo.

Merci pour ces suggestions. De mon côté j'ai fais des tests avec Ray Session et ça ne fonctionne pas mieux, bien que dans l'interface graphique, mes périphériques midi aient un nom plus court :
a2j:USB Device 0x2702:0x1110 [24] (capture): USB Device 0x2702:0x1110 MIDI 1
dans carla,
devient :
a2j:USB Device 0x2702:0x1110
dans Ray Session (mais je penses que c'est juste au niveau de l'interface graphique, parce que j'ai fais des essais en fermant/ouvrant plusieurs fois une setup basique dans RaySession, et si je débranche/rebranche mon contrôlleur MIDI entre temps et qu'il change de numéro, Ray Session perd aussi le branchement.

Et par ailleurs, même si ça à l'air très sympa comme logiciel, vue que j'utilise que Carla dans mon setup, ouvrir un logiciel qui en ouvre un autre, je trouves pas ça optimal.

Quant à la solution du midi through virtuel, j'aimerais en savoir plus, j'ai cherché mais pas trouvé le tuto dont tu parles...

tongo utilisateur non connecté
Dommage pour ray session il me semblait que ça avait fonctionné chez moi , mais j'en suis plus sur maintenant .
Pour ce qui est de la page ou il est question de créer des port through ou de les supprimer je l'ai retrouvé : MIDI Through
c'est une méthode que j'ai utilisé sur librazik 3 et qui m'a permis de créer plusieurs port through car j'en avais besoin , ça a fonctionné je les ais toujours d'ailleurs sur mon ancien pc .
Mais dans tout les cas ça ne règlera pas le problème c'est juste un contournement ..
Chez moi j'ai un evolution uc33 qui change de n° a tout les coup , un reface dx que j'utilise souvent comme clavier maitre qui change de n° aussi a tout les coup ou presque et une interface midi usb um one et elle elle ne change jamais de n° ..
A+

jokoko utilisateur non connecté
Ah Ok, merci pour la doc.

Effectivement cette solution marche et c'est déjà un grand pas : pour du live, je veux bien avoir a faire des manipulations à la mise en place (on va dire pdt les balances), quitte a devoir faire des lignes de commandes et tout. Mais je voudrais ne plus avoir a en faire pendant le live.
La solution de passer par le port Midi Through marche bien pour ça. D'ailleurs un seul port au quel je connect mes différents contrôlleurs suffit.
Donc dans mon cas, c'est surtout la commande aconnect qui permet de faire le taf http://www.linuxcertif.com/man/1/aconnect/

Bon après, si je trouves une solutions pour comme je disais au départ, faire que mes contrôlleurs restent en fixe et n'avoir aucune manip a faire d'une session sur l'autre je n'en serais que plus contant, mais déjà, la solution de passer par le port MIDI through me permet de switcher entre mes différentes config carla sans avoir de re-branchement à faire!

tongo utilisateur non connecté
Salut , dans tout les cas les port through sont bien utile et apriori tu n'a qu'a connecter les contrôleur une seule fois aprés avoir démarré ton pc après ça reste quand tu passe d'une session a l’autre .
Comme tu fais du live avec carla il se pourrait qu'un jour tu te dise :
j'aimerai bien pouvoir lancer une session carla complette avec juste un midi program change ou d’ailleurs n'importe quel CC ..
Appuyer sur une touche de ton contrôleur et ça lance ta session Carla ..
Ici j'explique comment faire ça assez simplement :
https://youtu.be/wfW_S7LjXZQ
J'ai pas l'habitude de renvoyer des gents sur mes vidéos dans le forum mais j'ai cherché tellement longtemps cette solution ...
T'as aussi quelques explication dans la description de la vidéo .
A+

Houston4444 utilisateur non connecté France
Bonjour à tous !

tongo écrit :
Salut franchement j'utilise beaucoup Carla aussi pour faire en gros la même chose que toi et j'ai le même soucis et pour l'instant je ne l'ais pas réglé .. et en plus avant ça ne le faisait pas .
( mois je suis sous librazik 4 et quand j'étais sur librazik 3 ça ne faisait pas ça ).


Est-ce que tu lances JACK via Cadence sous LZK4 ? Si c'est le cas normalement le problème ne devrait pas se poser.

Parce qu'en fait, la solution est assez simple, il s'agit de lancer le démon A2J avec l'option "allow unique port names", par exemple avec a2j_control :

a2j_control --aup
a2j_control --start


Et hop, les ports A2J ont toujours le même nom.

jojoko écrit :
Et par ailleurs, même si ça à l'air très sympa comme logiciel, vue que j'utilise que Carla dans mon setup, ouvrir un logiciel qui en ouvre un autre, je trouves pas ça optimal.


mmmh, je pense que si. Tu peux aller plus facilement plus loin par la suite, si tu veux par exemple utiliser plusieurs instances de Carla à la demande et réduire la charge DSP, ou lancer un autre soft. Et puis bon, la baie de brassage évidemment, puisque celle de RaySession vient de celle de Carla, avec beaucoup d'améliorations. Bon, je dis ça, j'ai au gros biais quand même.

tongo utilisateur non connecté
Merci pour le tuyau , c'est vrai qu'il est dit qu'il vaut mieux utiliser Cadence a la place de Qjackcontrol sous LZK4 , j'avais pas fait le rapprochement avec ce problème , je vais tester ça sous peu !
a+

jokoko utilisateur non connecté
Merci pour les précisions Houston, mais je suis Ubuntu Studio 22.04, donc je n'utilise pas Qjackctl, mais Studio Controls, qui gère le serveur jack (avec une session pulseAudio imbriqué à l'intérieur, ce qui est très pratique car du coup, quand jack tourne, ça ne coupe les sources média audio classique -firefox, vlc- comme c'est le cas avec Qjackctl).

Donc je sais pas du tout comment Studio Control, mais il y semble faire tourner un démon A2J puisqu'il propose dans les options :
"Allow A2J NON-unique (a2jmidi -u)"
Cette case est d'ailleurs décoché chez moi, ce qui est étrange puisque c'est bien allow NON-unique (donc à priori l'inverse de allow unique).
La commande
a2j_control --aup

semble fonctionner, d'ailleurs j'ai aussi:
a2j_control --status
--- status
Bridging disabled
Hardware not exported
Allowing unique port names


La commande --start me renvoi une erreur, mais je penses que c'est parce que le démon est déjà lancé dans studio controls.

Pour autant, dans Carla, mes contrôlleurs midi ont toujours cette numérotation entre crochet, qui change selon les branchements.

Donc pour l'instant je retiens plutôt l'option de passer par midi through, je me suis fais un ptit script bash pour initialiser rapidement mon installation au démarrage :
#!/bin/bash
setupMidi(){
   aconnect 'USB Device 0x2702:0x1110' 'Midi Through';
   aconnect 'LPD8' 'Midi Through'
}
setupMidi


Et merci tongo pour le liens tuto, c'est effectivement la 2eme étape de mon setup, je vais donc aller voir ça avec plaisir!

tongo utilisateur non connecté
C'est pas vraiment un tuto c'est plus un partage d'infos .. , une fois qu'on sait que ça existe si on veut le mettre en œuvre en fait c'est assez simple . Sinon j'y serais pas arrivé !

Citation :
Merci pour les précisions Houston, mais je suis Ubuntu Studio 22.04, donc je n'utilise pas Qjackctl, mais Studio Controls, qui gère le serveur jack (avec une session pulseAudio imbriqué à l'intérieur, ce qui est très pratique car du coup, quand jack tourne, ça ne coupe les sources média audio classique -firefox, vlc- comme c'est le cas avec Qjackctl).

Si t'es content de Studio Control je ne vois pas d'avantage a mettre autres chose , mais que ce soit avec Cadence ou Qjackcontrol on peut aussi avoir tout les sons du PC ( navigateur web , vlc .. ) qui transite par pulse audio et sont renvoyé dans Jack , Dans cadence on peut même activé et désactiver le pont par une simple option .

Pour ce qui est d'utiliser Ray Session pour le live ou autres choses , tant que tu n'utilise que Carla c'est effectivement pas nécessaire , mais dés que tu voudra utilisé plusieurs logiciels en même temps du genre simplement Carla + un bon mixer avec les effets en aux sur plusieurs pistes ... Là t'auras pas vraiment le choix .
Ray Session manage les sauvegardes de logiciels et toutes les interconnexions et en plus il ne consomme aucune ressource audio .
A +

tongo utilisateur non connecté
Du coup j'ai fait le test avec Cadence sous lzk 4 et du point de vu de mon controlleur midi evolution uc33 ça mémorise quand même pas la connexion ..

Houston4444 :
tu parle d'ajouter çà :
a2j_control --aup
a2j_control --start

Si j'utilise Cadence c'est ou qu'il faut l'ajouter ?
Merci .
A+

Houston4444 utilisateur non connecté France
Mais ha coule pas, au temps pour moi, je vous ai enduit d'horreur, c'est bien
a2j_control --dup

qu'il faut utiliser, et pas
a2j_control --aup


Puisque, justement, "allow unique port names" veut bien dire qu'on inclue dans le nom du port JACK MIDI le numéro du client ALSA correspondant, et c'est justement ça qui fait que la mémoire des connexions ne fonctionne pas.

Dans Cadence (sous LZK4), il suffit que la case "Noms de ports uniques" soit bien décochée, au besoin redémarrer le pont (je ne sais plus).

Image

jokoko utilisateur non connecté
Salut,
Ok donc de ce que tu dis Houston, je comprend que dans Studio Controls, ce doit être la case "Allow Non-unique" (oui la formulation avec la négation est un peu troublante) qui doit être coché.
j'vais essayer ça alors.

Et sinon, j'ai mis en oeuvre ton ptit tuto Tongo et ça marche bien pour passer d'une session Carla à un autre avec un Control Change. J'ai juste du faire une petite modif dans le script car mon control change m'envoyant à chaque fois 2 informations consécutives (le 1 puis le 0), ça m'ouvrait a chaque fois carla en double. J'ai rajouté une condition if pour m'assurer de lire uniquement l'impulse du CC et pas son relachement:

#!/bin/bash

aseqdump -p "LPD8" | \
while IFS=" ," read src ev1 ev2 ch label1 data1 label2 data2 rest; do
if [[ $data2 != 0 ]]
then
    case "$ev1 $ev2 $data1" in
        "Control change 1" ) xdotool exec /home/jokoko/Carla/lanceur/fireGong.sh ;;
        "Control change 2" ) xdotool exec /home/jokoko/Carla/lanceur/slizroar.sh ;;
        "Control change 3" ) xdotool exec /home/jokoko/Carla/lanceur/zistho.sh ;;
        "Control change 4" ) xdotool exec /home/jokoko/Carla/lanceur/dub.sh ;;
        "Control change 5" ) xdotool exec /home/jokoko/Carla/lanceur/triOrcTense.sh ;;
    esac
    fi
done


Je vérifie avec ma condition if si la variable $data2 (qui correspond ici à l'input value du contrôlleur) est bien différente de 0 pour ne pas prendre en compte le relachement du pad. Depuis cette modif ça ne m'ouvre bien qu'une seule fenêtre Carla.

tongo utilisateur non connecté
Déjà si ça fonctionne comme ça c'est pas mal .

Tu pourrait peut êtres essayer de voir si tu peux configurer tes pads sur le lpd8 , si ils pouvait envoyer des midi programs changes ça te simplifierais la chose .
Dans le program change il n'y a qu'un ordre qui est envoyé .

Sur mon contrôleur midi il y a des boutons qui envoie des CC on ou off , il sont configurer de cette manière :
1 appuie = cc on , 1 autre appuie sur le même boutons = cc of
( il n'y a aucune lumière ni lead d'indication de l'état du bouton , donc des fois ça m'arrive d'envoyer un cc off pour lancer Carla et je ne m'en rends pas forcément compte )

sur le tiens tu es en CC on/off direct donc dés que tu appuie ça envoi on , dés que tu relâche ça envoie off donc 2 CC pour un appuie , tu doit pouvoir configurer de manière a avoir la même chose que moi : un appuie = on , un appuie = off .
Mais comme t'as des lead d’indication de l'état ça risque d'être l'embrouille ..

Sinon , sans rien changer à la config de ton LPD 8 tu pourrait tester ça :
dans un terminal
aseqdump -p "LPD8" | \

de la t'appuie sur une touche du LPD 8, il devrait y avoir 2 ligne qui apparaissent dans le terminal
la premiere pour le on , la deuxième pour le off .
Tu copie la première et tu t'en sers comme déclencheur dans ton script , si il y a une différence entre les 2 lignes ça pourrait fonctionner , je suis pas sur mon pc MAO je ne peux donc le tester tout de suite .

et ensuite tu refait un script de test comme ça ( supprime dans ce cas ta ligne if ):

#!/bin/bash

aseqdump -p "LPD8" | \
while IFS=" ," read src ev1 ev2 ch label1 data1 label2 data2 rest; do

then
    case "$ev1 $ev2 $data1" in
        "__la ligne que t'as copié tu la cole là__" ) xdotool exec /home/jokoko/Carla/lanceur/fireGong.sh ;;

    esac
    fi
done


Si ça marche tant mieux , mais dit toi que je n'en sais pas plus que toi du point de vu du codage ..
En tout cas je suis sur qu'en ajoutant a " Control change 1 " la valeur qui correspond à on alors le script ne réagira plus qu'a cet ordre là et pas au off .

Cherche sur internet avec le terme XDOTOOL tu devrait trouver des exemples de script plus précis que le miens .
A+

Houston4444 utilisateur non connecté France
xdotool ça permet effectivement d'automatiser des trucs chouettes, mais attention, ça ne marche que avec le serveur X (X11), ça marchera pas du tout avec Wayland (par exemple sous Gnome), et Wayland tend à se généraliser (assez doucement il est vrai, pas si certain que ça prenne).
Enfin, je ne comprend pas l'idée d'utiliser xdotool pour executer quelque chose sans condition particulière, par exemple dans

case "$ev1 $ev2 $data1" in
        "Control change 1" ) xdotool exec /home/jokoko/Carla/lanceur/fireGong.sh ;;
        "Control change 2" ) xdotool exec /home/jokoko/Carla/lanceur/slizroar.sh ;;
        "Control change 3" ) xdotool exec /home/jokoko/Carla/lanceur/zistho.sh ;;
        "Control change 4" ) xdotool exec /home/jokoko/Carla/lanceur/dub.sh ;;
        "Control change 5" ) xdotool exec /home/jokoko/Carla/lanceur/triOrcTense.sh ;;
    esac


je pense que tu peux remplacer tout ça par
case "$ev1 $ev2 $data1" in
        "Control change 1" ) /home/jokoko/Carla/lanceur/fireGong.sh &;;
        "Control change 2" ) /home/jokoko/Carla/lanceur/slizroar.sh &;;
        "Control change 3" ) /home/jokoko/Carla/lanceur/zistho.sh &;;
        "Control change 4" ) /home/jokoko/Carla/lanceur/dub.sh &;;
        "Control change 5" ) /home/jokoko/Carla/lanceur/triOrcTense.sh &;;
    esac


si tes scripts sont exécutables.

Et allez, j'irai même un peu plus loin:

#!/bin/bash

carla_dir=/home/jokoko/Carla/lanceur
aseqdump -p "LPD8" | \
while IFS=" ," read src ev1 ev2 ch label1 data1 label2 data2 rest; do
if [[ $data2 != 0 ]]
then
    case "$ev1 $ev2 $data1" in
        "Control change 1" ) ${carla_dir}/fireGong.sh &;;
        "Control change 2" ) ${carla_dir}/slizroar.sh &;;
        "Control change 3" ) ${carla_dir}/zistho.sh &;;
        "Control change 4" ) ${carla_dir}/dub.sh &;;
        "Control change 5" ) ${carla_dir}/triOrcTense.sh &;;
    esac
    fi
done


Sinon, pour effectuer des actions scriptées à partir d'évènement MIDI, il y a Mentat , c'est assez cool et c'est en python (sans doute plus simple que le shell finalement).

jokoko utilisateur non connecté
Hello,

Merci pour les précisions. Pour le control change de mon LPD8, j'ai 2 infos a chaque impulse, et dont la seule différence est la "value" -> $data2 dans le script. Je suis donc obligé d'utiliser cette condition IF dans mon script. Mais ça marche très bien.

Et merci pour les tips de simplification, quand on veut y revenir plus tard, c'est tjrs mieux quand c'est plus lisible.

Et j'suis aller jeté un coup d'oeil rapide à Mentat, ça pourrait être une solutions intéressante pour faire un truc que j'aimerais bien faire par la suite : Quand un CC est pressé, renvoyer une valeur sur ce CC, afin que le bouton soit rétroéclairé (et idéalement faire en sorte que cet éclairage soit un témoin du fait que la nouvelle session soit chargée et prête à l'emploi). J'avais essayé de le faire avec des plugins midi dans carla, mais sans succès.

Mais si tout ceci est très intéressant, je me garde ça pour une amélioration ultérieur, là j'ai d'autres trucs sur le feu à régler et en l'état ça marche pas si mal.

Merci pour tout.
Je ne sais si je mets résolu sur le topic, parce que le problème n'a pas vraiment été résolu, on a juste trouvé des moyens de le contourner... ?

Houston4444 utilisateur non connecté France
jokoko écrit :
Je ne sais si je mets résolu sur le topic, parce que le problème n'a pas vraiment été résolu, on a juste trouvé des moyens de le contourner... ?


Ben ça dépend, si tu essayes avec la case cochée dans Studio Controls, et que ça règle la question initiale (ce qui je pense à 99% de chances de se réaliser), alors tu pourras mettre le sujet en résolu, ce même si tu préfères un choix de contournement.

tongo utilisateur non connecté
Salut pour ma part j'ai tester d'utiliser Cadence à la place de Qjackcontrol , ça a résolu en partie le problème de sauvegarde de connexion en décochant l'option "nom de port unique" ( a condition d’arrêter et redémarrer le pont A2J a chaque lancement de Cadence , il y encore un truc que j'ai pas du saisir a ce niveau ) .
J'ai trois interface midi de connecté , sur les trois il y en a 2 dont les connexions sont maintenant bien enregistré alors qu'avant elles ne se reconnectés pas de manière systématique mais parfois oui , j'avais pas poussé trés loin dans ma recherche car je ne m'en sert que peut .
Par contre l'Evolution uc33 que j'utilise beaucoup ne se reconnecte toujours pas automatiquement , même avec un nom de port qui ne change pas .. du coup elle passe toujours par un port through .
Peut êtres que ce contrôleur n'as qu'une compatibilité partielle avec linux ..
A+

Afficher les articles :
Aller au forum :

Documentation [Afficher / Cacher]

Faire un don
[Afficher / Cacher]

Connexion
[Afficher / Cacher]



Mégaphone [Afficher / Cacher]

calixtus06, 18:36, jeu. 22 Feb 2024: Bonjour et bienvenue à nikartri et rckloar :-)
calixtus06, 10:15, mer. 14 Feb 2024: Bonjour et bienvenue à smonff, Alphascorpii, tadumtss et letoII :-)
calixtus06, 11:14, lun. 12 Feb 2024: Bonjour et bienvenue à Lenaye, laiqh :-)
olinuxx, 20:32, mar. 06 Feb 2024: À l'ombre du poêle, bonne lecture de l'éditorial !
allany, 16:12, lun. 05 Feb 2024: Pas de trêve hivernale pour l'éditorial ! [Lien]
olinuxx, 22:47, sam. 03 Feb 2024: Bonjour et bienvenue à GTof cool
olinuxx, 20:25, jeu. 01 Feb 2024: Bonjour et bienvenue à krisden cool
calixtus06, 22:06, ven. 26 Jan 2024: bonjour et bienvenue à Darknours :-)
bluedid29, 19:34, mar. 23 Jan 2024: Meilleur voeux et grand merci Olinuxx, top distribution MAO LibraZiK :-)
pierrotlo, 15:20, sam. 20 Jan 2024: Meilleurs voeux à toute l'équipe. Je ne suis pas très présent parce qu'en préparation de ma retraite. Ça arrive à tout le monde, eh oui !
olinuxx, 11:22, jeu. 18 Jan 2024: [ANNONCE] LibraZiK-4 dispose à présent d'un live ! [Lien] cool
olinuxx, 11:21, jeu. 18 Jan 2024: Bonjour et bienvenue à thomasl cool