Pourquoi Ubuntu Studio

ardour1.png

Il y a plusieurs suites Linux dédiées à la MAO. Mais, à vrai dire, je n'ai pas cherché à les essayer. Car Ubuntu Studio avait deux avantages pour moi :  un, c'est, dit-on, l'une des plus simples à mettre en oeuvre ; deux, elle est fondée sur Ubuntu, une déclinaison de la distribution Debian, celle que j'utilise au quotidien, avec laquelle j'écris ces lignes.

Je vous incite néanmoins à découvrir les différentes suites en vous rendant sur l'excellent site francophone linuxMAO, ici : https://www.linuxmao.org/tikiwiki/tiki-index.php?page=accueil

Ce site est une mine d'or, pas seulement pour la découverte. Il m'a, par exemple, été utile pour affiner la configuration du système. Une tâche particulièrement délicate.

De plus, l'objectif de ce post n'est pas d'entrer dans le détail d'une distribution Linux.

Hardware : les pré-requis

Il faut le savoir : on ne peut faire de la MAO sur Linux qu'avec du matériel qui sera reconnu. Les choix sont donc limités et les choses pas aussi simples qu'avec Windows. Une chance : en matière de cartes audio, plusieurs marques de bonne facture fonctionnent très bien avec Linux. Figurent parmi elles RME, Echo, Terratec, Roland et M-Audio. Vous pouvez vérifier la compatibilité de votre carte sur le site d'Alsa, ici : https://www.alsa-project.org/main/index.php/Matrix:Main

Quant aux interfaces firewire, elles sont gérées par une autre équipe de développeurs, le projet FFADO (Free Firewire Audio Drivers), ici : https://www.ffado.org/

Je ne suis d'aucune aide pour les cartes firewire, car pour ma part, je possède une carte PCI avec rack externe M-Audio Delta 44 (4in/4out).

Concernant les interfaces MIDI (Musical Instrument Digital Interface), il faut là aussi vérifier que la vôtre sera reconnue. Les Roland-Edirol comme les M-Audio Midiman fonctionnent très bien sous linux. Mais il n'y pas qu'elles. Pour ma part, je possède une Roland UM-4 (SuperMPU64) reconnue d'office, alors qu'elle ne l'est pas sous Windows Vista et Win 7.

=> Un lien utile : https://www.linuxmao.org/tikiwiki/tiki-index.php?page=choisir%20une%20carte%20son

Installation

D'abord, on se rend sur le site d'ubuntu studio pour télécharger le fichier ISO de la distribution, ici : https://cdimage.ubuntu.com/ubuntustudio/releases/10.04/release
Choisir la version DVD qui convient à votre machine  : i386 pour les PC à base de processeur Intel 32bits AMD64 pour les processeurs 64bits. Certains liens finissent par zsync jigdo... N'y faites pas attention, ce sont des liens pour télécharger le DVD via des utilitaires particuliers. Enfin, vous verrez en haut de la liste des fichiers md5sum ou sha1sum, ils sont destinés à vérifier l'intégrité de l'image ISO téléchargée,avant de la graver.Il faut aussi télécharger le MD5SUMS et le placer dans le même dossier que l'image ISO.

=> Usage sur Linux : ouvrir un terminal, taper "cd" puis le chemin/du_dossier/où_se_trouve/l'image_ISO et le fichier md5sums. Taper md5sum -c MD5SUMS (nota : si le fichier md5sum est en minuscules, le taper en minuscules)

=> Usage sur Windows, la commande semble être à peu près la même, mais il faut installer préalablement le soft Md5sum.exe. Une fois ce soft installé, taper dans le prompt DOS : MD5SUM -cv MD5SUMS

Attendre un peu, si vous obtenez OK, c'est tout bon, vous pouvez graver le DVD. A défaut, télécharger de nouveau l'image ISO.

