# [Howto]musique sous gentoo

## Dominique_71

Ce Howto traite de la mao (musique assistée par ordinateur) sous gentoo.

Il est possible de transformer un pc en une station de travail multimédia grâce à linux. Seront abordées ici les quesdtions du son et de l'audio, mais certains des points traités seront également utiles à ceux qui veulent travailler professionellement de la vidéo.

1.- Introduction

Une contrainte très importante qui doit être satisfaite pour une station de travail multimédia est la possibilité de pouvoir effectuer ses tâches en temps réel. Une autre contrainte importante dans un environnement de production est la stabilité.

La préemption des kernels 2.6 est excellente pour des usages comme les serveurs ou les ordinateurs de bureau ou domestiques, mais elle est insuffisante dans un environnement de production multimédia. Il sera donc nécessaire d'installer un kernel temps réel (ou avec préemption complête).

Un soin particulier doit être apporté à la configuration matérielle de l'ordinateur afin de garantir la stabilité du système.

Dans un soucis de performance, des environnements graphiques légers comme xfce4 ou fluxbox seront préferrés à kde ou gnome.

L'overlay pro audio production applications permet de mettre rapidement en oeuvre une station de travail multimédia sous gentoo. Cet overlay a aussi un wiki et une liste d'emails. Je vais essayer ici de présenter son installation et sa mise en oeuvre. 

Un excellent site en français de référence pour la mao sous linux est MAO libre. Je me concentrerais donc ici sur la MAO sous gentoo. 

Remarque importante

Les ebuilds de cet overlay ne sont pas supportés par les développeurs de gentoo et vous installez ces programmes à vos risques et périls.

2.- Installation et mise à jour de l'overlay

La méthode conseillée est avec layman:

* Installation de layman

```
emerge -av layman
```

* Modification de make.conf

```
echo "source /usr/portage/local/layman/make.conf" >> /etc/make.conf
```

* Installation de l'overlay

```
layman -f -a pro-audio
```

* Mise à jour de l'overlay

```
layman -s pro-audio
```

À ce stade, nous n'avons téléchargé et installé une liste d'ebuilds dans /usr/portage/local/layman/pro-audio. Ceux-ci sont disponibles dans portage et ces programmes peuvent être installés comme d'habitude avec emerge.

3.- Installation des sources du kernel multimédia

Remarques importantes

1) Un kernel temps réel permet d'obtenir une préemption complête du système. Cette préemption doit être contrôlée par un mécanisme approprié: PAM-rlimits ou le module du kernel realtime-lsm.

Pour clarifier les choses car c'est souvent un sujet à confusion, la préemption complête (realtime preemption en anglais) est mise à disposition par un patch du kernel écrit par Ingo Molnar. Comme son nom l'indique, ce patch rend le kernel complêtement préemptible, ce qui permet d'obtenir une latence plus faible des opérations, et particulièrement des tâches audio. Un kernel patché avec ce patch est appellé un rt-kernel; cela a à voir avec le scheduling (agencement?) des opérations, mais n'a rien à voir avec les permissions utilisateurs.

Le module realtime-lsm n'est rien d'autre qu'un module de sécurité linux (LSM) qui rend possible d'accorder la permission à l'utilisateur d'utiliser les capacités temps réel du kernel linux. Il fonctionne sur n'importe quel kernel. Il va être remplacé par une version de PAM appelée PAM-rlimits laquelle utilise la fonction RLIMITS du kernel pour authoriser l'accès aux capacités temps réel d'une façon plus sure que le fait le realtime-lsm.

2) N'utilisez pas ce kernel pour obtenir une meilleure latence de kde. Non seulement ce n'est pas son but, mais vous risquez même de voir la latence de kde devenir pire en cas d'utilisation intensive du son. Par contre, vous aurez moins de xruns avec jack ainsi qu'une meilleure latence son.

3) Une station multimédia nécessite une configuration matérielle musclée pour pouvoir effectuer des tâches complexes en temps réel. Points les plus importants: beaucoup de mémoire RAM; disques durs rapides avec partitions séparées pour le système et les enregistrements; côté processeur, un duocore 64 bits sera l'arme ultime.

Lors d'utilisation de disques durs PCI, il est très important que le disque dur servant aux enregistrements soit sur un autre contrôleur (lisez câble) que le disque système. Si les PCI modernes sont rapides, ils bouchonnent au niveau du contrôleur lors d'accès simultanés sur deux partitions séparées ou deux disques séparés situés sur le même contrôleur. Voir SCSI vs. IDE vs. USB vs. FireWire.

Installation des sources

Note: Il s'agit d'un kernel expérimental

