# Open Sound System (Français)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Open Sound System est une architecture sonore commercialement supportée fonctionnant sous divers UNIX-likes et systèmes POSIX (Linux, FreeBSD, Solaris, BeOS/Haiku...).

Merci de prendre note que cet article ne concerne pas l'ancien OSS qui était inclus dans le noyau et qui a plus de 10 ans maintenant.

Cet article concerne la nouvelle version d'OSS (souvent appelée OOSv4). Cette version était précédemment propriétaire - elle est devenue Open Source en Juillet 2007, et est actuellement disponible sous licences GPL, BSD, ou CDDL.

## Avantages et désavantages par rapport à ALSA

### Avantages sur ALSA (pour les utilisateurs)

- Inclus un logiciel transparent de mixage dans le noyau. Cela signifie que de multiples applications peuvent accéder au périphérique audio en même temps sans problème.
- Les contrôles du mixer vmix permettent d'ajuster le volume de chaque application individuellement.
- Meilleur support pour plusieurs modèles de cartes, par exemple la Creative X-Fi.
- La qualité du son est généralement meilleure.
- Évidemment, meilleur support pour les applications écrites pour l'API OSS. L'API OSS est largement diffusée et beaucoup d'applications la supportent. L'API OSS emulation d'ALSA est souvent buggée.

### Avantages sur ALSA (pour les développeurs)

- API plus propre et plus aisée à prendre en main.
- API est vraiment mieux documentée.
- Le support pour les drivers sonores dans l'espace utilisateur (oss_userdev).
- Portabilité croisée pour être supportée par toutes les plates-formes. Si l'application marche en utilisant OSS sous Linux, ça marchera sous FreeBSD et Solaris aussi, par exemple.
- Portabilité croisée à travers les systèmes d'exploitation. C'est donc dire qu'il est plus facile de porter OSS vers un nouveau système d'exploitation.

### Inconvenients par rapport à ALSA

- Le support des périphériques USB est encore expérimental.
- Les périphériques audio Bluetooth ne sont pas encore supportés.
- AC'97 et HDAudio dial-up soft-modems (par exemple Si3055) ne sont pas encore supportés.
- Le support du MIDI n'est pas encore terminé. Toutefois, vous pouvez toujours utiliser MIDI avec un logiciel de synthèse comme timidity[broken link: package not found] ou fluidsynth.
- La mise-en-veille n'est pas encore supportée. Vous avez besoin de décharger OSS (en utilisant `soundoff`) avant de suspendre et de recharger OSS (en utilisant `soundon`) après avoir repris.
- La détection automatique du jack ne marche pas encore proprement avec quelques cartes mères utilisant HDAudio. Cela signifie que, en fonction de votre modèle de carte mère, vous devrez faire manuellement le changement pour éteindre vos enceintes quand vous brancherez vos écouteurs.

## Installation

- Désactiver ALSA en bloquant le module `soundcore`:

    /etc/modprobe.d/alsa_blacklist.conf

    blacklist soundcore

et redémarrer votre machine.

Attention: De fait, si vous souhaitez désinstaller oss et repasser à alsa, n'oubliez pas d'enlever ce fichier et enfin de refaire `mkinitcpio -p linux` (ou de réinstaller le kernel).

Si vous ne voulez pas redémarrer, vous pouvez quitter votre environnement de bureau pour libérer la carte son, et aller dans une console tty pour faire les prochaines étapes.

- Installer OSS en le compilant depuis AUR ( ossAUR )

- Démarrer OSS:

    systemctl start oss

Pour lancer le service au démarrage:

    systemctl enable oss

- Dans le cas où OSS n'est pas capable de détecter votre carte quand il est démarré, lancez :

    ossdetect -v

Enfin:

    soundoff && soundon

pour le réactiver.

## Test

Vous pouvez tester le fonctionnement d'OSS en lançant :

    $ osstest

Note: Par défaut le volume est très élevé. Évitez d'utiliser des écouteurs, ou baissez le volume avec `ossxmix`.

Vous devriez être capable d'entendre la musique durant le processus de test. S'il n'y a pas de son, essayez d'ajuster le mixeur comme expliqué dans la partie correspondante et/ou lisez la partie sur le dépannage.

## Le mixeur

Le mixeur en ligne de commande est appelé `ossmix`. C'est très ressemblant au mixeur audio BSD (`mixerctl`).

Plus amical, le mixeur graphique est également disponible. Il est appelé `ossxmix`. Il a besoin de la dépendance optionnelle `gtk2` pour fonctionner.

