OSS

De ArchwikiFR


Sommaire

Introduction

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 inclu dans le noyau et qui a plus de 10 ans maintenant.

Cet article concerne la nouvelle version d'OSS ( souvent appelé 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)

  • Inclu 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èmes.
  • 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.

Désavantages par rapport à ALSA

  • Le support des périphériques USB est encore expérimental sous Linux.
  • 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 ou fluidsynth.
  • La suspension n'est pas encore supportée. Vous avez besoin de décharg er 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

Fichier: /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 :
pacman -S oss
  • 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 remettre 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

Skype

Le paquet skype contient uniquement le support pour ALSA. Pour avoir le paquet compatible avec OSS, installez skype-oss:

pacman -S skype-oss

Si vous utilisez une architecture x86_64, Vous pouvez récupérer le paquet sur l'AUR bin32-skype-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 sont 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.

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

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 daemon 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-mercurial 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 KDE4

Assurez vous d'avoir installer phonon-gstreamer, 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.

Outils personnels
Autres langues