Chargement...
 
Skip to main content

Historique: Net Jack

Aperçu de cette version: 22

Netjack

Cette page représente les expériences communes obtenues entre dharanamrs et Mysth-R à la recherche d'une simple synchronisation de deux séquenceurs 😊

Introduction

  • Netjack permet de relier deux ou plusieurs ordinateurs en audio et midi par le réseau, et de synchroniser le transport jack.
  • Netjack permet de faire de la musique à deux ou plusieurs reliés par le réseau!

Netjack est une fonctionalité de jackd, intégrée depuis la version 0.116. Elle permet d'utiliser un montage serveur-client entre deux daemons jack présents sur deux ordinateurs reliés par le réseau. L'ordinateur distant client devient une source d'entrée/sortie Audio, MIDI et transport sur l'ordinateur serveur. Netjack utilise le protocole UDP.
La mise en place sera plus conviviale une fois que la version 2.0 de jackd sera disponible, mais il fonctionne déjà très bien, les auteurs de cette page l'ont testé dans différentes configurations.
Une documentation préliminaire officielle existe à cette url.

Guide de démarrage rapide (style mémo, regardez plus bas si vous essayez la première fois)

Connexion ethernet locale:

-Branchez les deux machines sur un switch ethernet
-Attribuez des adresses ip aux deux machines
-Ouvrez un port UDP (exemple 5060) sur les deux machines (alternative: desactiver le pare-feu)

Sur le serveur:
-Lancez qjackctl habituellement
-Tapez
jack_netsource -r5060 -p5060 -h IPdelautremachine

Sur le client:
-Tapez
jackd -R -l 5060 -d net

-Lancez qjackctl habituellement

Ensuite
-Dans qjackctl du serveur connectez netsource vers system out
-Dans qjackctl du client connectez tout normalement

Connexion par internet ADSL (raisonnable à partir de DSL 4Mbit/s):

-Determinez les deux adresses ip extérieures
-Forwardez le port choisi et desactiver un filtre icmp éventuel sur les deux routeurs

Sur le serveur:
-Lancez qjackctl habituellement
-Tapez
jack_netsource -r 5060 -p 5060 -c qualité_comp -l latence -h IPdelautremachine


Sur le client:
-Tapez
jackd -R -l 5060 -d net

-Tapez
alsa_out -d hw:x -f 100000


Ensuite
-Dans qjackctl du client connectez à alsa_out tout ce que vous souhaitez entendre localement

Principe

Ces deux illustrations montrent les possibilités et utilisations typiques de Netjack.
Chaque machine fait tourner un daemon jack. Sur le serveur, le "backend" est alsa ou freebob, c'est à dire, il tournera comme d'habitude avec l'interface audio présent. Sur le client, le backend est 'net', c'est à dire jack n'utilise pas de carte son, mais le réseau pour envoyer les données. Ces données sont acheminées par jack_netsource sur le serveur. Jack_netsource produit un port entrée/sortie supplémentaire dans jackd du serveur. L'intégralité de l'information audio n'est convertie qu'à la carte son du serveur. Le client n'a même pas besoin de carte son (!) en cas d'utilisation locale. En revanche si un monitoring sur la machine client est nécessaire (si on n'est pas dans la même pièce), les utilitaires alsa_in/out sont là pour ça.

Image


Si les deux ordinateurs se trouvent dans la même pièce reliés par éthernet (100Mbit/s en duplex!), aucune compression n'est nécessaire même pour plusieurs canaux audio duplex, et l'ordinateur client envoit ses données audio et MIDI directement par ethernet à l'autre serveur jack.

Image

