Journal Jouer avec son groupe à distance

Posté par  . Licence CC By‑SA.
Étiquettes :
45
24
mar.
2021

Sommaire

Un certain nombre de groupes de musique ont probablement du mal à répéter en ce moment à cause des confinements successifs. Ce journal vous présente quelques applications libres conçues pour réunir les membres d'un groupe dans une salle de répète virtuelle. Faute de musicien geek dans mon groupe, je n'en ai testé aucune. Ce journal sera donc théorique.

SonoBus

J'ai découvert cette application en parcourant le forum d'Ardour, où on apprend que le développeur de SonoBus était aussi un développeur d'Ardour.

Interface de Sonobus

Principe

SonoBus est une application qui permet à chaque membre du groupe de se partager ses flux audio en temps réel. L'interface se présente comme une table de mixage, donc chaque membre peut faire sa balance et ajouter ses effets (égaliseur paramétrique, gate, compresseur).

Fonctionnalités

Les fonctionnalités sont :

  • Nombre de participants : pas de limite mais conseillé de ne pas dépasser 12
  • Type de groupe : privé (avec ou sans mot de passe) ou public
  • Flux audio : PCM ou Opus
  • Enregistrement solo, master ou multipiste
  • Métronome partageable
  • Lecteur audio interne, pour mettre une musique en fond
  • Réglages par tranche : niveau, pan, égaliseur paramétrique, compresseur et gate
  • OS supportés : Windows, MacOS, Linux, iOS et Android

Architecture

SonoBus fonctionne en pair-à-pair. Un serveur hébergé par l'équipe de développement met en relation les clients. Les membres peuvent choisir de rendre leur session privée ou public, afin que d'autres musiciens se joignent. Les flux ne sont pas chiffrés (comme dans toutes les applications présentées ici).

SonoBus peut aussi se connecter en direct à une autre instance présente sur le réseau local.

Vidéo

SonoBus existe aussi sous la forme d'un plug-in, qui lui permet de s'intégrer aux logiciels existants voire même d’apparaître comme une source sonore pour faire un stream vidéo sur OBS.

Avant de jouer

La synchronisation entre tous les clients est un point clé pour pouvoir jouer de manière confortable. Le problème est que toutes les lignes ADSL/Fibre n'ont pas la même latence ni la même gigue, ce qui peut entraîner des contretemps gênants. SonoBus règle automatiquement le tampon réseau de chaque utilisateur, et un réglage manuel est possible si ce mode ne présente pas de résultats satisfaisants.

Réglage du buffer

Liens

Sonobus
Code source client
Code source serveur

Jacktrip

Jacktrip est une organisation à but non lucratif qui propose deux applications :
- JackTrip, une application libre qui s'interface avec Jack pour échanger de l'audio à distance. Cette application peut démarrer en tant que client ou serveur.
- Virtual Studio, un service clé en main composé d'une image pour Rasberry pi et d'une appli web propriétaire.

Principe

Pour utiliser JackTrip, il faut être méthodique. Voici un exemple de configuration en client-serveur :

  1. Chaque utilisateur installe JackTrip et Jack sur son ordinateur.
  2. Tous les participants se mettent d'accord sur le format audio (non compressé) à utiliser, et configurent Jack en conséquence.
  3. L'administrateur lance autant d'instances du serveur qu'il n'y a de clients, sur son PC.
  4. L'administrateur démarre un logiciel de mixage audio (comme Ardour).
  5. Les clients se connectent au serveur via une ligne de commande.
  6. L'administrateur connecte les clients au mixeur.

Voici l'écran du serveur, avec les différentes instances et le mixeur. Ici, l'utilisateur a un mixeur hardware piloté par interface web.
JackTrip serveur

Et voici le routage associé sur QjackCtl. Heureusement, JackTrip dispose d'une fonction pour se souvenir du routage entre deux utilisations.
JackTrip Qjackctl

Fonctionnalités

Il n'y a pas de fonctionnalité à proprement parler dans JackTrip : l'application s'occupe de router des flux audio bruts sur le réseau au travers de Jack, ce qui la rend flexible. Les fonctionnalités sont portées par les logiciels utilisés autour de Jack (Audacity, Ardour…).