Supposons que tout baigne, insérer le DVD Ubuntu Studio dans l'ordi, redémarrer la machine. Au lancement, presser Del ou Suppr pour accéder au bios. Dans les options, choisissez de démarrer la bécane sur le CD. Sauvegardez, redémarrez. Suivez ensuite les instructions qui s'affichent à l'écran. Ubuntu va créer une partition pour lui, qui ne détruira pas votre install Windows si vous en avez une. Au moment de choisir le type de système de fichier, sélectionnez ext4 ou ext3. Le premier a un gros atout à mes yeux : il limite la fragmentation du disque dur, important en audio. Autre options importantes : installer la suite audio et sélectionnez l'option RT ou Realtime, indispensable pour réduire la latence en audio. A l'invite, choisissez un mot de passe root (root veut dire "administrateur de l'ordinateur") que vous noterez soigneusement et rangerez en lieu sûr, au cas où. Faites en sorte que ce mot de passe ne soit pas simple à trouver. Mélangez chiffres, lettres, minuscules et capitales. Quand tout est installé, redémarrez. A la relance, pressez Del ou Suppr pour accéder de nouveau au bios, afin de choisir un démarrage de l'ordi, non plus sur le CD, mais sur le disque dur. Sauvegardez, puis quittez. Redémarrage. Normalement, vous devez vous retrouver face à un bel écran de démarrage sous Ubuntu studio.

Avant toute chose, direction là : https://help.ubuntu.com/community/UbuntuStudio

Cela permet de découvrir le monde dans lequel vous entrez. Mon propos ne sera toutefois pas de vous apprendre les commandes sous Linux : vous serez de toute façon bien obliger de vous y mettre, à votre rythme, selon vos envies et vos besoins. Sachez néanmoins que le terminal (autrement dit la console) sera souvent votre ami : c'est là que vous vous familiariserez avec les fameuses commandes Linux. En outre, vous serez amenés à utiliser votre mot de passe assez souvent, pour opérer des changements dans le système. Ca vous changera de Windows.

Pour vous aider à découvrir comment fonctionne votre système, c'est ici : https://formation-debian.via.ecp.fr/

Le site d'Alexis de Lattre est en effet une bible pour Debian et toute distribution dérivée de Debian. Il en décortique, de manière très claire, le fonctionnement. Il y a cependant quelques petites différences entre Ubuntu et Debian, mais elles sont minimes. Je vous conseille de télécharger son cours magistral en fichier pdf, que vous placerez sur le bureau.

Les différence avec Windows

Il y en a beaucoup, mais l'une d'elles est suffisamment pratique pour que nous l'évoquions ici : fini le temps où vous étiez obligés d'acquérir un soft pour ouvrir et travailler comme bon vous semble un fichier ISO par exemple. Sous Linux, vous trouverez tous les utilitaires nécessaires à la manipulation des fichiers, et presque tous les softs qui peuvent vous être utiles, notamment pour travailler la musique. Une limitation : par défaut, les softs et formats non libres de droit ne sont pas, dans la plupart des cas, installés d'office avec votre distribution. Il est donc souvent nécessaire de les installer sous forme d'utilitaires non-free capables de les décoder. Les codecs Windows sont dans ce cas. Mais pas qu'eux.

C'est donc pour moi le moment de vous dire comment les télécharger  : en installant sur votre système tout neuf de nouveaux dépôts. Vous me direz : c'est quoi, des dépôts ? Bonne question que je vous sais gré d'avoir posée. Et c'est là que nous commencerons à entrer dans le vif du sujet. Alors, première règle : à partir d'ici, on ne parlera plus de softs, mais de paquets

Les dépôts à installer

Pour updater ou upgrader votre système, vous avez le choix : soit, vous vous contentez des seules mises à jour officielles de votre distribution, soit vous souhaitez profiter des paquets mis à disposition par d'autres "packageurs". Comme nous sommes dans l'univers du libre, tout cela se configure, via dans le cas de notre distribution un fichier : le sources.list qui se trouve en suivant ce chemin : /etc/apt/sources.list