Dans le cas de la connexion par intermédiaire d'un routeur, un codec appellé CELT assure la compression des données audio afin d'être compatible avec le débit disponible. Il faut assurer que les ports correspondants sont forwardés vers les ordinateurs et que la bande passante du réseau dans les deux directions upload/download est suffisante (de l'ordre de 50kByte/s en upload suffisent pour une qualité raisonnable). Pour assurer une entrée/sortie audio physique pour le client, on se sert d'alsa_in et alsa_out.

Prérequis dans tous les cas

  • La version de jackd doit être au moins 0.116.1
  • La version du codec CELT (qui permet la compression audio avec une latence basse à travers le réseau) doit etre la meme version sur les 2 ordinateurs.
  • Une connexion ip active sur chaque machine
  • Un port UDP ouvert (le numéro peut être choisi) sur chaque machine
  • Pas de filtrage icmp
  • Un bon test est de s'envoyer des requetes
    ping IPdelamachine
    mutuellement

➡️ L'adresse IP est locale si la connexion n'est pas à travers l'Internet. La commande ifconfig permet de l'obtenir. Si la connexion est à travers l'internet il faut obtenir l'adresse IP externe attribuée en général dynamiquement par le fournisseur. Elle se trouve sur la page de configuration du routeur.

Mise en route

Il faut décider quelle machine sera serveur et quelle machine sera client. Comme montré sur les figures, l'audio est envoyé par jack uniquement sur la carte son du serveur. En général, le serveur sera donc la machine avec la meilleure carte son. Le client n'a même pas besoin de carte son (!) en cas d'utilisation locale. En revanche si un monitoring sur la machine client est nécessaire (si on n'est pas dans la même pièce), les utilitaires alsa_in/out sont là pour ça.

Connexion par une liaison ethernet dans un réseau local: cable croisé ou switch

Sur la machine serveur

-Lancez qjackctl habituellement, puis dans une fenêtre terminal, tapez
jack_netsource -p 5060 -h IPdelautremachine

IPdelautremachine est l'adresse ip de l'ordinateur client. On peut la renseigner en tapant ifconfig en tant que root.

Sur la machine client

-Dans un terminal, tapez
jackd -R -l 5060 -d net

-Lancez qjackctl habituellement
-Connectez tout habituellement dans qjackctl

Vous pouvez maintenant entendre les sons produits sur le client sur la carte audio du serveur. Les transports jack sont synchronisés.

Pour entendre le son du client sur sa carte son interne également, tapez
alsa_out -d hw:0 -f 100000

Vous verrez une sortie supplémentaire apparaitre dans qjackctl à laquelle vous devez aussi connecter les sources Audio.
(Image à ajouter: alsa_out dans qjackctl)

Les connexions à faire dans Qjackctl
Sur le serveur vous verrez
  • une entrée/sortie audio supplémentaire apparaître dans qjackctl onglet AUDIO: netsource
  • une entrée/sortie MIDI apparaître dans qjackctl onglet MIDI (non ALSA): netsource

L'image suivante montre les entrées netsource dans qjackctl. Toutes les sources connectées à netsource passeront par le réseau.
Image
Connectez netsource à la sortie system et toutes vos sources audio du serveur à la sortie netsource pour les acheminer du ou vers le client.

Pour les connexions MIDI ALSA:
Pour connecter des applications MIDI ALSA, on peut se servir de l'utilitaire a2jmidid. Pour envoyer des données MIDI de l'interface UA-25 vers le réseau, il faut connecter les entrées/sorties 'netsource' à 'a2jmidid Through', et dans l'onglet ALSA on connecte l'UA-25 à 'MIDI Through' également'. C'est montré dans l'image suivante:

Onglet MIDI
Image
Onglet ALSA
Image


Connexion par internet

En plus des points précédents, il faut assurer le suivant sur les deux postes à relier:

  • Le port UDP choisi doit être "forwardé" ("ouvert") du monde extérieur vers l'ordinateur local. Ceci peut nécessiter des changements sur le pare-feu de votre routeur et votre ordinateur. C'est le même principe que pour ouvrir les ports pour amule. Par exemple si vous êtes en LowId dans amule, c'est que vos ports sont mal ouvert. Dans un tel cas, netjack ne fonctionnera pas.
  • Les deux ordinateurs doivent répondre à une requête 'ping' provenant d'internet (pas de filtre icmp)
  • jack doit être compilé avec le codec celt (de préférence celt>0.5), ce qui est le cas avec les paquets des distributions
  • il est important de disposer des utilitaires alsa_in et alsa_out. Ceci est le cas avec les paquets des distributions.

Sur la machine serveur

-Lancez qjackctl habituellement
-Dans une fenêtre terminal, tapez
jack_netsource -h IPdelautremachine -p portchoisi -c compr -l lat

