{{tag> livecoding troop foxdot em}} ====== Configuration d'un serveur Troop sur debian 10 ====== Page créée le 28 septembre 2021 / Projet en cours But : avoir un ordinateur capable de lancer rapidement un serveur troop pour livecoder de la musique à plusieurs sans passer une plombe à régler des petits bidules techniques... \\ En somme : une machine avec un bouton on-off et qui affiche l'adresse IP, la version de troop nécessaire en gros caractères! Pour se faire, un [[materiel:inventaire_client_leger_hp_t510#cl21meridion|client léger M73]] est utilisé (CL21 Meridion) ===== Configuration ===== Système : Debian 10.9 Buster avec LXDE **Réglage des polices** : * en commande ''lxappearance'', puis régler la police en 8 * dans //menu/préférences/openbox configuration manager// : passer les tailles de police en 8 * cliquer droit sur le bureau / préférences du bureau : changer la taille de police en 8 **Configuration du dongle wifi ( Realtek RTL8188CUS)** ... Ajouter les paquets non-free dans ''/etc/apt/sources.list'' deb http://deb.debian.org/debian/ buster main contrib non-free deb-src http://deb.debian.org/debian/ buster main contrib non-free deb http://security.debian.org/debian-security buster/updates main contrib non-free deb-src http://security.debian.org/debian-security buster/updates main contrib non-free Suivant le modèle de clé wifi il peut être nécessaire d'installer des paquets. Pour identifier un firmware manquant, dans un terminal taper sudo dmesg |grep firm Puis rechercher dans votre moteur de recherche préféré le paquet qui fourni le firmware désiré, par exemple pour une clé Ralink RT5370 identifiée 148f:5370, le firmware rt2870.bin est fourni par le paquet firmware-ralink Puis en commande su # passer en root apt-get update # mise à jour de la liste des paquets apt install firmware-realtek # installer les drivers wifi Le module est reconnu mais n'apparait pas dans wicd, pour qu'il apparaisse il a fallu récupérer le nom de l'interface wifi avec ''ip ad'' et l'écrire dans les préférences de wicd (parametres généraux / interfaces réseau / interface sans fil), puis actualiser. Il peut être nécessaire de redémarrer la machine. \\ **Installation de quelques paquets logiciels** su # passer en root apt-get update # mise à jour de la liste des paquets apt install htop terminator git # outils de base **Installation pip** (python2 et python3 sont pré-installés sur Debian 10) [[https://computingforgeeks.com/how-to-install-pip-2-pip-3-on-debian/|source]] su apt install python-pip # installer pip2, confirmer avec pip --version ou pip2 --version apt install python3-venv python3-pip # installer pip3, confirmer avec pip3 --version apt install python3-tk # pour tkinter pip3 install tk **Installation supercollider** su apt install supercollider **Installer foxdot** su pip3 install FoxDot exit Démarrer supercollider (dans LXDE : menu //démarrer / son et vidéo / supercollider IDE// ) Dans l'éditeur de supercollider, écrire la ligne suivante, puis CTRL+ENTER pour l'activer Quarks.install("FoxDot") Puis dans le menu //Language//, choisir //Recompile class library// (Je n'installe pas les sc3-plugins, nécessaires pour certains effets : https://github.com/supercollider/sc3-plugins) Ensuite on démarre avec FoxDot.start dans l'IDE de supercollider (et CTRL+ENTER), ça c'est si tout marche bien, dans le cas présent, ça n'a pas marché aussi vite (cf problème avec jackd ci-dessous) **Installer troop** \\ Récupérer depuis github : https://github.com/Qirky/Troop \\ Décompresser, puis pour démarrer python3 /home/xor/troop-0.10.3/run-server.py Eventuellement python3 /home/xor/troop-0.10.3/run-client.py ==== Problèmes rencontrés et résolus ==== === Problème avec jackd === Lancer FoxDot.start déclenchait le message suivant : could not initialize audio. Server 'localhost' exited with exit code 0. Du à un problème avec jackd qui n'arrivait pas à se lancer ...\\ En fait la carte audio n'est pas hw:0 (on peut s'en rendre compte avec le résultat de ''aplay -l'' ) Il faut lancer jackd au préalable, sur la bonne carte audio hardware ( [[https://github.com/jackaudio/jack2/issues/312|source]] ) pulseaudio -k # stopper pulseaudio jackd -rd alsa -d hw:1 # lancer jackd sur la bonne carte audio! ===== Démarrage ===== Procédure pour démarrer FoxDot et Troop **(à retester)** pulseaudio -k # stopper pulseaudio, peut-être superflu jackd -rd alsa -d hw:1 # lancer jackd sur la bonne carte audio! # dans l'IDE supercollider : # FoxDot.start suivi de CTRL + ENTER python3 -m FoxDot & # python3 /home/xor/troop-0.10.3/run-server.py # dans un autre terminal python3 /home/xor/troop-0.10.3/run-client.py & ===== Démarrage automatique ===== **TO BE CONTINUED...** démarrer tout, récupérer l'adresse IP, créer un fichier html à la volée et l'afficher avec xdg-open Le script ressemble à ça : (et fonctionne!) pulseaudio -k # arrêter pulseaudio jackd -rd alsa -d hw:1 & # démarrer jack sur la carte audio adaptée à cet ordi sleep 2 sclang /home/xor/troop-0.10.3/start_foxdot.scd & # démarrer le serveur supercollider et foxdot sleep 6 python3 -m FoxDot & # démarrer un IDE foxdot sleep 4 python3 /home/xor/troop-0.10.3/run-server.py --port=57890 --password="ok" & # serveur troop sleep 3 variable=`hostname -I` # récupérer l'adresse IP dans une variable echo $variable # créer un fichier HTML avec les infos du serveur echo "

Pour se connecter au serveur Troop :

IP : $variable

Port : 57890

password : ok

" > troop.html sleep 2 xdg-open ./troop.html # afficher le fichier (le navigateur sera choisi automatiquement) sleep 2 python3 /home/xor/troop-0.10.3/run-client.py & # ouvrir un client troop echo "tout est lancé"
C'est un peu cracra et il reste à le lancer au démarrage, peut être configurer le client automatiquement aussi **TO BE CONTINUED...**