```
emerge -av rt-sources
```

Vous remarquerez dans la sortie de cette commande que l'overlay est bien installé:

```
$ emerge -av rt-sources

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] sys-kernel/rt-sources-2.6.17-r8  USE="-build -fbsplash realtime-lsm -symlink -vesafb-tng" 42,114 kB [4] 

Total size of downloads: 42,114 kB

Portage overlays:

 [1] /usr/portage/local/layman/test

 [2] /usr/portage/local/layman/science

 [3] /usr/portage/local/layman/kpex-media

 [4] /usr/portage/local/layman/pro-audio

Would you like to merge these packages? [Yes/No]
```

Le [4] renvoie bien à l'overlay pro-audio. Les [2] et [3] sont deux autres overlays mis à dispositions par layman, et [1] est mon overlay personnel pour tester mes ebuilds.

Les USE flags particuliés à ce kernel sont les suivants:

fbsplash: possibilité de boot splash avec gensplash, non recommendé pour un usage en production.

realtime-lsm: installe le module realtime-lsm dans les sources du kernel.

vesa-tng: installe le nouveau vesa-tng framebuffer, non recommandé pour un usage en production.

4.- Configuration du kernel multimédia

Copier la configuration du kernel actuel

Si vous avez le support pour l'accès à la configuration via /proc/config.gz:

```
zcat /proc/config.gz > .config
```

Autrement:

```
cp /usr/src/linux-`uname -r`/.config .config
```

Ensuite:

```
make oldconfig
```

Ce pas va vous fournir un tas de question, si vous n'êtes pas sur, vous pouvez généralement répondre non à toutes ou accepter la valeur par défaut.

Modification de configurations importantes

Cet exemple est pour un kernel 2.6.16

```
make menuconfig
```

* Activer la préemption complête:

```
Processor type and features --->

 Preemption Mode (Complete Preemption (Real-Time)) --->

  ( ) No Forced Preemption (Server)

  ( ) Voluntary Kernel Preemption (Desktop)

  ( ) Preemptible Kernel (Low-Latency Desktop)

  (X) Complete Preemption (Real-Time)
```

* Réglage de la fréquence de l'horloge interne:

```
Processor type and features  --->

 Timer frequency (1000 HZ)  --->

  (X) 1000 HZ
```

* Support pour l'horloge temps réel (RTC):

```
Device drivers --->

 Character devices  --->

  <*> Enhanced Real Time Clock Support
```

* Support de la RTC dans ALSA:

```
Device drivers --->

 Sound  --->

  Advanced Linux Sound Architecture  --->

   <*>   RTC Timer support

   [*]     Use RTC as default sequencer timer
```

* Soyez sur de ne pas avoir d'options de débogage:

(Note: Regarder dans le fichier .config du rt-kernel pour une liste complête.)

```
Kernel hacking  --->

 [*] Magic SysRq key #that one is always good to have ;)

 [ ] Kernel debugging
```

* Activez le realtime-lsm:

Note: cette option est disponible seulement si le use flag realtime-lsm était activé lors de l'installation des sources. Si ce n'était pas le cas, sélectionner seulement "Default Linux Capabilities". Vous pourrez toujours installer le module après installation du kernel avec "emerge realtime-lsm".

```
Security options  --->

 [*] Enable different security models

  <M>   Default Linux Capabilities

  <M>   Realtime Capabilities
```

Quittez et sauvez la configuration.

5.- Compilation et installation du kernel multimédia  

Compilation:

```
make && make modules_install
```

Installation:

```
cp arch/i386/boot/bzImage /boot/kernel-2.6.16-rt22

cp System.map /boot/System.map-2.6.16-rt22
```

Si vous n'avez pas le support de votre chipset et du système de fichiers dans le kernel mais comme modules, vous aurez besoin d'une initrd:

```
cd /boot

mkinitrd -k kernel-2.6.16-rt22 -i initrd-2.6.16-rt22
```

Configuration du chargeur de démarrage:

```
nano -w /boot/grub/grub.conf
```

Copiez les entrées de votre ancien kernel et modifiez les noms pour qu'ils correspondent au kernel actuel.

Et enfin nous y sommes: redémarrez!

6.- Configuration et test du temps réel 

Avec le realtime-lsm

Après le redémarrage:

* Si le module realtime-lsm n'a pas été compilé avec le kernel (voir ci-dessus point 5.-)

Le lien symbolique /usr/src/linux doit pointer sur les sources du rt-kernel.

```
emerge -av realtime-lsm
```

* Déterminez le gid du groupe audio:

```
id <username>
```

