Chargement...
 
Skip to main content

Historique: jackdmp

Aperçu de cette version: 72

Le Jack nouveau arrive .... !



Informations

Site web officiel : http://www.grame.fr/~letz/jackdmp.html.
Version actuelle : No value assigned.
Support : ALSA, FFADO.
Développeur principal / mainteneur : Stéphane LETZ
Liste des développeurs : Dmitry Baikov, Steven Chamberlain, Thom Johansen, Thibault LeMeur, Pieter Palmers, Tom Szilagyi, Andrzej Szombierski, Kjetil S.Matheussen, Pieter Palmers, Tim Blechmann, Marc-Olivier Barre, Nedko Arnaudov, Fernando Lopez-Lezcano, Romain Moret, Florian Faber, Michael Voigt, Torben Hohn, Paul Davis.

Présentation


Jack2 est une nouvelle implémentation, en langage C++, du serveur Jack.
Il est fait pour les machines multi-processeurs et est disponible pour GNU/Linux, OSX, Windows et Solaris.
Jack2 est issu d'une branche de développement anciennement nommée JackdMP (Jack Daemon Multi Processeur), et il est maintenant dans la branche officielle de Jack.


Avec l'arrivée des machines multi-processeurs se pose la question de l'utilisation optimale des ressources de la machine, en particulier lorsque plusieurs applications audio fonctionnent simultanément.
Les dépendances de données entre les applications, liées à la topologie de leur connections, imposent un ordre dans l'activation des clients pour un cycle audio donné.
La version actuelle du serveur Jack effectue systématiquement une exécution séquentielle de tous les clients jack, ceci même si du parallélisme existe potentiellement dans le graphe des applications jack.

Par exemple si deux applications A et B sont connectées aux entrées audio, et envoient leurs flux de sortie sur une 3° application C, le serveur Jack effectuera la séquence d'activation "A,B,C" (ou peut être "B,A,C" en fonction de l'algorithme de tri interne). Ce graphe est un cas typique de modèle "parallélisable" sur une machine multiprocesseur: puisque A et B dépendent des mêmes entrées, ils peuvent être activés simultanément sur 2 processeurs dès que les entrées sont disponibles.

Le serveur Jack2 propose un modèle d'activation différent dit "flot-de données" qui garantit une activation au plus tôt des clients :
en gros un client est activé dès que l'ensemble de ses sources a été produit par les clients antérieurs dans le graphe.
Ce modèle étant une généralisation du modèle d'activation précédent, il fonctionne donc aussi sur une machine mono-processeur.

Jack2 est par ailleurs une nouvelle implémentation C++ du serveur Jack.
Elle corrige ou améliore plusieurs limitations de la version précédente :

  • par l'utilisation d'un modèle d'accès "lock-free" du graphe des applications, celui-ci peut être modifié (par exemple lorsque des nouveaux clients sont lancés, ou des nouvelles connections réalisées) sans interrompre le calcul du flux audio. Ceci évite les "clics" audio.

  • par la mise en place de deux modèles de synchronisation pour le calcul d'un cycle complet du graphe: le mode "synchrone", similaire au modèle précédent de Jack ou le serveur "attend" le fin de l'activation de tous les clients pour produire les buffers de sorties, et le mode "asynchrone" ou le serveur utilise les buffers de sortie produits au cycle précédent sans avoir besoin de se synchroniser sur la fin de l'activation du graphe au cycle courant. Le mode synchrone est plus sensible en cas de déficience d'un client (en gros la non-activation d'un client bloque l'ensemble du calcul du graphe) alors que le mode asynchrone est plus robuste (une partie du graphe peut continuer à fonctionner) mais a le désavantage d'ajouter un buffer de latence supplémentaire.

Utiliser Jack2 au lieu de Jack1 est particulièrement intéressant lorsque la configuration des clients permet une activation en parallèle et peut amener une diminution de moitié de l'occupation CPU sur un machine avec 2 processeurs dans les cas les plus favorables (et plus sur des machines multi-coeurs en fonction de la topologie du graphe des applications). D'autre part, l'activation des clients et les connections ne provoquent plus de clics.

Notes importantes :
  • L'utilisation de jack2 est donc intéressante y compris sur les machines mono-processeur, il est d'ailleurs utilisé par défaut dans certaines distributions audio (Studio To Go 2.0 par exemple). En effet, Jack2' supprime par exemple les clics audio lors des connections ou lancement d'applications.

  • À partir de la version 0.62, le driver freebob a été ajouté.

