Chargement...
 
Skip to main content

5 - Les serveurs son : JACK, PipeWire, PulseAudio et autres...


Script connect disconnect pour JACKD

Bonjour a tous,
ayant voulu expérimenter ladish mais me trouvant confronté a un problème de config de pcm de type multi, je me tourne aujourd'hui vers la création de sript pour pouvoire connecter et déconnecter des instruments a la volé pour du live.
Alors, je ne me débrouille pas trop mal sur linux, mais des scripts, ben j'en ai pratiquement pas fait.

Jackd est déjà lancé pour mes test. voici un jack_lsp
Copy to clipboard
jeant@Dresdnerlinux:~$ jack_lsp system:capture_1 system:capture_2 system:capture_3 system:capture_4 system:playback_1 system:playback_2 system:playback_3 system:playback_4


Puis, j'ai commencer une ébauche du genre :

Copy to clipboard
#!/bin/sh cd /media/data/jeant/MAO/BIN/XWAX/ xwax -t traktor_a -l /media/data/commun/jean/Musique -j xwax jack_connect xwax_playback_L playback_1 jack_connect xwax_playback_R playback_2


Ma voilà déjà confronté au premier problème. xwax se lance dans un terminal, mais ne donne bien sur pas la main a jack_connect tant que l'application n'est pas terminé ...

Voilà alors là je suis complètement noob ...
France
il existe un début de doc sur LinuxMAO ici : Scripts Bash
le paragraphe qui t'intéresse est "&,&&...", mais il est vide ! 😬
voila la soluce :
xwax -t traktor_a -l /media/data/commun/jean/Musique -j xwax &

autre chose, es-tu sur que tu utilise /bin/sh et non pas /bin/bash ?
encore autre chose : pourquoi le "change directory" ??
encore encore autre chose : c'est dommage que tu ne puisse pas faire fonctionner correctement jack2 : il supprime les "clics" lors des connections...🙄
Merci beaucoup Olivier,
effectivement, j'ai remplacer /bin/sh par /bin/bash et ajouté le & puis sleep 6 avant les connections et enfin un read. Ca marche nickel. Alors pourquoi le change directory ? Parceque je suis nul et en fait ca ne sert a rien 😂 ...
Pour les & et &&, je pense que je ne vais pas avoir de mal a trouver des trucs sur Internet. Merci encore ...

Pour les clics de que jack2 supprime, c'est effectivement très embêtant et je ne savais que jack1 en produisait. Il faut vraiment que je trouve une solution ...
France
j'en ai une j'en ai une !! 😀😀 (de soluce)
je viens juste de passer a jack2, du coup avant j'ai trouvé un truc
ce truc c'est amixer !
Tu peut mettre ta carte sur mute au début du script
et la "dé-muter" a la fin
du coup, s'il y a des clics / x-runs / craquements (pas obligatoire non plus), au moins ca te pourri pas la sono !

ps : un read ??? pourquoi faire ?
Merci a toi Olivier. Grace a toi j'ai pu me faire une super petite interface graphique avec gtkdialog qui fonctionne très bien pour contrôler mes quatres sources avec jack. Je compte bien la faire évoluer pour y ajouter des sources.

En voici la source :

Copy to clipboard
#! /bin/bash export MAIN_DIALOG=' Turntable1.png jack_disconnect system:capture_1 xwax-01:xwax2_timecode_L & jack_disconnect system:capture_2 xwax-01:xwax2_timecode_R & jack_disconnect xwax-01:xwax2_playback_L system:playback_1 & jack_disconnect xwax-01:xwax2_playback_R system:playback_2 & jack_connect system:capture_1 system:playback_1 & jack_connect system:capture_2 system:playback_2 Turntable2.png jack_disconnect system:capture_3 system:playback_3 & jack_disconnect system:capture_4 system:playback_4 & jack_connect system:capture_3 xwax:xwax1_timecode_L & jack_connect system:capture_4 xwax:xwax1_timecode_R & jack_connect xwax:xwax1_playback_L system:playback_3 & jack_connect xwax:xwax1_playback_R system:playback_4 Turntable2.png jack_disconnect system:capture_1 system:playback_1 & jack_disconnect system:capture_2 system:playback_2 & jack_connect system:capture_1 xwax-01:xwax2_timecode_L & jack_connect system:capture_2 xwax-01:xwax2_timecode_R & jack_connect xwax-01:xwax2_playback_L system:playback_1 & jack_connect xwax-01:xwax2_playback_R system:playback_2 Turntable1.png jack_disconnect system:capture_3 xwax:xwax1_timecode_L &jack_disconnect system:capture_4 xwax:xwax1_timecode_R & jack_disconnect xwax:xwax1_playback_L system:playback_3 & jack_disconnect xwax:xwax1_playback_R system:playback_4 & jack_connect system:capture_3 system:playback_3 & jack_connect system:capture_4 system:playback_4 ' gtkdialog --program=MAIN_DIALOG


Par contre, tu as raison pour les clic au connexion/deconnexions. Je ne comprens pas vraiment de qu'elle manière tu mute et dé-mute la carte ... Le truc, c'est que quand je modifie une connexion, les autres doivent rester en place puisqu'elle continues a jouer ... Difficile a expliquer ...
France
Par contre, tu as raison pour les clic au connexion/deconnexions. Je ne comprens pas vraiment de qu'elle manière tu mute et dé-mute la carte ... Le truc, c'est que quand je modifie une connexion, les autres doivent rester en place puisqu'elle continues a jouer ... Difficile a expliquer ...

je vois le probleme, et je n'ai pas de solution
si tu as bien compris mon systeme, je coupe le son de la carte le temps de faire les connexions, donc apparement ca ne collerai pas avec le tien...
(voir "man amixer")

je ne connaissait pas gtkdialog, ca a l'air plutot sympa tout ca ! tu nous envoi une capture d'écran pour qu'on puisse réver nous aussi ? 😀
France
héhé
bien joué !
Je suis en train de décrire mon setup de scène dans un autre topic. J'utilise des scripts (un général, avec des options pour pouvoir lancer l'intégralité, ou seulement certains modules) au lancement.
J'ai commencé ça il y a un an, et j'ai été confronté à pas mal de problèmes lorsqu'on veut que ça s'automatise vraiment (par exemple récupérer l'identifiant dans Jack, quand on a 3 instances d'AMS avec le même nom, attendre que le programme se soit connecté à ALSAseq et à Jack, ou encore, simplement, ne plus avoir à utiliser de sleep). Je vous posterai ça bientôt. C'est sûrement pas optimal, c'est même plutôt lourd et gros, et les remarques seront les bienvenues, d'ailleurs.

(note: le script comprend également le dispatchage sur différents bureaux, et le placement géométriques des fenêtres avec wmctrl)
France
sinon je viens de penser a autre autres pour supprimer les clics :

inserer un mixer logiciel du genre non-mixer entre tes sources et la sortie master.
ainsi tu peux mettre la piste de la source que tu veux débrancher en "mute", et la plus de clics (je crois !?)
du coup je ne suis meme pas sur que tu ai vraiment besoin de déconnecter tes sources, les réduire au silence devrai suffire pour ce que tu veux faire
je ne suis pas sur non plus que non-mixer soit utilisable ne ligne de commande, mais je suis certain que ce type de logiciel existe deja, il suffit de chercher un peu : au pire puredata, d'ailleur vu que tu utilise une interface graphique, vuex tu avoir quelque chose en ligne de commandes ?