Architecture

Etant donné que les flux échangés sont de l'audio brut interfacés avec Jack, JackTrip peut être utilisé en mode client-serveur aussi bien qu'en mode pair-à-pair, si on imagine que chaque joueur lance son propre serveur et sa propre interface de mixage. La fondation indique les avantages et inconvénients de chaque architecture.

Quelques mots sur Virtual Studio

JackTrip est puissant mais n'est pas abordable pour le commun des mortels. La fondation a donc développé le service Virtual Studio.

Virtual Studio

VirtualStudio repose sur:
- Un Raspberry Pi faisant tourner Raspbian modifié avec jackd, jacktrip et Jamulus (voir plus bas). Il est possible d'acheter un Raspberry Pi prééquipé avec une interface audio HiFiBerry et l'OS pour 150$.
- Un service en ligne qui met en relation les Raspberry Pi des différents membres et les configure. Ce service est payant

VirtualStudio accepte deux protocoles d'échange audio : JackTrip et Jamulus. JackTrip transmet un flux audio non compressé, à l'inverse de Jamulus. Le choix se fait à la création de la salle de musique virtuelle (serveur).

Création du serveur

Liens

JackTrip
Documentation
Vieille documentation
Autre documentation
Virtual Studio
Code source

Jamulus

Jamulus est une application sous licence GPL développée par Volker Fischer.

Interface Jamulus

Principe

Comme son nom l'indique, Jamulus est orienté "jam" : tout est fait pour qu'un musicien puisse se joindre à une session existante et rencontrer d'autres musiciens.

Après avoir installé le client sur son ordinateur, le musicien s'attribue un pseudo, un lieu, un instrument et un niveau. Il ouvre ensuite une fenêtre de connexion qui liste tous les serveurs publics disponibles et la place restante.

jamulus server

Fonctionnalités

  • Messagerie instantanée
  • Nombre de participants : ne semble pas avoir de limite
  • Type de groupe : dépend du serveur (privé/public)
  • Encodage audio : Opus (3 niveaux de qualité)
  • Mode "groupe" pour régler les niveaux de plusieurs tranches en même temps
  • Réglages par tranche : pan et niveau
  • Réglages sur sa tranche : pan, niveau et reverb
  • OS supportés : Windows, MacOS, Linux

Architecture

Jamulus fonctionne sur une architecture client/serveur. Chaque client envoie son flux audio au serveur qui les synchronise, les traite et les renvoie aux clients. Comme pour Sonobus, le flux entrant passe dans un "tampon de gigue" qui attend un certain nombre de trames avant d'envoyer le flux audio vers la carte son. Les données audio sont encodées avec le codec basse latence Opus.

Il est possible d'installer son propre serveur, qui peut être public ou privé.

Archi Jamulus

Le développeur insiste sur le fait que chaque utilisateur doit écouter son instrument via le mix envoyé par le serveur (la "règle n°1") et non pas le son qui en sort directement, ce qui peut être assez déroutant. En effet et en toute logique, seul le mix provenant du serveur est synchronisé.

Liens

Jamulus
Téléchargements
Manuel
Whitepaper
Code source client/serveur

Pour résumer