L'important dans la sortie de cette commande est le gid du groupe audio (normalement 18 sous gentoo).

```
$ id dom

uid=1000(dom) gid=100(users) groupes=100(users),7(lp),10(wheel),11(floppy),18(audio),19(cdrom),27(video),35(games),80(cdrw),85(usb),440(plugdev),444(kdemouse),445(freenet)
```

* Si l'utilisateur n'est pas dans le groupe audio:

```
gpasswd -a <username> audio
```

et arrêtez et redémarrez la session de l'utilisateur.

* Chargez le module realtime-lsm:

```
modprobe commoncap

modprobe realtime gid=18
```

* Pour être sur qu'il sera chargé automatiquement lors d'un redémarrage:

```
echo "realtime" /etc/modules.autoload.d/kernel-2.6

echo "options realtime gid=18" >> /etc/modules.d/realtime

modules-update
```

L'utilisateur peut maintenant lancer des programmes audio avec le privilège temps réel.

```
$ lsmod|grep realtime

realtime                5384  0 

commoncap               7168  1 realtime
```

Avec RLIMITS et PAM

* Assurez-vous que vous avez la dernière version de pam de l'overlay:

```
emerge -av pam
```

Voir remarque ci-dessus dans [3.-] pour savoir comment remarquer si vous avez déjà la bonne version.

Note: Si vous ne voyez pas l'overlay pro-audio dans la sortie de cette commande, cela signifie que vous utilisez une version ~arch de pam. Supprimez cette référence dans /etc/portage/package.keywords pour pouvoir installer pam-rlimits de l'overlay. La plupart des ebuilds de l'overlay sont en arch. Certains programmes ont des versions cvs et svn, lesquelles sont, conformément à gentoo, en -*.)

* Modifiez /etc/security/limits.conf pour y rajouter

```
# rtprio

@audio - rtprio 90

@audio - nice -5

@audio - memlock 500000
```

Cela règle la priorité temps réel à 90 pour tous les utilisateurs du groupe audio, les tâches temps réel ont une valeur nice de -5, et un memlock d'environ 500MB leur est accordé.

Avec RLIMITS et sans PAM

```
emerge set_rlimits
```

Un exemple de fichier de configuration set_rlimits.conf est:

```
@audio  /usr/bin/jackd          nice=-1 rtprio=85

@audio  /usr/bin/qjackctl       nice=-1 rtprio=84

@audio  /usr/bin/ardour         nice=-1 rtprio=83

@audio  /usr/bin/hydrogen       nice=-1 rtprio=82

@audio  /usr/bin/jackeq         nice=-1 rtprio=81

@audio  /usr/bin/jack-rack      nice=-1 rtprio=80

@audio  /usr/bin/jamin          nice=-1 rtprio=79

@audio  /usr/bin/qsynth         nice=-1 rtprio=78

@audio  /usr/bin/rosegarden     nice=-1 rtprio=77

@audio  /usr/bin/seq24          nice=-1 rtprio=76

@audio  /usr/bin/specimen       nice=-1 rtprio=75

@audio  /usr/bin/vkeybd         nice=-1 rtprio=74

@audio  /usr/bin/zynaddsubfx    nice=-1 rtprio=73

@audio   /usr/bin/ams      nice=-1   rtprio=72

@audio   /usr/bin/amsynth   nice=-1   rtprio=71
```

rtirq

c'est un script de dénattage qui fixe les priorités du matériel. Il assigne différentes priorités aux IRQ, pour donner la priorité la plus importante à la RTC, suivie des cartes sons, de l'usb et de l'i8042. Pour l'installer:

```
emerge rtirq

rc-update add rtirq default
```

Il est possible de le redémarrer, par exemple après un modprobe:

```
/etc/init.d/rtirq restart
```

Pour connaître l'état de rtirq:

```
/etc/init.d/rtirq status
```

Cette dernière commande vous donnera aussi les priorités et d'autres renseignements.

Test de l'audio temps réel

* Démarrez qjackctl et faites votre cofiguration

* Cliquez sur Start -> et JACK doit démarrer.

* Démarrez zynaddsubfx

* Ouvrez Connect dans qjackctl

* et connectez zynadd à la sortie de la carte son

* jouez avec zynadd 

Vous devriez entendre zynaddsubfx dans toute sa gloire.

7.- Configuration des IRQs 

Il est recommandé de regler la priorité des interruptions matérielles de l'ordinateur comme indiqué ci-dessus avec rtirq.

Je ne saurait trop vous recommander de lire le Linux hardware stability guide, Part 2 de Daniel Robbins . Il est particulièrement important de ne pas avoir d'IRQ partagées avec la carte son. La raison en est que rtirq va assigner la même priorité à tout périphérique qui partagerait la même IRQ que celle de la carte son. Cela provoquerait immanquablement des plantées et des blocages du système.