Les commandes de `ossxmix` sont expliquées dans l'exemple suivant :

      ______________________________
     / High Definition Audio ALC262 \    ----------------------------------> (1)
    /________________________________\_______________________________
    |
    | [x] vmix0-enable [vmix0-rate: 48.000kHz]      vmix0-channels     \
    |                                               [ Stereo [v] ]      |--> (2)
    |                                                                  /
    |  __codec1______________________________________________________
    | |  _jack_______________________________________________________  \
    | | |  _int-speaker____________________  __green_________________   |
    | | | |                                | |                          |
    | | | |  _mode______   | |             | |  _mode______   | |       |
    | | | | [ mix   [v] ]  o o [x] [ ]mute | | [ mix   [v] ]  o o [x]   |--> (3)
    | | | |                | |             | |                | |       |
    | | | |________________________________| |_______________________   |
    | | |____________________________________________________________   |
    | |______________________________________________________________  /
    |
    | ___vmix0_______________________________________________________  \
    | |  __mocp___  O O   _firefox_  O O  __pcm7___  O O                |
    | | |         | O O  |         | x x |         | O O                |
    | | | | |     | x O  | | |     | x x | | |     | O O                |
    | | | o o [x] | x x  | o o [x] | x x | o o [x] | O O                |--> (4)
    | | | | |     | x x  | | |     | x x | | |     | O O                |
    | | |_________| x x  |_________| x x |_________| O O                |
    | |______________________________________________________________   |
    |________________________________________________________________  /

(1) Un onglet par carte son.

(2) La configuration des commandes spéciales de vim (virtual mixer) apparaissent dans le haut. Cela inclut des échantillons de mixage et des priorités de mixage. Ils sont fournis par OSS.

(3) Tout cela est pour la configuration de votre carte son. Chaque commande du mixeur est fournie par votre carte son. Toutes les commandes spécifiques à votre carte sont visibles ici.

(4) Ici, on peut trouver les commandes du mixeur vmix. Les commandes du mixeur virtuel sont fournies par OSS. Chaque barre correspond au volume d'une application. Quand une application utilise plusieurs cartes sons, son nom est écrit à l'endroit de l'identifiant 'pcm#'.

### Enregistrer et restaurer la configuration par défaut

Si vous voulez sauvegarder votre configuration de mixage manuellement, tapez `savemixer` en console. Vous devez avoir les droits d'écriture dans `/usr/lib/oss/etc/save.mixer` ou utiliser l'option `-f` pour enregistrer votre configuration dans un autre fichier. `savemixer -L` remettra votre ancienne configuration en place.

Les scripts de démarrage exécutent ces mêmes commandes au démarrage de l'ordinateur et lors de sont arrêt. Ainsi, la configuration du mixer est conservée et restaurée à chaque redémarrage. La plupart des utilisateurs n'ont donc pas à s'en faire avec ça.

## Configurer les applications pour OSS

### Wine

- Lancer `winecfg` avec votre utilisateur.

    $ winecfg

- Allez dans l'onglet `Audio`.

- Sélectionnez `OSS Driver`.

### Gajim

Par défaut, Gajim utilise `aplay -q` pour jouer du son. Pour changer ça, allez dans les Options Avancées et cherchez la variable `soundplayer`. Un bon changement d'utilisation de mplayer :

    mplayer -ao oss -really-quiet

### Autres applications

- Si vous ne pouvez récupérer le son d'applications qui ne sont pas listées ici, essayez de chercher dans la page Configuring Applications for OSSv4.
- Cherchez le paquet OSS en utilisant `pacman -Ss -- '-oss'` et dans AUR.

## Dépannage

### Dépannage des périphériques HDAudio

#### Comprendre les raisons du/des problème(s)

Si vous avez un périphérique HDAudio, il est très probable que vous ayez à ajuster certains paramètres du mixeur pour faire fonctionner le son sur votre machine.

Les périphériques HDAudio sont très puissants, car leur circuitrie peuvent être ajustée par logiciel à tout moment. Cela permet, par exemple, de transformer une prise d'entrée audio en une sortie audio.

Malheureusement, il y a certaines conséquences à cela. Les principales raisons étant que les standards HDAudio sont probablement plus flexibles que ce qu'ils devraient être, et les vendeurs ne s'intéresse qu'à leur propre driver.