-IPdelautremachine est l'adresse ip de la machine distante. Ce n'est pas l'adresse locale commençant par 192.168., mais l'adresse extérieure. On peut la renseigner en se connectant sur le routeur ADSL.
-portchoisi peut être 5060 par exemple, celui-ci est utilisé par la téléphonie sip également
-compr: un chiffre déterminant la qualité Audio et donc le débit nécessaire. Pour internet, compr est entre 16 et 120. Plus bas est compr, plus bas sera le débit. Si compr=100, on aura besoin d'environ 80 kByte/s en up- et download pour 2 canaux audio (performance d'une ligne ADSL 8Méga).
-lat: la latence attendue en générale entre 20 et 100 (unités non connues)

➡️la commande jack_netsource --help donne une liste des autres options

Sur la machine client

-Tapez
jackd -R -l 5060 -d net

-Lancez qjackctl habituellement
-Connectez tout habituellement

Pour entendre le son du client sur sa carte son interne également, tapez
alsa_out -d hw:x -f 100000

x étant l'identification de la carte son.

Les connexions dans qjackctl seront les même pour internet que celles montrées plus haut pour l'utilisation du réseau local.


Historique

Avancé
Information Version
Sat 25 Jul 2020 15:08 olinuxx 83
Afficher
Sat 25 Jul 2020 15:06 olinuxx + coquille 82
Afficher
Sat 25 Jul 2020 15:04 olinuxx + cohérence wiki + coquilles + ponctuations + userlinks + drapeau EN 81
Afficher
Sun 03 Jan 2016 11:36 pinkiewinkie Actualisation liens pour netjack 80
Afficher
Tue 17 Nov 2015 22:29 daeavelwyn précision sur la machine ou se fait le patch 79
Afficher
Fri 05 Sep 2014 16:41 olinuxx Recherche et remplacement en masse 78
Afficher
Fri 05 Sep 2014 16:41 olinuxx Recherche et remplacement en masse 77
Afficher
Tue 02 Sep 2014 21:47 olinuxx Recherche et remplacement en masse 76
Afficher
Tue 02 Sep 2014 21:47 olinuxx Recherche et remplacement en masse 75
Afficher
Sat 22 Feb 2014 23:37 romain_bar Légère mise à jour 74
Afficher
Wed 12 Feb 2014 21:37 romain_bar Dossier JACK 73
Afficher
Tue 04 Feb 2014 17:24 olinuxx + 1 lien + simplification d'un lien forum 72
Afficher
Mon 04 Nov 2013 17:11 anonymous wiki_up conversion 71
Afficher
Wed 11 Sep 2013 16:55 daeavelwyn 70
Afficher
Wed 11 Sep 2013 03:20 olinuxx petites corrections 69
Afficher
Tue 10 Sep 2013 22:15 daeavelwyn 68
Afficher
Wed 22 Aug 2012 15:42 pianolivier +box dynamique 67
Afficher
Fri 29 Jun 2012 13:27 olinuxx +3 alias 66
Afficher
Tue 13 Mar 2012 20:41 zicstef 65
Afficher
Wed 08 Jun 2011 17:57 steph23 Unité renseignée 64
Afficher
Wed 01 Dec 2010 21:34 olinuxx logiciels similaires 63
Afficher
Sat 06 Nov 2010 20:59 olinuxx + ((Jack-Transport)) 62
Afficher
Tue 23 Feb 2010 10:35 yanshee 61
Afficher
Tue 23 Feb 2010 10:34 yanshee 60
Afficher
Fri 18 Dec 2009 02:40 wisemusic Ajout d'un lien pour tester les débits montant et ascendant d'une connexion internet 59
Afficher
Sat 21 Nov 2009 02:29 olinuxx mise en forme 58
Afficher
Thu 29 Oct 2009 01:34 olinuxx ajout info 24
Afficher
Wed 06 mai 2009 20:18 dharanamrs corrections ordre des options -d net (merci ORL_AMMD) 23
Afficher
Sat 31 Jan 2009 19:23 dharanamrs Modif Titre 22
Afficher
Wed 28 Jan 2009 12:26 dharanamrs petite révision structure 21
Afficher
Wed 28 Jan 2009 12:08 dharanamrs ajout screenshots Qjackctl 20
Afficher
Wed 28 Jan 2009 12:03 dharanamrs ajout screenshots Qjackctl 19
Afficher
Wed 28 Jan 2009 07:05 dharanamrs lien ifconfig 18
Afficher