Ces applications prises au hasard ont pour finalité commune de jouer de la musique en étant à plusieurs dizaines de kilomètre chacun, mais ont des approches différentes :
- Jamulus pour les musiciens qui veulent jammer
- Virtual Studio pour les musiciens cherchant une solution clé en main
- JackTrip, pour les musiciens qui recherchent la simplicité du point de vue applicative (plutôt que la simplicité d'utilisation)
- Sonobus pour les musiciens qui souhaitent répéter avec leur propre groupe

Si vous restez sur votre faim, Wikipédia recense une dizaine d'autres applications dédiées à cet usage.

  • # Avec ou sans confinement

    Posté par  (Mastodon) . Évalué à 5.

    Merci pour ce tour d'horizon !
    Je manque aussi de musiciens un peu dégourdi en informatique et/ou avec avec des connexions adsl suffisantes.
    C'est pourquoi j'avais laissé tomber au premier confinement l'année dernière mais je me dis qu'il vaut mieux se préparer d'avance et je testerais bien Sonobus.

  • # Très intéressant

    Posté par  . Évalué à 8.

    Merci pour ce tour d'horizon, je pensais que jouer à distance était inenvisageable, et je découvre plusieurs projets qui s'y attellent. Journal à convertir en dépêche àmha.
    Concernant Jacktrip, j'aime l'aspect épuré de la solution mais si tous les membres du groupe ne sont pas très, très habitués à linux, franchement c'est mort. Rien qu'installer un Jack fonctionnel avec une carte son USB c'est malheureusement souvent chaotique.

  • # retour d'experience (sous Linux & win$)

    Posté par  . Évalué à 10.

    Je fais juste un petit retour d'experience avec Jamulus!

    Durant le premier confinement, j'ai découvert Jamulus via un collègue, et j'ai décider de franchir le pas.

    Mon setup:
    - 1 x PC Laptop (~2013, c-a-d assez ancien)
    - table de mixage Beh­ringer Xenyx X1204 USB
    - micro pour mon Sax de type t.bone Ovid System CC 100
    - un casque filaire
    - Fibre chez Free (1Gbits/down, 600Mbits/up)
    - du RJ45 partout (pas de Wifi, important pour ce setup)
    - en option: un serveur en ARMv7 avec un serveur jamulus (type 4kopen, aka RPI like)
    - Distro Fedora + Copr (https://copr.fedorainfracloud.org/coprs/ycollet/linuxmao/) pour le kernel RT + Jamulus

    L'auteur de Jamulus à bien prévenu de mettre du filaire dès que possible, et effectivement, c'est necessaire sinon, trop de latence…

    Bref, une fois tout cela en place, je me suis d'abord connecté sur des serveurs de référence Jamulus (pour voir / ecouter)…. Bien choisir comme dans le screenshoot du journal un serveur "pret de chez soit", c-a-d avec latence faible. Clairement, c'est supportable jusqu'a ~50ms MAX ! au délà, on a un sentiment d'echo, et c'est utilisable mais fatigant…

    Puis, j'ai mit mon propre serveur Jamulus en marche (board ARMv7) directement sur un RJ45 de la freebox. (car un simple de switch réseau peut ramener de la latence… c'est terrible)

    Un collègue à qqles kilomètre de chez moi, (chez Free également) en ADSL, se connecte alors à mon setup. Et la commence l'itération des setups!

    • Via son PC sous Win10: latence ~100ms (à la louche)
    • Via son PC sous Linux (USB Live custom Fedora + kernel RT): ~80ms
    • Via son PC sous Linuc (USB Live Jamulus-OS aka Linux live): ~70ms

    J'ai pas trop compris pourquoi le kernel du Jamulus OS s'en sortait mieux qu'un kernel RT… bref, malgrés tout, latence trop élevé!
    => Optimisation de sa ligne Freebox ADSL (passage en low-latency)

    Un fois sa ligne freebox ADSL en low latency, même experience:

    • Via son PC sous Win10: latence ~50ms (à la louche)
    • Via son PC sous Linux (USB Live custom Fedora + kernel RT): ~35ms
    • Via son PC sous Linuc (USB Live Jamulus-OS aka Linux live): ~30ms

    Bref, tout de suite bien mieux, et très acceptable pour une heure de répétition.
    => on se prend très rapidement au jeu, et l'on "oublie" le coté distance

    J'ai ensuite tenté l'élargir l'utilisation avec des personnes qui ne se sentait pas de passer par un live USB… et donc sous windows uniquement…
    …et la, franchement, je me suis retrouvé avec pret de 30% des setup qui refusaient de fonctionner (pas d'audio, etc…).. Bref, Jamulus & Windows ne fond pas bon ménage….

  • # 10 m à la vitesse du son dans l'air, et vous?

    Posté par  . Évalué à 7.

    Confinement oblige, je me suis retrouvé dans la même situation : impossible de jouer avec le reste du groupe, et donc à la recherche d'une solution alternative. J'ai essayé Sonobus et Jamulus. Quelle que soit la solution, j'ai l'impression que c'est la connexion internet la limite. J'habite à Munich et j'ai installé un serveur Jamulus dans un datacenter à Francfort (300 km à vol d'oiseau). Je suis descendu jusqu'à un temps d'aller/retour de 30 ms. C'est un bon début, cela correspond à une distance de 10 mètres à la vitesse du son dans l'air.

    Je ping mon serveur à 20 ms, mais le premier routeur hors de chez moi est déjà à 12 ms. Je suis connecté par le câble (DOCSIS 3.0). Des travaux sont en cours dans mon quartier pour l’installation de fibres optiques. Les fournisseurs internet communiquent bien sur la bande passante, mais très rarement sur la latence. Je serais curieux de connaître le temps que cela prend pour « sortir de chez vous » en fonction du type de connexion que vous avez.

    Merci pour cette super dépêche! (<- message subliminal)

    • [^] # Re: 10 m à la vitesse du son dans l'air, et vous?

      Posté par  . Évalué à 2.

      Merci à vous, ces retours d'expérience apportent le côté pratique qui fait défaut dans ce journal.

    • [^] # Re: 10 m à la vitesse du son dans l'air, et vous?

      Posté par  (Mastodon) . Évalué à 2. Dernière modification le 26 mars 2021 à 14:40.

      Il me semblait que Jamulus effaçait complètement les pb de latence vu qu'il y a une boucle (au sens grille d'accord) de différence entre celle que tu écoutes et celle que tu joues. En gros, tant que tu as moins de 10 secondes de latence, ça devrait passer.

      Me trompé-je ?

      EDIT : je confonds avec ninjam cité ici

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: 10 m à la vitesse du son dans l'air, et vous?

        Posté par  (site web personnel, Mastodon) . Évalué à 2.

        Il me semblait que Jamulus effaçait complètement les pb de latence vu qu'il y a une boucle (au sens grille d'accord) de différence entre celle que tu écoutes et celle que tu joues. En gros, tant que tu as moins de 10 secondes de latence, ça devrait passer.

        Hmmm… Ok si le premier est la basse par exemple, pourquoi pas, ce qui implique de jouer seulement des grilles courtes (sinon c'est un peu chiant quand même). Ensuite j'imagine que ça veut dire que si 2 instruments solistes essaient de faire un solo en même temps, ils n'entendront l'autre solo qu'à la grille suivante. Alors pour eux, c'est ok s'ils ont entendu leur propre solo en temps réel bien sûr (sinon c'est pas utilisable), et ils entendent chacun le solo de l'autre, seul encore, après le leur (ça fait un peu univers parallèle, chacun entend une version différente de la session), mais tous les autres musiciens, ils se mettent donc à entendre 2 solos en même temps à la grille suivante? Et pas 2 solistes qui essaient de faire une impro à 2, mais bien 2 solistes qui se croient être seuls à improviser à ce moment là (et c'est aussi ce qu'ils entendent). Bonjour la cacophonie! 😛

        Et puis adieu les ponts, les couplets, etc. En gros la structuration pour donner un peu de changement dans un morceau. Et même les intros ou les conclusions collaboratives ne sont plus possibles.

        Enfin bon l'idée paraît amusante et même intéressante de premier abord, mais ça me semble avoir quand même pas mal de limites. Ou alors il me manque une partie du processus. 🙂

        Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]

        • [^] # Re: 10 m à la vitesse du son dans l'air, et vous?

          Posté par  (Mastodon) . Évalué à 2.

          Oui je te confirme c'est très limité, c'est juste pour du "jam".

          Il est en effet impossible de bosser un morceau "traditionnel" (couplet/refrain/solo) à plusieurs.

          En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

  • # Vidéo explicative de NPR

    Posté par  (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 09 avril 2021 à 04:39.

    Super article, merci d'avoir pris le temps de résumer les différentes solutions existantes !

    Je suis récemment tombé sur une bonne vidéo de NPR (la radio publique étasunienne) qui explique bien le problème de latence, de distance et qui parle même de JackTrip, ce que je trouve complètement fou pour une vidéo « grand public ».

    Le narrateur n'est autre que Christian McBride, un formidable bassiste de Jazz que je recommande au passage :)

    Edit : il a même fait une vidéo de démo où il utilise JackTrip.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.