Intérêt d'utiliser des dépôts tiers : on peut installer des applis et des utilitaires non libres, mais aussi des paquets souvent plus récents que ceux proposés par les dépôts officiels de sa distribution.

Pour ce qui nous concerne, il est intéressant d'aller puiser dans d'autres dépôts bien fournis pour l'audio : ceux de Medibuntu, notamment.

terminal_depots.png

C'est le moment d'ouvrir un terminal (voir à quoi ça ressemble ci-dessus). Je vous suggère de mettre un raccourci de votre terminal sur le bureau. Allez avec la souris dans le menu Applications → Accessoires → Terminal ; clic droit sur la souris, mettre en raccourci sur le bureau. On double-clique sur l'icone du terminal, il s'ouvre. Vous pourrez du coup entamer les opérations.  Voici la méthode fournies par le site Ubuntu : https://doc.ubuntu-fr.org/medibuntu

Je la reprends ici. Donc, pour activer le dépôt Medibuntu, passer en root, en tapant sudo -s, puis votre mot de passe. Une fois passé en mode administrateur, tapez alors ou copiez-collez dans le terminal ce qui suit :

wget https://www.medibuntu.org/sources.list.d/`lsb_release -cs`.list --output-document=/etc/apt/sources.list.d/medibuntu.list

Validez. Après le chargement des nouveaux dépôts, retour à l'invite de commande. Tapez alors :

wget -q https://packages.medibuntu.org/medibuntu-key.gpg -O- | apt-key add -

Cela charge les clés GPG des dépôts. Validez, puis :

apt-get -q update

Fermez l'outil Gestionnaire de paquets Synaptic ainsi que le Gestionnaire de mise à jour s'ils ont étés préalablement ouverts et validez (touche Entrée), puis :

apt-get --yes -q --allow-unauthenticated install medibuntu-keyring

Validez (touche Entrée), puis :

apt-get -q update

Validez (touche Entrée) une dernière fois, et fermez le terminal. Voilà. Vos sources pour les paquets sont mises à jour. Regardez ce que cela donne pour Medibuntu dans le programme Synaptic destiné à installer des nouveaux paquets (photo ci-dessous)

depot_Medibuntu.png

Autre dépôt à intégrer : celui de tuxfamily. Toutes les explications, ici : https://tangostudio.tuxfamily.org/fr/repository.

depot_tuxfamily.png

Troisième onglet du programme Synaptic :

Depots-3.png

A installer aussi : le dépot d'Alessio Igor Bogani pour ses noyaux lowlatency et realtime par cette commande en console, toujours en root :

add-apt-repository ppa:gwibber-daily/ppa

Puis :

apt-get update

Installer un kernel lowlatency

La condition pour qu'un système audio fonctionne sous linux, c'est de travailler avec un kernel lowlatency, afin d'obtenir des latences très basses. Pour ce faire, ouvrir un terminal, repassez en mode root. Une fois loggué en root, tapez synaptic, ce qui ouvre la fenêtre de cet utilitaire précieux ; dans recherche, tapez lowlatency, vous devriez vous apparaître une série de linux-images et linux-headers en 2.6...quelque chose (selon le moment où vous lirez ce post), installez le linux-image-tel_version_lowlatency et le linux-headers de la même version. Une fois qu'ils sont installés, quittez synaptic, et (pour bétonner) tapez cette fois dans le terminal, toujours en root, update-grub, pour mettre à jour le choix des kernels (ou noyaux) proposés au démarrage de l'ordinateur. Après un reboot, optez pour un démarrage sur votre nouveau kernel lowlatency. Refaire alors la config de votre carte graphique, puis passez  à l'étape suivante, impérative pour l'audio...

=> Vous pouvez aussi compiler votre propre noyau realtime, en suivant le tuto que je lui ai consacré, là et que j'ai complètement actualisé début novembre 2011 : https://www.bruynooghe.fr/post/2010/11/17/Compiler-un-noyau-realtime-pour-la-MAO-sous-Linux-Ubuntu-Studio