Il est indispensable pour la stabilité du système que la sortie de "cat /proc/interrupts" ne montre pas d'IRQ partagée:

```
 $ cat /proc/interrupts

           CPU0       

  0:   85850747  XT-PIC         [........N/  0]  pit

  1:      65574  XT-PIC         [........./ 20]  i8042

  2:          0  XT-PIC         [........N/  0]  cascade

  3:          0  XT-PIC         [........./  0]  ohci_hcd:usb2

  4:     730029  XT-PIC         [........./  0]  ohci_hcd:usb1

  5:         16  XT-PIC         [........./  0]  ohci_hcd:usb3

  6:     533038  XT-PIC         [........./  0]  ehci_hcd:usb4

  7:          1  XT-PIC         [........./  0]  parport0

  8:     318973  XT-PIC         [........./  0]  rtc

  9:          0  XT-PIC         [........./  0]  acpi

 10:     373340  XT-PIC         [........./  0]  EMU10K1

 11:    1635098  XT-PIC         [........./  0]  ohci1394, eth0

 12:          0  XT-PIC         [........./  0]  bttv0

 14:    1343881  XT-PIC         [........./  0]  ide0

 15:       1351  XT-PIC         [........./  0]  ide1

NMI:          0 

LOC:    5804087 

ERR:          0

MIS:          0
```

et ceci même dans le cas d'un systême APIC. Les périphériques qui ne doivent absolument pas avoir d'IRQ partagée sont ceux listés dans /etc/default/rtirq:

```
RTIRQ_NAME_LIST="rtc snd usb i8042"
```