Installation

[+]

Utilisation


Lancement via QJackCtl


jack2 se lance également avec la commande jackd.
Il y a des options supplémentaires (notamment l'option -S si l'on souhaite travailler en mode "synchrone"), mais les options spécifiées dans QJackCtl fonctionnent.

Et voila, ça devrait marcher !
Et même courir 😉

Lancement en mode console


Les options de jackd sont disponibles, par défaut le serveur est lancé en mode asynchrone:
Copy to clipboard
jackd -d alsa -d hw:1


Pour lancer le serveur en mode synchrone, il faut utiliser le paramètre -S :
Copy to clipboard
jackd -S -d alsa -d hw:1



Conclusion

Jack2 est aujourd'hui absolument à essayer, dans l'expérience de plusieurs membres LinuxMAO, la stabilité et la performance sont sensiblement meilleures que celles de jack1.

Changelog

[+]

Commentaires et liens


il existe un patch pour rendre Jack2 compatible D-Bus, voir la page jackdbus.



Historique

Avancé
Information Version
Mercredi 20 septembre 2017 05:46 r1 changement site officiel 85
Afficher
Mercredi 20 septembre 2017 05:44 r1 jackdmp -> jack2 variables 84
Afficher
Vendredi 06 novembre 2015 14:39 olinuxx Recherche et remplacement en masse 83
Afficher
Vendredi 05 septembre 2014 15:14 olinuxx mise en cohérence des variables : version logiciel + date 82
Afficher
Vendredi 05 septembre 2014 08:53 olinuxx Recherche et remplacement en masse 81
Afficher
Jeudi 04 septembre 2014 14:12 olinuxx Recherche et remplacement en masse 80
Afficher
Jeudi 04 septembre 2014 08:53 olinuxx Recherche et remplacement en masse 79
Afficher
Mardi 18 février 2014 00:17 romain_bar Renvoi vers la page de JACK 78
Afficher
Vendredi 05 avril 2013 18:15 xzu {CODE(colors="jinja2")} 77
Afficher
Dimanche 03 mars 2013 19:58 pianolivier -ancien fil d'ariane 76
Afficher
Vendredi 12 octobre 2012 18:45 Dominique 75
Afficher
Dimanche 01 avril 2012 17:19 pianolivier +fil d'ariane 74
Afficher
Dimanche 26 février 2012 12:44 pianolivier changelog 73
Afficher
Lundi 31 octobre 2011 09:49 pianolivier +support ffado 72
Afficher
Mercredi 19 octobre 2011 20:31 pianolivier mise en page 71
Afficher
Mercredi 19 octobre 2011 20:28 pianolivier +lien jackdbus 70
Afficher
Samedi 17 septembre 2011 08:50 olinuxx +lien sur Tom Szilagyi et amelioration lien sur nedko 69
Afficher
Lundi 13 juin 2011 14:51 pianolivier + alias(jack2) 68
Afficher
Dimanche 15 mai 2011 23:34 pianolivier changelog 67
Afficher
Dimanche 15 mai 2011 23:34 pianolivier changelog 66
Afficher
Mardi 28 décembre 2010 22:31 olinuxx min -> maj 65
Afficher
Mardi 28 décembre 2010 21:51 pianolivier ajout de mention(s) de compatibilité dans § Info 64
Afficher
Mardi 23 novembre 2010 00:25 olinuxx 63
Afficher
Mardi 23 novembre 2010 00:22 olinuxx forum adéquat 62
Afficher
Mercredi 01 septembre 2010 23:59 pianolivier ajout section Changelog 61
Afficher
Mardi 31 août 2010 13:20 olinuxx 60
Afficher
Lundi 30 août 2010 14:46 piep remplacement des !! par === 59
Afficher
Lundi 30 août 2010 14:13 piep ajout de Mandriva 58
Afficher
Vendredi 07 mai 2010 18:56 pianolivier lien tutoriel 57
Afficher
Samedi 13 mars 2010 16:04 pianolivier installation sous gentoo 56
Afficher
Samedi 06 février 2010 14:11 pianolivier correction d'une erreur de code (jackd -R non supporté pour jack2) 55
Afficher
Samedi 06 février 2010 09:53 jy_moustache procédure d'install enrichie 54
Afficher
Samedi 06 février 2010 09:49 jy_moustache correction version en * dans procédure d'install 53
Afficher
Samedi 06 février 2010 09:48 jy_moustache correction version et ajout commandes install 52
Afficher