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



L'idée de base :

Concrètement, j'avais besoin d'un petit script qui me permette de lancer les logiciels que je veux, avec les sauvegardes correspondantes, pour enfin charger les connections qui vont bien. Le tout en graphique et en pas trop compliqué.

Le script lance ensuite un terminal et chaque application sera lancée dans l'un de ses onglet.

Pré-requis

- Le script est fait pour fonctionner sous gnome. Il faudra l'adapter aux autres interfaces... Sinon en installant gnome-terminal ça devrait marcher

- Vous aurez besoin de Zenity , un petit programme qui permet d'insérer des boites de dialogues dans un script bash

arrow Vous trouverez un petit récapitulatif ici

- Tout les fichiers de sauvegardes d'un même logiciel devront être dans un même dossier (un dossier par soft)
- Évitez les espaces dans le chemin et les noms de fichier

exclaim Attention, ici, jack est DEJA lancé au moment de l'execution du script... mais rien n'empêche de le lancer via ce dernier.

Le script


#!/bin/sh

#le chemin vers le dossier des sauvegardes
the_path=/home/user/Musique

#Liste des softwares
softwares_list=$(zenity --width=400 --height=300 --list  --text "TOOLS #!" --checklist  --column "Pick" --column "among those :" FALSE "Hydrogen" FALSE "SooperLooper" FALSE "Seq24" FALSE "Phasex" FALSE "Yoshimi" FALSE "Jack-Rack" --separator=" "); 


#Options pour chaque soft

#SOOPERLOOPER 
case $softwares_list in *SooperLooper*)
		sooper_file=$(zenity --width=500 --height=150 --entry --text "Wanna load a loop session?" `ls $the_path/Sooperlooper/*.slsess` ); 
		sooper_launcher=(--tab -e "sooperlooper --load-session=$(printf %q "$sooper_file")") ;
		slgui_launcher=(--tab -e "slgui") ;
;; 
esac

#PHASEX
case $softwares_list in *Phasex*)
		phasex_synth=$(zenity --width=500 --height=150 --entry --text "[Phasex] Wanna load a sound?" `ls /home/tch/.phasex/user-patches/*.phx` ); 
		phasex_launcher=(--tab -e "phasex -m 11 $(printf %q "$phasex_synth")") ; 
;; 
esac

#YOSHIMI
case $softwares_list in *Yoshimi*)
		yoshimi_synth=$(zenity --width=500 --height=150 --entry --text "[Yoshimi] Wanna load a sound?" `ls $the_path/Yoshimi/*.xiz` ); 
		yoshimi_launcher=(--tab -e "yoshimi -K -L $(printf %q "$yoshimi_synth")") ;
;; 
esac

#HYDROGEN
case $softwares_list in *Hydrogen*)
		h2_song=$(zenity --width=500 --height=150 --entry --text "[H2] Wanna load a drum track?" `ls $the_path/Hydrogen/*.h2song` ); 
		h2_launcher=(--tab -e "hydrogen -s $(printf %q "$h2_song")") ; 
;; 
esac

#SEQ24
case $softwares_list in *Seq24*)
		seq24_song=$(zenity --width=500 --height=150 --entry --text "[SEQ24] Wanna load a song?" `ls $the_path/Seq24/*`); 
		seq24_launcher=(--tab -e "seq24 --file $(printf %q "$seq24_song")") ;
;; 
esac

#JACK-RACK
case $softwares_list in *Jack-Rack*)
		fx_rack=$(zenity --width=500 --height=150 --entry --text "[Jack-Rack] Wanna load a song?" `ls $the_path/JackRack/*`); 
		jackrack_launcher=(--tab -e "jack-rack $(printf %q "$fx_rack")"); 
;; 
esac


#Choix de la baie de brassage
patchbay=$(zenity --width=500 --height=150 --entry --text "[QjackCTL] What connections would fit?" `ls $the_path/QJackCTL/*.xml`); 

#THE LAUNCHER
gnome-terminal --tab -e "a2j" "${sooper_launcher[@]}" "${slgui_launcher[@]}" "${phasex_launcher[@]}" "${yoshimi_launcher[@]}" "${h2_launcher[@]}" "${seq24_launcher[@]}" "${jackrack_launcher[@]}" &

#On attend avant de lancer qjackCTL
sleep 10;

qjackctl -a "${patchbay}"


Utilisation


Une fois les valeurs (chemin, logiciels etc...) adaptés pour votre config, il suffit de vous placer dans le répertoire où se trouve le script et de faire :