En cas d'IRQ partagées, le seul moyen de résoudre cela est de modifier l'assignement des IRQs dans le BIOS et/ou de déplacer les cartes de slot en slot. Voir la doc de votre carte mère pour cela, elle décrit généralement les options du bios ainsi que la façon dont les slots se partagent ou non les IRQs. (Ces docs peuvent contenir des fautes, donc en cas de doute, c'est le Bios et /proc/interrupts qui font foi.)

Il est aussi bien que la priorité des IRQs dans le kernel corresponde autant que possible à celle dans la carte mère. L'ordre des IRQs dans une machine non APIC est le suivant:

```
0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7

 

 0 : priorité la plus forte

 7 : priorité la plus faible
```

En comparant cette table avec les données de /proc/interrupts, nous voyons que nous pouvons mettre de l'ordre dans cette machine. L'IRQ 9 est la meilleure IRQ possible pour une carte son, le problème ici est que le kernel veut lui attribuer l'ACPI même quand il est désactivé dans le BIOS. Le paramètre de démarrage "acpi=off" permet de le désactiver et de gagner l'IRQ 9. Il faut encore aller dans le bios et réassigner l'IRQ du connecteur correspondant à l'EMU10k1. Nous nous retrouverons alors avec l'IRQ 10 libre, laquelle pourra être utilisée, par exemple, pour une carte son supplémentaire. Il suffit de rajouter acpi=off dans /boot/grub/menu.lst à la fin de ligne correspondant au rt-kernel pour rendre ce changement permanent.

8.- Divers 

USB et jackd

Les cartes son USB ne permettent pas de réaliser des latences aussi faibles que les cartes son PCI mais elles sont très populaires. La période d'interruption d'un bus USB est d'environ 1 msec. Pour que jackd fonctionne aussi bien que possible, il est nécessaire qu'il soit réglé sur un multiple de cette période, par exemple 48 kHz 3 periods, dans qjackctl. De plus, le chargement de snd-usb-audio avec le paramètre "nrpacks=1" améliore aussi beaucoup la latence (CONFIG_USB_BANDWIDTH et CONFIG_USB_DYNAMIC_MINORS ne doivent pas être sélectionnés dans la configuration du kernel).

EMU10K1 et fontes sonores

D'autres cartes son populaires sont les Live et Audigy qui possèdent un synthétiseur capable d'utiliser les fontes sonores sf2. La configuration par défaut du module du kernel ne permet pas de charger des fontes sonores d'une taille totale supérieure à 128MB.

Pour agrandir cette taille, éditez /etc/modules.d/alsa et rajoutez:

```
options snd-emu10k1 max_buffer_size=size_in_MB
```

et lancez:

```
# modules-update
```

La taille maximum est de 1 ou 2 GB, je ne suis pas sur. Si quelqu'un le sait, laissez un mot. Indiquer une taille supérieure à ce que la carte peut faire n'entraîne aucune autre conséquence que le chargement des fontes sonores sera interrompu dés que la limite sera atteinte.

Vous chargez les fontes sonores comme d'habitude avec asfxload. Pour tester que tout fonctionne bien:

```
#  cat /proc/asound/card0/wavetableD1
```

Il est aussi recommandé de charger les fontes sonores lors du démarrage car le kernel ne sera pas forcément capable d'assigner la mémoire nécessaire au chargement de grosses fontes sonores dans un système en fonctionnement. Il va sans dire qu'il faut avoir suffisament de mémoire RAM pour charger des grosses fontes sonores et avoir un système utilisable. Pour automatiser le chargement, il suffit d'ajouter la commande

```
asfxload votre_soundfont
```

dans /etc/conf.d/local.start

Cartes Firewire

Le firewire est un bus série à haute vitesse. Son standard est l'IEE1394.

Alsa ne supporte pas ce protocole mais il existe deux solutions pour linux:

IEEE 1394 for Linux

FreeBob project

Avant d'acheter une telle carte, consulter ces sites pour savoir si votre matériel fonctionnera avec linux. Le problème est que si certains fabriquants collaborent avec linux, d'autres ne le font pas, et que pour une carte son il n'y a pas seulement le protocole de communication IEEE1394 à gérer, mais aussi le hardware de la carte. Si votre carte son n'est pas reconnue, adressez une plainte-requête polie mais ferme à son fabricant.

Il n'y a pas à ce jour d'ebuild gentoo pour freebob (à ma connaissance), mais il y en a un pour l'IEEE1394: sys-libs/libavc1394 ainsi qu'un module kernel. N'ayant jamais testé ce type de cartes, je ne peux pas vous en dire plus.Last edited by Dominique_71 on Mon Aug 28, 2006 5:03 pm; edited 10 times in total

----------

## Dominique_71

MAO - Musique assistée par ordinateur 

Cette deuxième partie est une traduction du wiki DAW Digital Audio Workstation

Voir aussi https://forums.gentoo.org/viewtopic-t-462677.html Les parties déjà  traitées ci-dessus ne sont pas réabordées et certaines précisions ont été aportées.

C'est un survol des possibilités offertes par linux et particulièrement gentoo pour réaliser une station de travail audio d'enregistrement multipistes et de mastering.

Il n'y a aucun programme linux comparable aux suites combinées logiciel-matériel pour Mac ou windows, mais il y a un ensemble d'applications qui peuvent être combinées sur n'importe quel hardware pour donner un système aux possibilités limitées uniquement par le hardware et l'imagination de l'utilisateur. Notre manchot est déjÃ  capable de nous permettre de produire des productions audio de qualité.

Avertissement:  Beaucoup des logiciels décrit ici sont au stade béta voir alpha. Ils peuvent planter voir même planter le système. Il est donc important de bien les tester avant de les utiliser en production ou en live.

Notre station de travail comprendra au moins les éléments suivants:

* un serveur son professionel (Jack),

* un séquenceur (Rosegarden) et une boite à  rythme (Hydrogen),

* un éditeur/enregistreur multipistes (Ardour),

* des effts multiples DSP (plugins LADSPA et VSTi/VST avec Rosegarden et Ardour),

* un éditeur audio (Rezound),

* un logiciel de mastering (Jamin) 

Vous devez avoir installé l'overlay proaudio d'Evermind, un kernel multimédia fonctionel et avoir des drivers alsa fonctionels pour votre carte son.

Installation de jack 

Jack est un serveur son qui réuni les deux qualités nécessaires pour une utilisation sérieuse du son avec un ordinateur: faible latence et exécution synchrône de toutes les tâches de ses clients.

De plus, plusieurs interfaces graphiques sont à  disposition pour jack. Certains comme qjackctl sont indépendant et permettent un contrôle de tous les paramètres de jack, d'autres sont incorporés dans les applications. Ces interfaces permettent de router (interconnecter) les programmes audio avec la souris exactement comme nous le ferions dans un studio ou sur une scène, mais sans avoir à  nous soucier d'avoir le bon raccord ou d'adapter les impédances. Il permet aussi de synchroniser les flux audio et MIDI. Jack est donc le coeur du système.

* Assurez-vous que vous avez au moins les USE flags suivants dans /etc/make.conf:

```
USE="alsa jack mmx sse"
```

Note: mmx et sse sont des optimisations en fonction du CPU qui ont du être ajoutées lors de l'installation de Gentoo. Votre processeur peut aussi supporter d'autres optimisations comme mmx2 et sse2. Pour obtenir la liste de ce que votre CPU supporte:

```
grep -i Flags /proc/cpuinfo
```

* Nous avons besoin de certains flags USE pour jack:

```
echo "media-sound/jack-audio-connection-kit jack-tmpfs jackmidi" >> /etc/portage/package.use
```

Si vous voulez le support réseau de jack, lancez à  la place:

```
echo "media-sound/jack-audio-connection-kit jack-tmpfs jackmidi netjack" >> /etc/portage/package.use
```

* Installation de jack et de ses dÃ©pendences:

```
emerge --oneshot alsa-lib alsa-jack jack-audio-connection-kit
```

L'auteur de ce howto conseille d'utiliser les versions ~arch... à vous de choisir. Pour jack-audio-connection-kit, j'ai même installé la version cvs (-*).

* Editez /etc/fstab pour y rajouter:

```
none       /dev/shm     tmpfs    nodev,nosuid,noexec        0       0
```

Il n'est pas nécessaire d'en faire plus avec les kernels récents.

Pour les détails voir le FAQ de jack. (Vieux et pas mis à  jour.)

À ce stade, vous devrez peut-être redémarrer.

* Maintenant, nous pouvons essayer jack:

```
jackd -R -d alsa &
```

Il est possible d'utiliser jack à  la ligne de commande (par exemple pour le lancer lors du démarrage. Lisez donc soigneusement:

```
man jackd
```

Il est plus facile d'utliser qjackctl:

```
emerge -av qjackctl
```

NOTE: Soyez sur d'utiliser jack avant de lancer les applications audio, autrement elles pourront ne pas fonctionner, et même si elles démarrent, elles ne l'utiliseront pas.

Soyez aussi attentif au fait que pour pouvoir réaliser des opérations temps réel, le processeur ne dispose que du temps correspondant à la latence de Jack. Plus la latence de jack sera faible, plus il faudra une machine musclée pour réaliser des tâches complexes. Les logiciels de synthèses sonores logicielles ainsi que certains filtres peuvent être particulièrement gourmands en temps processeur.

Installation des autres programmes 

Nous allons installer les programmes les plus importants de l'overlay.

Support VST 

VST est un format de plugin utilisé par la plupart des applications audio windows et mac. Vous pouvet les utiliser à l'intérieur d'autres programmes (appelés hôtes). Ils comportent des effets temps réel, des synthétyseurs et d'autres choses. Pour plus de renseignements, regardez ici: KVR: VST Plugins pour voir la tonne de plugins libres qui existent. Et certains ont vraiment un bon son! 

Une excellente référence en français est MAO Linux:Synthés virtuels

Il y a au moins deux systèmes pour utiliser les plugins VST sous linux:

Divers  

Fvwm-crystal 

Fvwm est un gestionnaire de fenêtre léger et rapide. Son principal défaut est qu'il prend beacoup de temps à  configurer, mais il offre une flexibilité qu'aucun autre wm n'offre. J'ai réalisé une recette (= thème sous fvwm) qui incorpore dans le menu la plupart des programmes de cet overlay ainsi qu'un menu de contrôle d'alsaplayer avec réglage de volume en db et réglage de vitesse. Le réglage de vitesse permet entre autre de changer la vitesse par pas de 1 comma dans le premier demi ton autour de la vitesse normale. Cela est très utile, par exemple pour un guitariste qui veut jouer un même temps qu'il écoute un morceau. Il n'a ainsi pas besoin de se réacorder pour sonner juste.

Cette configuration lance qjackctl et gkrrml (s'ils sont présents dans le système) au démarrage de fvwm.

Un autre avantage de Fvwm est qu'il utilise encore moins de ressources système que fluxbox ou xfce.

Pour installer ce thème, il faut d'abord installer fvwm et fvwm-crystal:

```
emerge fvwm-crystal
```

Et ensuite téléchargez ma configuration à  Fvwm et gensplash et l'installer dans ~/.

fvwm-crystal-config-current.tar.bz2 contient la configuration, la recette et le menu. Une fois installé, vous avez dans le menu sous Fvwm-crystal -> préférences -> Recettes utilisées -> Utilisateur, une nouvelle recette appellée Thin Dock. Le menu des applications fonctionnera avec toutes les recettes. Le menu de contrôle d'alsaplayer (dans le menu sous Fvwm-crystal -> préférences -> lecteur de musique -> alsaplayer et mixer audio -> alsaplayer) sera disponible avec toutes les recettes, mais toutes ses fonctionalités ne seront présente qu'avec Thin Dock.

Cette recette utilise des coins arrondis pour les fenètres. Si vous les voulez, il faut installer la version cvs patchée de Fvwm avec l'ebuild de pierreg à  FVWM CVS. Cette version est hyper stable, même avec un kernel temps réel et les drivers nvidia. Donc pas de soucis, fvwm est souvent cité comme exemple de programmation réussie.

fvwm-crystal-config-images-current.tar.bz2 contient des icones pour le menu des applications ainsi que quelques papiers peints. Il est lui aussi à  installer dans ~/.

Vous devez vous retrouver avec tous les fichiers dans ~/.fvwm-crystal

Pour pouvoir lancer fvwm avec xdm, gdm ou kdm, vous devez rajouter une entrée dans /etc/X11/Sessions:

```
echo '#!/bin/sh' > /etc/X11/Sessions/fvwm-crystal

echo /usr/bin/fvwm2 >> /etc/X11/Sessions/fvwm-crystal
```

EDIT: En fait, il suffit de copier le fichier addons/fvwm-crystal.desktop livré avec FVWM_Crystal dans /usr/share/xsessions (si je me rapelle bien, portage le fait lors du merge de fvwm-crystal). Cet emplacement est utilisé par gdm (et sans doute aussi kdm) pour savoir quels wm sont disponibles.

endedit

Il y a aussi deux fichiers pour les locales en français du menu, ils sont à  metrre dans /usr/share/fvwm-crystal/fvwm/locale/fr_vos_locales/.

Tout commentaire au sujet de cette recette ou rapport de bugs sont les bienvenus. De même que des nouvelles icones ou fonctionalités.

09/10/2006: j'ai updaté la config. Corrigé un bug récursif dans le menu de l'alsaplayer que j'ai divisé en quatre. Rajouté un bouton dans le bouton audio de Thin Dock pour avoir de meilleurs bindings.

EDIT Je suis en train de merger avec Marcej, le développeur de FVWM-Crystal, les fonctions de Crystal-Audio dans Fvwm-Crystal.

Endedit

Suite un autre jour.Last edited by Dominique_71 on Mon Apr 23, 2007 10:14 am; edited 8 times in total

----------

## yuk159

Merci pour ce beau how-to, il me servira certainement  :Smile: 

@+

----------

## xaviermiller

Merci pour le résumé et la traduction en français  :Wink: 

----------

## guitoo

Est ce qu'il est possible d'utiliser conjoitement plusieurs noyaux? En l'occurence un rt-kernel et un gentoo-kernel. En particulier est ce que ça risque de poser des problèmes sur les modules, Notemment pour les modules comme ndiswrapper ou nvidia-drivers.

----------

## Olivier HUMBERT

 *guitoo wrote:*   

> Est ce qu'il est possible d'utiliser conjoitement plusieurs noyaux? En l'occurence un rt-kernel et un gentoo-kernel. En particulier est ce que ça risque de poser des problèmes sur les modules, Notemment pour les modules comme ndiswrapper ou nvidia-drivers.

 

non je ne pense pas car chaque kernel possède sont propre arbre de modules dans /lib/modules, un petit ls te le montrera qi tu as plusieurs kernel.

En passant, super tuto !

entre celui ci et celui là

ça commence à devenir plus qu'intéressant ...

les homestudios et studio associatifs vont basculer d'ici peu !

----------

## Dominique_71

 *Olivier HUMBERT wrote:*   

>  *guitoo wrote:*   Est ce qu'il est possible d'utiliser conjoitement plusieurs noyaux? En l'occurence un rt-kernel et un gentoo-kernel. En particulier est ce que ça risque de poser des problèmes sur les modules, Notemment pour les modules comme ndiswrapper ou nvidia-drivers. 
> 
> non je ne pense pas car chaque kernel possède sont propre arbre de modules dans /lib/modules, un petit ls te le montrera qi tu as plusieurs kernel.

 

Non, il n'y a pas de problème. Il est même possible de faire plusieurs kernels avec les mêmes sources. Pour cela, commencer par faire un "make mrproper". Cela va remettre les compteurs à zéro. Même le .config sera effacé donc il est bon d'en faire une sauvegarde. Personellement, je copie toujours le .config dans /boot et je le renomme en config-'uname -r' pour m'y retrouver.

Après, c'est comme d'habitude, mais dans la config générale, il faut mettre une extra string qui viendra se rajouter à la fin du nom du kernel. Cela permet d'avoir aussi des répertoires de modules différents dans /lib/modules. J'ai même réussi à faire un kernel pour le driver nv 2D et le nvidia 3D. J'en ait fait un tips dans le wiki: Swithing between the nv free driver and the 3D nVidia driver car cela necessite plus que simplement deux kernels.

A propos de kernel, évitez le 2.6.17-rt8 dans l'overlay (en ~arch) et choisissez le 2.6.16-rt29. Le 2.6.17-rt8 est buggé et comme c'est les vacances aussi pour Ingo... il faut utiliser le 2.6.16-rt29 qui est ultra stable. 

EDIT: C'est seulement le 2.6.17-rt8 qui est buggé, pas les autres 2.6.17.

 *Quote:*   

> En passant, super tuto !
> 
> entre celui ci et celui là
> 
> ça commence à devenir plus qu'intéressant ...
> ...

 

C'est sur. Et beaucoup de gens commencent à en parler en dehors de la communauté linux. Près de chez moi, un magasin de musique vend les Mediastations. Plus de gens en parlerons, plus il y aura d'émules. 

Côté linux, il se passe aussi beaucoup de choses.

Suse a le jacklab qui permet d'incorporer à suse les mêmes fonctionalités que cet overlay.

Chez Debian, Musix a un développement rapide, la nouvelle version de DeMuDi devrait sortir en même temps que la nouvelle version de Debian et le développement, suite à l'arrêt des subventions européennes, se fait de manière conjointe avec Debian.

Il y a aussi planet CCMRA et Studio64.

EDIT: Et j'oubliait dyne:bolic.

----------

## Coltie

Hello!

Un grand merci pour ce tuto!

Juste dommage pour moi... le seul hic: 

```
modprobe commoncap 

FATAL: Error inserting commoncap (/lib/modules/2.6.16-rt29/kernel/security/commoncap.ko): Invalid module format
```

Dommage...

Je vais voir ce que je peux faire...

NB: .. et on est au moins deux romands dans l'histoire de la MAO sous linux!

----------

## jotake

Bonjour tous d'abord merci pour ce beau tuto.

Ma question est la suivante, existe t'il sous linux un logiciel comparable à "Sam Broadcaster" (windows). 

C'est un logiciel permettant de diffuser des flux audio (mp3, ogg) sur des serveurs shoutcast, icecast. 

Il est utilisé par exemple pour faire des webradio : diffusion de musiques, diffusion avec un micro etc....

Pour le moment le seul que j'ai trouvé si rapprochant est "Internet DJ Console http://www.onlymeok.nildram.co.uk/.

Il marche pas trop mal, mais si quelqu'un connait quelques choses d'autres je suis partant  :Smile: 

ps: lien pour sam --->  http://www.spacialaudio.com/products/sam2/

----------

## Dominique_71

Il n'y a aucun logiciel linux correspondant à Sam. Il doit par contre être possible de combiner plusieurs programmes pour obtenir des fonctions similaires. 

J'ai oublié de mentionner le lien de MAO Libre, excellent site sur la MAO sous linux. Il contient une page sur le broadcasting. Je n'ai jamais essayé, mais la meilleure solution me semble d'utiliser un serveur qui soit compatible avec jack. Une chose à se rapeller avec le broadcasting est qu'il ne faut pas abuser d'effets sonores car cela rend vite le son mauvais à l'autre bout de la chaine (Il y a eu une discussion là-dessus au mois de mars sur la liste de diffusion http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-dev). Pour ce que je me rappelle, la compatibilité mono du flux stéréo est essentielle pour du broadcast.

----------

## xaviermiller

tiens-quelqu'un est-il en amd64 et a-t-il réussi à installer fst ? j'y arrive pas, à moins de passer en chroot 32 bits   :Crying or Very sad: 

----------

## Dominique_71

Je ne contribue plus au forum en français car je me suis fais menacer de bannissement par certains modos qui interprètent le règlement de manière restrictive et qui n'apprécient pas que j'ouvre ma grande gueule sur des sujets politiques. Je n'ai jamais été partisan de la pensée unique, j'ai toujours aimé dire ce que je pense, et ce n'est pas à mon âge que je vais changer. De plus, je n'aime pas perdre mon temps, ce surtout pas avec des fachos. Je n'ai donc rien à faire sur cette partie du forum.

Je vais cependant faire une exception pour ce sujet car il me tient à coeur. Mais ce sera bien le seul sujet auquel je contribuerai !

fst est complètement obsolète. De plus, il ne compile pas sous amd64. Il y a un tout nouveau live ebuild dans l'overlay, mais je ne l'ai pas testé. D'après un rapport sur la liste d'emails de l'overlay, il compile dans un chroot, mais zombifie certains VSTs.

Il faut utiliser dssi-vst à la place, lequel est très facile à router avec qjackctl. Ainsi, le support vst intégré dans Ardour et MusE n'est pas nécessaire.

----------