Donner une priorité forte à la carte et aux autre matériels audio

Rui Nuno Capela, le créateur du paquet qjackctl, de qsynth et de qtractor, a écrit un script qui permet de donner une haute priorité aux IRQ comme aux matériels nécessaires à la MAO sous Linux. Intérêt : le processeur traitera grâce à ce script en priorité les instructions destinées à l'audio, pour faire simple. Donc, gros avantage, car votre PC sera vraiment configuré pour faire de la MAO. Pour ce faire :

  • Téléchargez le script à cette adresse, en allant le récupérer en bas de la page. Il s'agit à l'heure où j'écris du fichier rtirq-20110314.tar.gzici https://www.rncbc.org/jack
  • Décompresser ce fichier en double-cliquant dessus. L'extraire dans un dossier de votre choix.
  • Ouvrez désormais une console (un terminal).
  • Passez en root (statut d'administrateur) en tapant su (ou sudo -s), tapez alors enter, puis entrez votre mot de passe administrateur.
  • Tapez la commande cd /le_chemin/du_dossier_rtirq-20110314. C'est là que se trouve le script que nous utiliserons.
  • Tapez toujours dans la console la commande:
    cp rtirq.conf /etc/default/rtirq
  • Puis tapez
    cp rtirq.sh /etc/init.d/rtirq
    Ce qui installera le script renommé en rtirq dans le dossier init.d
  • Désormais, tapez
    insserv /etc/init.d/rtirq
    Ce qui installera le script dans les fichiers de démarrage de l'ordinateur.
  • Enfin, tapez
    ln -s /etc/init.d/rtirq /sbin/rcrtirq 
    Ce qui transformera ce script en commande rcrtirq.

Et voilà. Maintenant, en tapant rcrtirq status en root, vous obtenez ça :

Voilà ce que ça donne en image :

Capture-famille_famille___.png

Vous voyez donc ici que ma carte audio Delta 44 (ICE1712) a la priorité 84, donc très haute.

D'autres infos sur ce blog

Donner une priorité forte au groupe "audio"

Désormais, il faut donner une priorité au groupe audio, afin (pour faire simple) que ses processus puissent être traités avant beaucoup d'autres. Pour cela, ouvrez une console, passez en mode administrateur, par la commande sudo -s, puis mot de passe root, allez dans le répertoire /etc/security/limits.d/ et rajoutez dans le fichier audio.conf par la commande gedit les lignes suivantes :

@audio  - rtprio   90
@audio  - memlock  unlimited

Si vous avez dans ce fichier @audio  - nice  -17 ou un autre chiffre, placez une dièse devant cette ligne. Image :

audio.conf_config.jpeg

Rattacher votre compte au groupe audio

Je ne sais plus très bien si cette procédure est automatisée sous Ubuntu Studio, mais votre compte (pour moi bpier) doit être rattaché au groupe audio. Ne demandez pas pourquoi, faites-le par cette commande passée dans une console en root :

adduser votre_login audio

Faire causer sa carte audio avec Ubuntu studio

Autre préalable : la carte audio doit être reconnue. On imagine ici, par principe,que vous avez choisi une carte qui causait bien avec Linux. Reste qu'il vous faudra trouver le driver qui lui permettra de discuter avec votre bel OS tout neuf. Pour la Delta 44, celle que j'ai, le driver est l'ICE1712 (image ci dessous). Il est facile d'identifier le driver de votre carte audio. Ainsi,tapez en console la commande lspci et repérez la ligne concernant votre carte. Le driver y figure. Exemple pour la mienne en surligné sur l'image ci-dessous :

ICE1712.png

La Delta 44 est gérée par le paquet Envy24 Control, l'interface graphique permettant de configurer les cartes à base d'ICE1712. Image :

Envy24.png

Cette interface permet de régler les volumes, lerouting des entrées/sorties, le samplerate, tout cela via ses différents onglets. Image :

Envy24_1.png

Cette interface permet donc de faire causer sa carte avec les programmes, via Jack, le serveur son de Linux. Image :

Jack.png

Vous voyez sur ces différentes fenêtres ce à quoi ressemble Jack. Pour faire simple, ce serveur interface les applis de MAO avec la carte son : séquenceur audio, séquenceur MIDI, synthés, échantillonneur, rack d'effets... Une condition pour que Jack démarre, donc fonctionne : le kernel utilisé doit être realtime ou lowlatency. Cela étant dit, Jack est le coeur du studio, son centre névralgique. Il faut donc bien le configurer pour que tout fonctionne correctement.

EDIT DU 11 AVRIL 2012 : il existe une alternative à envy24 control, baptisée mudita24. Image sur le site de mudita, ici.

Configurer Jack

Voici le point le plus délicat : comme sur n'importe quel OS, pour faire de la musique (ou de la vidéo), il est nécessaire d'avoir un système parfaitement configuré - et épuré - pour travailler en realtime. Jack doit être réglé aux petits oignons faute de quoi il y aura des pertes de synchronisation, des XRUNS, ce qui pourrit un enregistrement et oblige à le refaire.

La procédure commence par le choix de sa carte. Ca se passe dans l'onglet Interface. Souris sur la flèche menu déroulant, clic à droite, choisir sa carte qui portera une fois sélectionnée le doux nom de hw0 ou hw1. Image ci dessous :

jack_control_choix_carte.png

 Poursuivre ensuite la configuration de jack en inscrivant chez vous ce que vous voyez s'afficher sur la capture d'écran fournie ci dessus. C'est un bon début pour démarrer. Augmentez la latence si nécessaire, jusqu'à ne plus avoir de XRUNS (image pour exemple d'un XRUN ci-dessous). Un outil permet de faciliter ce travail : le paquet jdelay, abréviation de jack_delay , qui mesure la latence d'une carte audio sous jack.

XRUNS.jpeg

N'oubliez pas d'affecter la priorité à Jack, dans mon cas 75, ce qui permet à son processus d'être... prioritaire sur beaucoup d'autres. Plus le chiffre est élevé, plus la priorité est grande. N'allez pas au-delà de 75.C'est a priori nettement suffisant dans la plupart des cas. Vous pourrez ensuite tester votre nouvelle config avec ardour, le meilleur multipiste développé sous Linux (désormais adapté à OSX et Windows). Réglez la config audio d'ardour à l'identique de celle de jack, tant en latence qu'en taux d'échantillonage. A partir d'ici, vous n'avez plus qu'à vous lancer dans la MAO sous Linux. En apprenant l'usage des différents outils à votre disposition. Le site de référence en la matière est, je le redis, linuxMAO, une excellente source d'infos, doublée d'un forum de discussions.

Fixer l'ordre des périphériques audio

Autre manip utile : pour fixer une bonne fois pour toute l'ordre d'appel des périphériques audio. Cela nécessite ainsi de modifier (via une console en étant loggué en root) le fichier /etc/modprobe.d/alsa-base.conf. Voici un exemple avec une carte Echo Layla24 (module "snd-layla24") trois périphériques USB (deux interfaces MIDI et une webcam) et le chip audio Intel intégré à la carte mère :

# Ma config
options snd-layla24 index=0
options snd-usb-audio index=1,2,3
options snd-hda-intel index=4

Alléger votre OS

Vous pouvez virer des services qui vous seront inutiles, de manière à alléger la charge qui pèse sur le processeur de votre bécane. Pour cela, ouvrez une console et tapez : 

sudo sysv-rc-conf

S'affiche la liste des services en toile de fond. Retirez ceux dont vous n'avez pas besoin en les  désélectionnant avec la barre d'espace, pour chacun des niveaux (runlevel) de Linux. Je n'ai ici aucun conseil à vous donner, sauf un : allez-y avec prudence, certains services étant obligatoires. Lisez attentivement la doc Ubuntu avant de vous lancer : https://doc.ubuntu-fr.org/services. Image :

Start_services.png

Virer Pulseaudio

Ubuntu Studio recourt au serveur son pulseaudio qui, en l'état, ne nous est pas indispensable pour l'audio, puisque nous utilisons alsa. On peut donc virer pulseaudio, en passant par l'outil synaptic, via une console. On choisit la procédure de suppression complète, ce qui nous entraîne à supprimer tout un tas d'autres paquets. Ceux-là dans mon cas (puisque j'ai remplacé jack par jack2, son successeur) :

- ubuntustudio-desktop - padevchooser - paprefs - pulseaudio-module-gconf - pulseaudio-module-zeroconf - pulseaudio-esound-compat - pulseaudio-module-bluetooth - pulseaudio-module-gconf - pulseaudio-module-x11 - g8478-0ubuntu14+withjack2.1 - libpulse0

Ma machine fonctionne très bien sans. Je gagne même un peu de ressources processeur, car pulseaudio n'est plus en toile de fond. Enfin, je continue à écouter mes morceaux de musique en mp3 comme en flac sur mon lecteur habituel, vlc.

Un aperçu d'Ubuntu studio avec le sequenceur MIDI Rosegarden

rosegarden_qsynth.png

Ici, j'ai couplé le sequenceur MIDI Rosegarden avec le lecteur de soundfonts Qsynth. Pour tirer un son sympa de l'ensemble, j'ai chargé dans Qsynth une excellente banque, dont je ne sais plus qui en est l'auteur. Il s'agit de la banque baptisée Titanic. J'ai consacré un tuto spécifique à Rosegarden, Qsynth et Titanic, ici : https://www.bruynooghe.fr/post/2011/03/27/Ubuntu-Sudio-en-utilisant-Rosegarden-et-Qsynth

Passer au noyau realtime

Pour autant, je vous engage à vous reporter au post que j'ai fait sur la compilation d'un noyau rt fait maison. Pourquoi ? Parce que votre machine ira bien plus vite qu'avec un noyau rt générique. Un noyau maison est en effet parfaitement adapté à votre matériel, et surtout à votre type de processeur. En outre, je propose là d'autres optimisations qui feront de votre PC une petite bombe. De plus, ce post a été mis à jour et complété début novembre 2011, toutes les explications ayant été validées par des tests, preuve apportée en vidéos et en images... Je ne peux pas mieux dire (cliquez sur le premier lien ci-dessous),

Liens utiles

Un excellent Wiki sur la configuration audio : https://wiki.linuxmusicians.com/doku.php?id=system_configuration

Ainsi que les autres posts de ce site, qui vous permettront d'utiliser Linux dans un environnement complet de MAO, instruments virtuels, expandeurs et synthés, avec explications détaillées de la marche à suivre, notamment celle de l'installation des cartes audio. En voici les liens :

https://www.bruynooghe.fr/post/2010/11/17/Compiler-un-noyau-realtime-pour-la-MAO-sous-Linux-Ubuntu-Studio

https://www.bruynooghe.fr/post/2011/09/29/MAO-sous-Linux%2C-mon-studio

https://www.bruynooghe.fr/post/2011/09/28/Installer-une-connexion-internet-sur-Tango-Studio-via-le-CPL

https://www.bruynooghe.fr/post/2011/09/04/Utiliser-Linuxsampler-sur-Linux

https://www.bruynooghe.fr/post/2011/03/27/Ubuntu-Sudio-en-utilisant-Rosegarden-et-Qsynth

https://www.bruynooghe.fr/post/2011/08/25/Trouver-le-tempo-d-un-morceau-sous-Linux

https://www.bruynooghe.fr/post/2011/03/27/Ubuntu-Sudio-en-utilisant-Rosegarden-et-Qsynth

https://www.bruynooghe.fr/post/2011/04/02/Jouer-avec-Ubuntu-Studio-en-enregistrant-une-loop-sur-Ardour