{{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...**