sh nomduscript


Explication


softwares_list=$(zenity --width=400 --height=300 --list  --text "TOOLS #!" --checklist  --column "Pick" --column "among those :" FALSE "Hydrogen");


On définit la liste des softwares à la main dans une boite case à cocher.
Il suffit de mettre FALSE/TRUE (suivant si vous voulez que le logiciel soit choisi par défaut ou non) puis le nom du logiciel entre guillemets.

#HYDROGEN
35 . case $softwares_list in *Hydrogen*)
36 . 		h2_song=$(zenity --width=500 --height=150 --entry --text "[H2] Wanna load a drum track?" `ls $the_path/Hydrogen/*.h2song` ); 
37 . 		h2_launcher=(--tab -e "hydrogen -s $(printf %q "$h2_song")") ; 
38 . ;; 
39 . esac


Voila le gros morceau en gros voila ce qu'il se passe :
Si jamais il trouve "Hydrogen" dans la variable $softwares_list renvoyée par la fenêtre précédente.

On crée une autre variable h2_song pour accueillir le morceau à charger dans Hydrogen. Pour ce faire, on utilise une menu déroulant fournit par zenity.

Vous l'aurez remarqué, les valeurs du menu déroulant ne sont pas listées à la main, mais générée automatiquement par l’exécution d'un ls dans le répertoire où se trouve les morceaux d'hydrogen.

Enfin en crée la variable h2_launcher avec la commande pour lancer le soft dans le terminal
--tab : crée un nouvel onglet

-e : indique qu'il faut exécuter une commande

Il est possible de lancer le logiciel avec n'importe quelle option. Ici je n'utilise que "-s" qui indique le morceau à charger.

questionle printf %q permet de s'assurer que la variable arrive bien interprétée... mais j'en sais pas plus

gnome-terminal --tab -e "a2j" "${h2_launcher[@]}" &


Ensuite on lance le terminal avec tout ses onglets. Ici, j'ai mis "a2j" en dur, parce que je le lance tout le temps, donc il n'est pas dans la liste des options. J'aurais aussi pu le mettre dans la liste des logiciels avec un TRUE devant.

La syntaxe pour appeler la variable de lancement est importante : "${h2_launcher@}"
Mettez bien les guillemets et le @.

Le & à la fin du launcher permet de lancer une autre commande après.


sleep 10;

qjackctl -a "${patchbay}"


On dis d'attendre 10 secondes (le temps que tout se lance) puis on lance qjackCTL avec la baie de brassage active qu'on aura choisi au préalable. Les connections sont ainsi restaurées...

Améliorations


Ce code pourrait sans doutes être grandement simplifié... Et on peut imaginer quelques options, comme par exemple ne lister que les XML des baies de brassages contenant les noms des logiciels qu'on aurait choisi...

N'hésitez pas à améliorer le code présent ici ou à poster des versions alternatives!


[+]

Collaborateur(s) de cette page : olinuxx , pianolivier , utilisateur_anonyme et Tumulte .
Page dernièrement modifiée le Vendredi 06 novembre 2015 14:47:59 par olinuxx.
Le contenu de cette page est licencié sous les termes licence.

Documentation [Afficher / Cacher]

Faire un don
[Afficher / Cacher]

Connexion
[Afficher / Cacher]



Mégaphone [Afficher / Cacher]

olinuxx, 11:48, ven. 15 mars 2024: Bonjour et bienvenue à Jerry cool
calixtus06, 18:03, mer. 13 mars 2024: Bonjour et bienvenue à tanguero :-)
olinuxx, 11:01, dim. 10 mars 2024: Bonjour et bienvenue à lolo cool
bda, 16:59, sam. 09 mars 2024: Chapeau pour l'édito. Vous êtes au top les gars :-)
allany, 07:20, jeu. 07 mars 2024: Ça ne fait jamais de mal, c'est l'éditorial ! [Lien]
olinuxx, 19:52, mer. 06 mars 2024: Bonjour et bienvenue à TrkNrk cool
calixtus06, 11:17, mar. 05 mars 2024: Bonjour et bienvenue à D752 :-)
calixtus06, 18:59, lun. 04 mars 2024: Bonjour et bienvenue à Hborsa et Adjudandouille :-)
olinuxx, 18:34, jeu. 29 Feb 2024: Bonjour et bienvenue à anto45500 cool
jujudusud, 23:38, mar. 27 Feb 2024: Venez participer à la joute numéro 17 : [Lien]
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 :-)