Historique: Débuter - survol du système
Aperçu de cette version: 40
- «
- »
Les spécificités de la MAO Linuxienne
Les quelques rappels des pages précédentes ayant été assimilés, passons à la mise en œuvre pratique de tout ça avec notre pingouin favori. Une des difficultés vient du fait que chaque distribution utilise un peu ses propres recettes, bien que les règles de bases soient les mêmes. Aussi, il est utile de prendre connaissance de la page spécifique à votre distribution dans la (longue) liste de la page Les distributions.
Il conviendra également de bien définir quel est votre objectif : si vous souhaitez simplement brancher votre guitare pour enregistrer une ligne "vite fait" de temps en temps, inutile de vous plonger dans une installation complexe. Prenez simplement un logiciel comme audacity par exemple, et ne vous embêtez pas avec tout le reste ! Ce logiciel étant de plus disponible sous Windows, vous trouverez sur internet une foultitude de documentations, comme sur la page http://www.framasoft.net/article1039.html par exemple.
Si vous souhaitez aller plus loin, vous découvrirez alors les spécificités de la MAO linuxienne, dont l'approche est sensiblement différente. Sur les autres systèmes, l'approche MAO repose en général sur des applications regroupant un très grand nombre de fonctionnalités, souvent complétées par des plugins (VST, etc.), l'interropérabilité et l'interconnectivité entre ces différentes "usines à gaz" étant quasi inexistantes. Ces programmes n'existent pas sous Linux, les sociétés éditrices ne jugeant pas le "marché linuxien" comme étant porteur, et les différentes technologies étant jalousement protégées par des licences et brevets divers (notons que ces protections n'empêchent que très inefficacement le piratage, mais bon...).
La MAO linuxienne tourne autour du couple Jack (le serveur son temps réel) / Qjackctl (l'interface graphique pour piloter Jack). Ce duo permet de router en temps réel les flux audio et MIDI, ainsi que les informations de transport (lecture, pause, etc.) d'un programme à l'autre, mais également depuis ou vers les entrées / sorties de la carte son. Chaque application peut ainsi venir s'interconnecter aux autres. Cette approche modulaire rappelle le principe de la "boîte à outils" souvent rencontré sous Linux : des programmes faisant une chose mais le faisant bien. Vous pourrez ainsi monter votre studio "à la carte" en fonction de vos besoins : utiliser tel synthé logiciel piloté par tel séquenceur et auquel vous associerez tel effet... Vous ne trouverez donc pas de "clone de Cubase" sous Linux, les applications linuxiennes étant plus jeunes et proposant de ce fait moins de fonctionnalités. Cependant, vous pourrez mettre en place des solutions plus légères et surtout plus adaptées à vos besoins.
Si vous utilisez une distribution spécialisée MAO (option recommandée pour tous les débutants) vous n'aurez alors pas grand chose à faire car votre système sera normalement opérationnel ! Si vous utilisez une distribution généraliste, il faudra alors vérifier les points suivants pour vous lancer dans de bonnes conditions.
La mise en oeuvre - Les grandes étapes
Voici les grandes étapes qui vous permettront d'obtenir un système MAO fonctionnel. Prenez les étapes dans l'ordre, car il est inutile de s'acharner à installer Jack ou un noyau basse latence sur un système où la carte son n'est pas correctement reconnue/installée ! À chaque étape, et en cas de problème, vous regarderez page suivante quelques tests rapides qui permettront d'affiner le diagnostic avant de poster éventuellement dans le forum.
1) Reconnaissance du matériel - Pilotes des interfaces audionumériques
Pour les interfaces Audio/MIDI PCI et USB : ALSA
Cette partie sera la plus rapide : dans la plupart des cas, vous n'aurez pas grand chose à faire ! ALSA assure la prise en charge du son et du MIDI. C'est l'équivalent des drivers/pilotes sous Windows. Quelques remarques importantes :- ALSA sera dans la plupart des cas installé et configuré comme il faut dès l'installation de votre distribution. Si votre système a déjà produit du son, c'est plutôt bon signe 😉. Pour trouver le matériel supporté, regardez la page ALSA_Matos et la page choisir une carte son.
- ALSA prend en charge toutes les cartes supportées sous Linux. Les pilotes sont compilés sous forme de "modules" ce qui permet de ne charger que ceux présents sur votre système.
- ALSA est intégré au noyau (ou kernel en anglais), mais suit son développement propre : des versions plus récentes existent sur le site officiel d'ALSA. À réserver dans le cas où vous possédez une carte dont le support vient tout juste d'être intégré à ALSA.
- Le cas échéant vous aurez peut-être une ou deux choses à régler quand même :
- Démuter les sorties d'ALSA qui sont parfois "mutées" par défaut (par précaution)
- Vérifier que les modules/drivers de votre carte son sont bien chargés
- Charger le module "snd-seq-midi" utilisé par de nombreux programmes mais parfois non chargé par défaut.
- Vous trouverez les commandes pour faire ces différents réglages sur la page ALSA_Premiers_Pas
Pour les interfaces firewire : Freebob / FFADO
ALSA ne prend pas en charge les interfaces firewire. Celle-ci est assurée par un projet assez récent, freebob désormais renommé en FFADO. Cette prise en charge fait pour l'instant obligatoirement appel à jack. Étant plus délicate à installer et à configurer (du fait de son jeune âge et de son développement actif), privilégiez les distributions spécialisées MAO pour une configuration simplifiée, voir la page des distributions.2) Jack
Qjackctl
C'est sans doute le logiciel le plus important à installer, puisque tout tournera autour du couple Jack / Qjackctl.Avec la plupart des distributions, installer Qjackctl installera automatiquement Jack qui en dépend, et il ne vous restera plus qu'à le configurer correctement (voir page qjackctl pour le détail des réglages).
Pour pouvoir fonctionner, Jack a besoin de 2 conditions :
- Avoir un accès exclusif de l'interface audio (carte son). Il faut donc bien penser à couper le serveur son de votre environnement de bureau (ESD pour Gnome et aRts pour KDE). Il est possible de configurer qjackctl pour que cette opération se fasse automatiquement au démarrage de Jack).
- Disposer de droits particuliers pour fonctionner en mode "temps réel". Voir le paragraphe PAM juste dessous
PAM
Si le bouton "Realtime" ( Temps réel ) est coché dans les configurations de qjackctl (le choix par défaut dans la plupart des cas), vous devrez configurer votre système pour permettre à Jack de disposer des droits suffisants pour obtenir l'accès temps-réel.➡️ Pour se faire, veuillez lire attentivement la page applis RT.
C'est une étape cruciale pour faire de la MAO sous GNU/Linux ! 😉
3) Le noyau - Kernel (facultatif)
Le noyau Linux est naturellement performant en terme de gestion multi-tâche : chaque opération est découpée en une multitude de "processus légers", qu'un ordonnanceur (dans le noyau) organise en fonction de la priorité attribuée à l'opération. Ainsi, vous pouvez utiliser un grand nombre d'applications simultanément, celles-ci garderont un fonctionnement "fluide". En matière de Musique Assistée par Ordinateur, il peut être intéressant de prioriser davantage les processus audio pour diminuer la latence (temps de traitement). En fait cela dépendra surtout de vos besoins, la latence peut ne pas avoir d'importance pour vous, ou au contraire être un élément déterminant. Dans cette optique, on peut classer en 3 types les noyaux Linux disponibles :- Standard : le noyau livré sur la plupart des distributions généralistes. Vous n'obtiendrez pas une latence très basse "sans craquements" avec un noyau de ce type.
- Low latency ("basse latence") : livré sur certaines distributions spécialisées MAO, il offre un certain nombre d'améliorations permettant de réduire de façon significative la latence, tout en restant utilisable dans un cadre bureautique classique. De plus, il contient en général les patchs permettant le même support matériel qu'un noyau standard. Ce choix conviendra dans la plupart des cas, d'autant qu'il est en général installable très facilement via le gestionnaire de paquets de la plupart des distributions.
- noyau real-time ("temps réel") : noyau modifié en profondeur (par un patch développé par un développeur nommé Ingo Molnar) pour permettre un fonctionnement proche d'un véritable système temps réel. C'est celui qui vous permettra d'obtenir les meilleurs résultats en terme de latence, mais au prix d'une incompatibilité avec pas mal de patchs / modules du noyau (donc moins de support matériel). De plus, ce noyau peut poser des problèmes avec des applications bugguées ou peu stables (difficile de reprendre la main sur une application plantée qui dispose d'une priorité maximale !). La page Compiler un noyau 2.6RT vous expliquera comment compiler/installer manuellement un noyau de ce type.
Rappel : l'installation d'un nouveau noyau nécessitera la mise à jour de votre gestionnaire de démarrage (Grub ou Lilo), puis de redémarrer l'ordinateur.
4) Vérifier que tout fonctionne (à compléter)
Vous avez installé Jack / Qjackctl, configuré PAM, vous vous êtes dé-reconnectés (ou même vous avez redémarré suite à l'installation d'un nouveau noyau). Reste à vérifier que tout fonctionne : lancez qjackctl, et réglez une latence un peu forte pour commencer (Bouton "Setup..."). Appuyer sur start ... tout devrait fonctionner ... essayez ces quelques tests de connexions. Tout fonctionne ? Parfait, vous pouvez recommencer en baissant progressivement la latence, tant que vous n'obtenez aucun Xrun, ni aucun craquement. Sinon, regardez la page suivante 😉.En ce qui concerne la latence, c'est sûr qu'avoir la latence la plus basse possible peut être utile, ceci dit, il faut savoir que l'oreille humaine ne perçoit la latence qu'à partir de 20 à 25 ms. Descendre en deçà, pour débuter, n'est donc pas essentiel. Cela pourra devenir plus important par la suite en cas d'utilisation MAO plus poussée.
La latence annoncée dans l'onglet "Réglages" de QJackctl est seulement théorique (vous remarquerez d'ailleurs qu'elle ne varie pas si vous "branchez" votre carte son interne ou votre module externe). Pour connaître la latence réelle mesurée par Jack, rendez-vous dans l'onglet "Statut" de QJackctl au bout de la ligne intitulée "Délai d'ordonnancement maximal". Pour les utilisateurs d'Ardour, elle est aussi indiquée sur la barre tout en haut du séquenceur.