Alors, lorsque des périphériques HDAudio sont utilisés, il en résulte une désorganisation des contrôles du mixeur (qui, plus souvent qu'autrement, sont disfonctionnels). Il faut donc se résoudre à essayer toutes les combinaisons de contrôles possibles jusqu'à ce que ça fonctionne.

#### Comment régler cela?

Ouvrez `ossxmix` et tentez de changer les contrôles du mixeur dans la section du milieu (qui contiennent les contrôles spécifiques à la carte son, comme vu plus haut).

Vous voudrez probablement lancer un programme qui enregistre/joue du son en arrière-plan lorsque vous modifierez les contrôles du mixeur.

- Montez toutes les barres de volume.
- Pour chaque option à cocher, essayez toutes les valeurs et combinaisons de valeurs possibles.
- Si vous avez du bruit, essayer d'abaisser ou désactiver certains contrôles de volume, afin d'identifier la source du bruit.

Veuillez prendre note que vous n'avez pas à changer les contrôles des sections du haut et du bas du mixeur.

### Autres problèmes possibles

- Si le son est déformé, essayer d'abaisser certains contrôles de volume.

- Si vous devez changer la carte son par défaut, jetez un oeil ici.

- Si vous avez d'autres problèmes, tentez votre chance sur ce forum (en anglais).

## Trucs et astuces

### Utiliser les touches multimédias avec OSS

Un moyen facile de activer/désactiver ou de monter/baisser le volume est d'utiliser le script `ossvol`. Vous le trouverez dans l'AUR.

Une fois installé, tentez d'activer le son:

    $ ossvol -t

Tapez `ossvol -h` pour prendre connaissance des autres commandes.

Si vous ne savez pas comment assigner une commande à une touche multimédia, jetez un oeil à Extra keyboard keys (en).

### Dépannage de `ossvol`

Si vous avez une erreur comme:

    Bad mixer control name(987) 'vol'

vous devez éditer le script (`/usr/bin/ossvol`) et changer la valeur de `CHANNEL` qui se trouve au début du script. Par exemple: `CHANNEL="vmix0-outvol"`.

### Autres astuces

- Démarrer OSS dans la barre de tâches.
- Enregistrer le son produit par un logiciel.

### Suspension et hibernation des portables

OSS ne supporte pas automatiquement la suspension. Il faut donc arrêter OSS avant de suspendre ou hiberner votre portable.

`soundon` et `soundoff` permettent respectivement d'activer et de désactiver OSS, mais tout processus utilisant le son doit être d'abord terminé.

Le script qui suit permet de décharger OSS juste avant la suspension ou l'hibernation et le remet en place par la suite. Il a été testé avec KDE 4.2 seulement.

- Sauvegarder le contenu de ce script (en tant que root) dans `/etc/pm/sleep.d/50ossound`:

    #!/bin/sh
    . "${PM_FUNCTIONS}"

    suspend_osssound()
    {
     /usr/lib/oss/scripts/killprocs.sh
     /usr/sbin/soundoff
    }

    resume_osssound()
    {
     /usr/sbin/soundon
    }

    case "$1" in
     hibernate|suspend)
     suspend_osssound
    	;;
     thaw|resume)
    	resume_osssound
    	;;
     *) exit $NA
    	;;
    esac

Le démon de notification de KDE (qui permet les sons systèmes) se recharger automatiquement après avoir été terminé par OSS.

Note: Ce script est plutôt basique et terminera toutes les applications reliées à OSS, pensez à sauvegarder votre travail avant la suspension ou l'hibernation.

## Émulation d'ALSA

### Introduction

Vous pouvez indiquer à `alsa-lib` d'utiliser OSS comme sortie audio du système. C'est une sorte d'émulation d'ALSA.

Notez, cependant, que cette méthode peut introduire de la latence sur votre son et que cette émulation n'est pas complète et qu'elle ne fonctionne pas avec tous les programmes. Par exemple, elle ne fonctionne pas avec les programmes tentant de découvrir des périphériques audio en utilisant ALSA.

Donc, la majorité des applications supportant OSS, n'utilisez cette méthode qu'en dernière tentative.

Dans le futur, des méthodes plus complètes verront le jour pour émuler ALSA, comme `libsalsa` et `cuckoo`.

### Comment faire

- Installez le paquet `alsa-plugins`.

    pacman -S alsa-plugins

- Editez `/etc/asound.conf` comme suit:

    pcm.oss {
       type oss
        device /dev/dsp
    }

    pcm.!default {
        type oss
        device /dev/dsp
    }

    ctl.oss {
        type oss
        device /dev/mixer
    }

    ctl.!default {
        type oss
        device /dev/mixer
    }

Note: Si vous ne souhaitez plus utiliser OSS, n'oubliez pas de convertir les changements que vous faites ici dans `/etc/asound.conf`.

## Paquets expérimentaux

### Le dépôt de version Mercurial

Il y a un paquet oss-mercurialAUR[broken link: package not found] dans l'AUR. Ce paquet compile et installe les dernières versions de développement du dépôt Mercury.

Vous pouvez essayer ce paquet si vous désirez contribuer du code au projet OSS ou si vous avez besoin de changements récemment introduits dans le code.

## OSS et KDE

Assurez vous d'avoir installer phonon-gstreamer[broken link: package not found], puis dans Systemsettings -> Multimedia, sélectionnez GStreamer pour activer le son dans KDE.

Garder en tête que kmix n'a pas de contrôles pour le volume des applications, vous devez donc utiliser `ossxmix` pour cela.

Category:

- Sound (Français)

Hidden category:

- Pages with broken package links