<!doctype linuxdoc system>

<article>

<title>Le Linux Sound-HOWTO

<author>Jeff Tranter, <htmlurl url="mailto:tranter@pobox.com"
name="tranter@pobox.com">, traduction française de 
Gaël Duval (version 1.18) <htmlurl url="mailto:gael@linuxmandrake.com"
name="gael@linuxmandrake.com">
<date>v1.19, 23 janvier 1998 - mis à jour en décembre 1998.

<abstract>
Ce document décrit comment le son est géré par
Linux. Il énumère les différents matériels supportés,
décrit comment configurer les
pilotes dans le noyau, et répond aux questions les plus
fréquentes. Son but est de permettre aux nouveaux utilisateurs de
profiter du son rapidement, et de désengorger le trafic Usenet.
</abstract>

<toc>

<sect>Introduction<p>

Ceci est le document Linux Sound-HOWTO. Il est conçu pour être une référence
rapide couvrant tout ce que vous devez savoir pour installer et
configurer les fonctions sonores de Linux. Des réponses sont données aux
questions les plus fréquentes à propos du son sous Linux, et des références
à d'autres informations sur le son et la musique de synthèse sont
mentionnées.

L'étude se limite aux aspects des cartes son qui concernent
Linux. Pour des informations plus générales sur les cartes,
la musique et le son, consultez la section <em>Autres sources
d'information</em>.

<sect1>Remerciements<p>

Beaucoup de ces informations proviennent des fichiers <tt>Readme</tt>
(`lisez-moi') provenant de la documentation fournie avec le code source
du pilote son, écrit par Hannu Savolainen
(<tt>hannu@voxware.pp.fi</tt>). Que Hannu et les nombreuses autres personnes
ayant participé au développement des pilotes son du noyau Linux et des
utilitaires associés soient donc remerciés.

Merci au paquetage Linuxdoc-SGML de Matt Welsh, qui permet à
ce HOWTO d'être disponible sous différents formats,
émanants tous d'un même fichier source.

<sect1>Versions antérieures<p>

<descrip>
<tag>Version 1.1</tag>première version; postée uniquement dans le canal SOUND
de la `linux activists mailing list' (`liste de diffusion des activistes Linux').
<tag>Version 1.2</tag>corrections mineures; première version disponible sur
les sites d'archives.
<tag>Version 1.3</tag>conversion au format SGML ; maintenant disponible
sous plusieurs formats, gr&acirc;ce aux outils Linuxdoc-SGML de Matt Welsh; la
présentation a changé à cause du nouveau format, mais peu de changements
sur le fond.
<tag>Version 1.4</tag>petites modifications de SGML; ajout de réponses à
propos des incompatibilités entre la PAS16 et la carte SCSI
Adaptec1542A.
<tag>Version 1.5</tag>le pilote son 2.5a est maintenant dans la
distribution du noyau 1.1; note sur le support GUS-MAX; quelques petites
corrections.
<tag>Version 1.6</tag>ajout d'information sur l'erreur <sq>no space on
device</sq> ;
notez que le Hacker's Guide est dans un répertoire caché ; ajout de questions
à propos du mode bidirectionnel ; informations sur les erreurs
<sq>device busy</sq> ;
corrections diverses.

<tag>Version 1.7</tag>ajout d'informations sur l'ASP et l'AWE32; VoxWare 2.9 est disponible;
réponses aux questions concernant l'utilisation de l'IRQ 2; liens vers les Sound-HOWTO et SCSI HOWTO.

<tag>Version 1.8</tag>ajout d'une question à propos d'erreurs survenant sous DOS; 
plusieurs points réactualisé pour la version 2.90 du pilote son; informations
concernant DOOM; réponse sur la réduction du bruit.

<tag>Version 1.9</tag>questions concernant l'enregistrement et les cartes compatibles.

<tag>Version 1.10</tag>disponibilité de l'HOWTO sur le web, sous diverses
formes et traduites; informations concernant les conflits de DMA avec le pilote
de sauvegarde QIC; informations concernant la Sound Galaxy NX Pro et la BusMouse
Logitech.

<tag>Version 1.11</tag>une mise à jour tardive; document mis sous licence
GPL; mise à jour avec la version 3.0 du pilote son; informations concernant 
toutes les nouvelles cartes supportées; nouvelles informations sur la configuration
et les problèmes rencontrés; beaucoup de nouveaux liens HTML ajoutés;
mise à disposition en ligne au format du CD-ROM HOWTO.

<tag>Version 1.12</tag>nouveaux pilotes son du noyau 1.3.34; nouveaux noms pour
les fichiers de périphérique son; l'adresse de base pour la 1542 n'est pas 333 mais 334; clarification du statut de la Creative Labs Emu et de l'ASP; pointeurs vers les sites web de Creative Labs et MediaTrix. 

<tag>Version 1.13</tag>précision sur le nom VoxWare; mise à jour
en fonctions des dernières cartes supportées et des options de
configuration; questions sur le support Plug and Play; question sur le problème
de la taille du block; nouvelles options pour xconfig et menuconfig; modutils a un
support de fichier de périphérique sonore; fin de la liste de diffusion vger; mise à jour du
site web de l'auteur; autres changements divers et variés.

<tag>Version 1.14</tag>l'Audio Excel DSP16 n'est plus supportée (mais
devrait refonctionner dans quelques mois); changements pour le programme configure;
la version italienne de ce HOWTO est disponible; astuce pour r&eacute;gler les gains
du mixer au chargement du module son; la derniere version stable du noyau est
maintenant 2.0; nouveau nom pour le pilote son; question concernant les droits
des fichiers de périphérique son.

<tag>Version 1.15</tag>suppresion d'anciennes questions devenues obsolètes;
nouvelle adresse email pour l'auteur; mise à jour des liens pour y inclure
les derniers packages de logiciels disponibles; plus d'informations sur le livre
du multimédia; petites corrections grammaticales.

<tag>Version 1.16</tag>beaucoup de mises à jour et de corrections proposées
par Hannu Savolainen; ajout d'une "date limite de consommation" de six mois pour
ce document; nouveaux liens vers des pages web; ajout d'un lien sur la traduction
espagnole; petites corrections grammaticales.

<tag>Version 1.17</tag>la traduction chinoise de ce document est disponible; un
pilote alternatif pour la GUS; le package radio modem; le guide Linux Multimedia
est desormais disponible en Français et en Japonais; références
à des mini-HOWTOs utiles; pointeur pour le Thinkpad IBM.

<tag>Version 1.18</tag>la traduction coréenne est disponible; plus d'informations concernant le son et les MIPS; mise à jour sur le support de nouvelles cartes son;
il faut lancer fuser en tant que root.

<tag>Version 1.19</tag>cette nouvelle version est publiée selon la licence LDP plutot que GPL.

</descrip>

<sect1>Nouvelles versions de ce document<p>

Les nouvelles versions de ce document seront périodiquement postées dans le
groupe <htmlurl url="news:fr.comp.os.linux.annonces" name="fr.comp.os.linux.annonces">.
Elles seront aussi envoyées à divers
sites ftp qui archivent ce genre d'informations, notamment :
<url url="ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO/"> (version française) et
<url url="ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/"> (version originale).

Des versions hypertexte de ce document ainsi que des autres HOWTOs pour Linux sont
disponibles sur un grand nombre de sites web dont <url
url="http://sunsite.unc.edu/LDP/">. La plupart des distributions Linux sur CD-ROM
contiennent les HOWTOs, souvent dans le répertoire <file>/usr/doc</file> et il est
possible d'en acheter des versions imprimées chez plusieurs revendeurs
spécialisés. Parfois, les HOWTOs disponibles sur CD-ROM, sur les sites
FTP et dans les version imprimées sont dépassés. Si le 
HOWTO a plus de six mois, alors une nouvelle version est certainement disponible
sur Internet. 

<sect1>Retour d'informations...<p>

Si vous avez des suggestions, des corrections, ou des commentaires à
apporter à ce HOWTO, merci de bien vouloir me les envoyer
(<htmlurl url="mailto:tranter@pobox.com" name="tranter@pobox.com">), et
j'essaierai de les inclure dans la version suivante.

J'essaie également de répondre aux questions concernant les cartes
son sous Linux dans la mesure du possible. Avant de poser directement une question,
merci de lire toutes les informations contenues dans ce HOWTO, et envoyez-moi une
description détaillée du problème. Merci de ne pas me poser
de questions quant à l'utilisation des cartes son avec d'autres systèmes
d'exploitation que Linux.


Si vous publiez ce document sur CD-ROM ou sous forme imprimée, j'apprécierais
d'en recevoir une copie (n.d.t.: le traducteur aussi :-) ). Envoyez-moi un email pour que je vous
communique mon adresse postale. Pensez également à contribuer au Linux Documentation Project pour
supporter la documentation libre de Linux. Pour plus
d'informations, contactez le coordinateur des HOWTOs LINUX, Tim Bynum
<url url="mailto:linux-howto@sunsite.unc.edu">.

<sect1>Ce document : politique de distribution<p>

Copyright 1995-1997 Jeff Tranter.

Traduction française 1998 Gaël Duval.

Ce document est distribuable selon les termes de la licence LDP que l'on peut consulter à <url url="http://sunsite.unc.edu/LDP/COPYRIGHT.html">.

<sect>La technologie des cartes-son<p>

Cette partie vous donne un petit aperçu des <idx>techniques 
audio employées en informatique</idx>, cela pour vous aider à comprendre
certains concepts dont on parlera dans la suite de ce document. Pour en savoir plus,
vous pouvez consulter certains livres traitant d'audio-numérique
ou de traitement du signal numérique...

Le son est un phénomène analogique; il se traduit par une valeur
quelconque sur une &eacute;chelle continue. Les ordinateurs fonctionnent de manière
<em>numérique</em>; c'est-à-dire qu'ils utilisent des valeurs
discrètes. Les cartes-son utilisent un composant appelé 
<em>Convertisseur Analogique-Numérique</em> (A/N ou ADC en anglais) afin
de convertir les tensions correspondantes aux ondes sonores analogiques en valeurs
numériques qui peuvent alors être stockées dans
la mémoire de l'ordinateur. De même, un <em>Convertisseur
Numérique-Analogique</em> (N/A ou DAC en anglais) convertit les
valeurs numériques en une tension analogique qui peut alors être
amplifiée pour "attaquer" un haut-parleur et produire du son... 

La <idx>conversion analogique-numérique</idx> (&eacute;chantillonage ou "sampling"
en anglais) génère des erreurs. Deux facteurs déterminent
la qualité du signal echantilloné par rapport au signal initial.
Tout d'abord, la <em>fréquence d'échantillonage</em> est le nombre
d'échantillons réalisés par unité de temps (exprimée
en Hertz). Une petite <idx>fréquence d'échantillonage</idx> produira une
représentation moins fine du signal analogique d'origine, dans le sens
o&ugrave; les fréquences aigues ne seront pas ou mal restituées.
(ndt : la théorie nous enseigne que pour restituer correctement une
fréquence sonore de n Hz, il faut effectuer un échantillonage
au moins égal à 2 x n Hz. Ainsi, l'étendue du spectre sonore audible par un humain
(0 à 20000 Hz) sera bien restituée par un échantillonage
à 44100 Hz (norme CD-AUDIO) ). 
Le nombre de bits d'échantillonage conditionne l'étendue
des valeurs utilisables pour représenter chaque échantillon,
qui conditionne elle-même la plage dynamique de restitution.
(ndt : il s'agit du rapport entre le niveau sonore
le plus fort restituable sans distortion, et le niveau de souffle ou de bruit inhérent
au matériel de restitution. Cette plage dynamique est exprimée de
mani&egrave;re logarithmique
en decibels (dB). En théorie, lorsque l'on ajoute un
nouveau bit de codage pour chaque &eacute;chantillon, on double cette plage,
ce qui correspond &agrave; un gain en dynamique de 6 dB :-) ) 

Les cartes son utilisent typiquement un codage sur 8 ou 16 bits (ndt : et parfois 24),
pour des fréquences d'échantillonage allant de 4000 à
44100 (ndt : ou 48000 Hz). L'&eacute;chantillonage pouvant être réalisé
sur une voie (mono) ou deux (stéréo) (ndt : et plus
(8, 16...) pour des cartes professionnelles). 
 
La <em><idx>synthèse FM</idx></em> est une ancienne méthode utilisée
pour produire des sons. Son principe consiste en la combinaison de plusieurs
ondes de formes différentes (ex : sinusoïdales, triangulaires, 
carrées). Ce procédé est plus simple à 
implémenter au niveau "hardware" que la conversion analogique-numérique
mais son utilisation est plus compliqué (au niveau programmation).
Beaucoup de cartes son supportent la <idx>synthèse FM</idx> afin de
rester compatibles avec des cartes ou programmes plus anciens.
Plusieurs générateurs sonores différents sont
habituellement fournis.

La <em><idx>synthèse par table d'&eacute;chantillons sonores</idx></em> ou <em><idx>wavetables</idx></em> associe la
flexibilité de la conversion A/N avec les possibilités multivoies
de la synthèse FM. Avec ce procédé, des sons digitalisés/numérisés
peuvent être chargés dans une mémoire dédiée
puis rejoués, combinés, et modifiés en sollicitant
peu le microprocesseur de la machine. Toutes les cartes son actuelles supportent
la synthèse par tables d'&eacute;chantillons sonores.

La plupart des cartes offrent également la possibilité de <em>mixage</em>,
en combinant les signaux provenant des différentes sources avec des niveaux
différents.

Le terme <em><idx>MIDI</idx></em> signifie : Musical Instrument Digital Interface
soit : interface numérique pour instruments musicaux en fran&ccedil;ais. Ce protocole
matériel et logiciel standard permet aux "instruments &eacute;lectroniques" 
de communiquer entre eux. Les évènements envoyés dans
un bus MIDI peuvent aussi être mémorisés dans des fichiers
MIDI. Cela permet de les éditer ultèrieurement et de les rejouer.
Beaucoup de cartes son possèdent une interface MIDI. Celles qui n'en n'ont
pas peuvent quand même jouer des fichier MIDI.

Les fichiers <em><idx>MOD</idx></em> sont un format courant pour les sons générés
par ordinateur. En plus des informations relatives aux notes devant être 
jouées, ces fichiers contiennent des &eacute;chantillons d'instruments ou
de voix digitalisées. Les fichiers MOD proviennent du monde Amiga, mais
peuvent être joués par d'autres syst&egrave;mes - dont Linux - en
utilisant des logiciels appropriés.

<sect>Matériel supporté<p>

Cette partie r&eacute;pertorie les <idx>cartes son</idx> et interfaces qui sont supportées
par les derniers noyaux Linux à la date o&ugrave; ce document
a &eacute;t&eacute; rédigé.

Les différentes versions des pilotes son ont leur propre numérotation.
La dernière version stable du noyau Linux est à ce jour la 2.0.33
pour une version 3.5.4-960630 du pilote son. 

Le concepteur de ce pilote, Hannu Savolainen, en rend souvent publiques les nouvelles
versions beta avant qu'elles ne deviennent parties intégrantes du noyau Linux.
La liste la plus actualisée des cartes supportées se trouve sur :
<url url="http://www.4front-tech.com/ossfree/new&lowbar;cards.html"> (USA) ou
<url url="http://personal.eunet.fi/pp/voxware/new&lowbar;cards.html">
(Europe). Ces pages indiquent quel pilote est nécessaire pour tel
type de carte, ou si son support est encore en développement. Le fichier
<file>/usr/src/linux/drivers/sound/Readme.cards</file> distribué avec
le noyau Linux contient des informations sur les cartes supportées mais
n'est pas forcément à jour.

Les informations contenues dans ce HOWTO sont valables pour Linux tournant sur
un processeur compatible Intel x86.

Le pilote son devrait également fonctionner avec la plupart des cartes son
disponibles pour les plateformes <idx>Alpha</idx>. Néanmoins, il peut dans ce cas exister
des conflits d'adresses avec d'autres périphériques, même si la
carte fonctionne parfaitement sur une machine à base de x86. Il n'est donc
généralement pas possible de dire si telle ou telle carte va fonctionner
sans l'essayer.

A l'heure o&ugrave; ces lignes ont été rédigées, le 
pilote son ne fonctionnait pas encore sur la version <idx>PowerPC</idx> de Linux. Mais cela
devrait fonctionner dans l'avenir.

On peut configurer le son dans le noyau pour Linux porté sur
MIPs, et certaines machines <idx>MIPs</idx> possèdent des slots EISA et/ou des
circuits-son intégrés dans la machine. On m'a dit que le groupe
Linux-MIPs souhaitait intégrer un support son dans le futur.

Le noyau Linux contient un pilote-son particulier pour les versions Atari
et Amiga de Linux qui implémente une compatibilité d'instructions
avec le pilote son des machines x86, ceci en utilisant les possibilités
matérielles natives de ces machines.

Le portage de Linux pour <idx>SPARC</idx> n'inclue pas encore de support du son. De la même
façon que pour les Amiga et les Atari, les machines SPARC possèdent des
possibilités sonores intégrées à la machine. Il faudrait
donc un pilote spécifique (ce qui est rigolo, car sous Linux, <file>/dev/dsp</file>
est une émulation du pilote son de SunOS !).

<sect1>Les cartes son<p>

Les <idx>cartes son</idx> suivantes sont supportées par le pilote
son du noyau linux :

<itemize>
<item>ATI Stereo F/X (n'est plus fabriqu&eacute;)
<item>AdLib (n'est plus fabriqu&eacute;)
<item>Ensoniq SoundScape (et compatibles fabriqu&eacute;es par Reveal and Spea)
<item>Gravis Ultrasound
<item>Gravis Ultrasound ACE
<item>Gravis Ultrasound Max
<item>Gravis Ultrasound avec &eacute;chantillonage sur 16 bits
<item>Logitech Sound Man 16
<item>Logitech SoundMan Games
<item>Logitech SoundMan Wave
<item>MAD16 Pro (chipsets OPTi 82C928, 82C929, 82C930, 82C924)
<item>Media Vision Jazz16
<item>MediaTriX AudioTriX Pro
<item>Microsoft Windows Sound System (MSS/WSS)
<item>Mozart (OAK OTI-601)
<item>Orchid SW32
<item>Personal Sound System (PSS)
<item>Pro Audio Spectrum 16
<item>Pro Audio Studio 16
<item>Pro Sonic 16
<item>Roland MPU-401 interface MIDI
<item>Sound Blaster 1.0 
<item>Sound Blaster 16
<item>Sound Blaster 16ASP
<item>Sound Blaster 2.0
<item>Sound Blaster AWE32
<item>Sound Blaster Pro
<item>TI TM4000M notebook
<item>ThunderBoard
<item>Turtle Beach Tropez ("classic", pas la "Plus")
<item>Turtle Beach Maui
<item>Yamaha FM synthesizers (OPL2, OPL3 et OPL4)
<item>6850 UART MIDI Interface
</itemize>

Notez bien que les cartes <idx>Plug and Play</idx> (<idx>PnP</idx>) ne sont pas entièrement
compatibles avec les modèles non-PnP de la même carte. Par exemple,
la SoundBlaster16 PnP n'est pas compatible à 100% avec la SoundBlaster16
originelle. Il en va de même pour les Soundscape et les GUS PnP. On trouvera
plus d'informations à ce sujet dans la suite de ce document.

Les cartes suivantes ne sont <em>pas</em> supportées, soit parce qu'elles
sont dépassées, soit parce que le constructeur ne souhaite pas
communiquer la totalité des spécifications techniques nécessaires
pour écrire le pilote concerné.

<itemize>
<item>Pro Audio Spectrum (originelle)
<item>Pro Audio Spectrum+ 
<item>anciennes cartes (Sierra Aria based)fabriqu&eacute;es par Diamond
</itemize>

Les autres cartes qui sont annoncées comme étant compatibles avec
une des cartes supportées vues plus haut <em>peuvent</em> fonctionner
à condition qu'elles soient réellement compatibles au
niveau matériel (c'est-à-dire, au niveau des registres).

Même si la plupart des cartes son sont dites "compatibles SoundBlaster",
un très petit nombre le sont suffisament pour fonctionner avec le pilote
SoundBlaster de Linux. Ces cartes fonctionnent habituellement mieux en utilisant
les pilotes MSS/WSS ou MAD16. Seules les véritables cartes SoundBlaster
fabriquées par Creative Labs et qui utilisent les puces Creative
(comme la SoundBlaster16 Vibra), la MV Jazz16 et les cartes basées sur 
l'ESS688/1688 fonctionnent en général avec le pilote SoundBlaster. 
Tenter d'utiliser une "carte son SoundBlaster Pro compatible 16 bits" avec le
pilote de périphérique SoundBlaster est en général
une perte de temps.

Le noyau Linux supporte les ports SCSI présents sur quelques
cartes son (par exemple, sur la SoundBlaster16 Vibra) et les interfaces
propriétaires pour un certain nombre de lecteurs de CD-ROM (par
exemple, sur la Soundblaster Pro). Voyez à ce propos le <htmlurl
url="http://sunsite.unc.edu/LDP/HOWTO/SCSI-HOWTO.html" name="SCSI
HOWTO"> et le <htmlurl url="http://sunsite.unc.edu/LDP/HOWTO/CDROM-HOWTO.html" name="CDROM
HOWTO"> pour plus d'informations.

Un module chargeable du noyau supportant les ports <idx>joystick</idx> (dont certains
fournis avec certaines cartes son) est également disponible.

Notez que les pilotes de périphérique SCSI, CD-ROM, joystick
et son du noyau sont complètement indépendants les uns des
autres.

Pour des informations à jour sur les pilotes son, consulter
le site Web de Hannu Savolainen (qui est mentionné dans la liste des
références).

<sect1>Des pilotes son alternatifs<p>

Il y a des pilotes "non officiels" disponibles. Ils font pas partie de
la distribution standard du noyau Linux et sont utilisés à
la place du pilote son normal.

Une version commerciale du pilote son est vendue par <idx>4Front Technologies</idx>.
Elle offre un grand nombre de caractéristiques supplémentaires
par rapport à la version libre fournie dans le noyau Linux. Pour en
savoir plus, consulter la page Web de 4Front Technologies sur <url url="http://www.4front-tech.com/">.

Markus Mummert (<htmlurl url="mailto:mum@mmk.e-technik.tu-muenchen.de"
name="mum@mmk.e-technik.tu-muenchen.de">) a conçu un pilote son pour
les cartes son Turtle Beach Multisound (classic),  Tahiti et Monterey. La
documentation précise : 

<quote>
"ce pilote a été conçu pour de l'enregistrement/
lecture sur disque-dur sans perte de synchronisation, même sur un 
syst&egrave;me chargé. Les autres fonctionalités, comme la
synthèse sonore par table d'échantillons, le MIDI et l'utilisation
des DSP (Digital Signal Processor = Processeurs de Signaux Numériques)
ne peuvent pas être utilisées. De même, l'enregistrement
et la lecture simultanés ne sont pas possibles. Il remplace
actuellement VoxWare et a été testé pour plusieurs
noyaux, de la version 1.0.9 à la 1.2.1. On peut également
l'installer sur les syst&egrave;mes UN*X SysV386R3.2."
</quote>

On peut le trouver sur <url url="http://www.cs.colorado.edu/~mccreary/tbeach">.

Kim Burgaard (<htmlurl url="mailto:burgaard@daimi.aau.dk"
name="burgaard@daimi.aau.dk">) a écrit un pilote son et des
utilitaires pour l'interface MIDI MPU-401. Le fichier relatif à
Linux donne cette description :

<quote>
"Un pilote pour véritable interface <idx>MIDI</idx> compatible
Roland MPU-401 (incluant la SCC-1 et la RAP-10/ATW-10 Roland).
Fourni avec un ensemble d'utilitaires, dont un lecteur/enregistreur
pour fichiers MIDI standards."
</quote>

<quote>
"Beaucoup d'améliorations ont été réalisées
depuis la version 0.11a. Entre autres, le pilote respecte la politique
de partage des IRQ et la nouvelle interface des modules du noyau. Une fonction
de métronome, des possibilités de synchronisation - par exemple
des images en fonction d'un battement sans perte de précision, une
interface avancée de relecture/enregistrement/overdub (lecture et
enregistrement simultanés) et beaucoup plus encore."
</quote>

On peut le trouver sur <url
url="ftp://sunsite.unc.edu/pub/Linux/kernel/sound/mpu401-0.2.tar.gz">.

Jaroslav Kysela et d'autres ont également conçu un pilote 
alternatif pour la Gravis UltraSound. Consulter la page <url
url="http://romeo.pf.jcu.cz/~perex/ultra"> du projet Linux
UltraSound pour plus d'infos.

Une autre utilisation des cartes son sous Linux consiste à s'en
servir comme modem pour la <idx>radio-amateur par paquets</idx>. Les versions récente
2.1.x (attention, version de <em>développement</em> !) contiennent un
pilote qui fonctionne avec les cartes compatibles SoundBlaster et Windows
Sound System pour pouvoir utiliser les protocoles paquets AFSK 1200 bps et
FSK 9600 bps. Voyez le HOWTO AX25 pour plus de détails (je suis
moi-même radio-amateur avec VE3ICH comme indicatif !).

<sect1>Le haut-parleur du PC<p>

Un autre pilote son est également disponible, qui ne
nécessite pas de carte son : il utilise le
<idx>haut-parleur PC</idx>. Il est compatible au
niveau logiciel avec le pilote de cartes son, mais, comme on
peut s'y attendre, il produit un son de moins bonne qualité
et nécessite plus de ressources CPU. Les résultats
semblent être assez inégaux, et dépendent  des
caract&eacute;ristiques du haut-parleur interne. Pour de plus
amples informations, consultez la documentation fournie avec
ce pilote.

La version actuelle est 1.1 et peut-être trouvée
sur <url url="ftp://ftp.informatik.hu-berlin.de/pub/os/linux/hu-sound/">

<sect1>Le port parallèle<p>

Une autre option consiste à fabriquer un convertisseur
numérique-analogique en utilisant le port parallèle
(pour imprimante ou autre extensions). Cette solution produit
un son de meilleur qualité qu'avec le haut-parleur du PC,
mais sollicite également beaucoup la CPU. Le paquetage
du pilote pour haut-parleur mentionné ci-dessus supporte
cette fonction et contient les instructions pour construire
le matériel adéquat.

<sect>L'installation<p>

La configuration du support son sous Linux doit se faire selon les
étapes suivantes :

<enum>
<item>Installation de la carte son.
<item>Configuration et recompilation du noyau avec le support son.
<item>Création des fichiers "device" (fichiers spéciaux associés. 
au périphérique : /dev/...).
<item>Redémarrage de la machine et tests d'installation.
</enum>

Dans la suite sont explicitées toutes ces étapes.

<sect1>L'installation de la carte son<p>

Suivez les instructions du fabriquant pour l'installation matérielle
ou confiez-la à votre revendeur.

Les vieilles cartes-son ont souvent des petits interrupteurs appelés <idx>cavaliers</idx>
("switch" ou "jumper") permettant de configurer les adresses IRQ (Interrupt 
ReQuest = requête d'interruption ), DMA (Direct Memory
Access =  bus de transfert direct des données),
les canaux, etc. Si vous n'&ecirc;tes pas certain, utilisez les réglages
d'usine. Essayez d'éviter les conflits avec d'autres 
prériphériques (comme les cartes ethernet, les cartes
SCSI, les ports série et parallèle). 

Normalement, vous devrez utiliser les mêmes adresses d'E/S, d'IRQ
et de DMA que celles fonctionnant sous DOS. Cependant, dans certains
cas (en particulier avec les cartes PnP) vous aurez peut-être besoin
d'un réglage particulier pour que cela fonctionne avec Linux.
Il faudra peut-être faire quelques essais.

<sect1>La configuration du noyau<p>

Quand vous avez installé Linux, vous avez certainement
utilisé un noyau précompilé. Généralement,
ces noyaux ne fournissent pas de support son. Il vous faut donc recompiler
votre noyau en fonction des périphériques que vous possédez.
Vous devez également recompiler le noyau lorsque vous passez
à une de ses nouvelles versions ou afin de libérer de la
mémoire en réduisant sa taille (ndt : par l'utilisation
des modules).

Consultez le <url url="http://sunsite.unc.edu/LDP/HOWTO/Kernel-HOWTO.html"
name="Linux Kernel HOWTO">  pour recompiler le noyau (ndt : c'est très
simple à faire). Je ne vais parler ici que des points qui sont
spécifiques aux cartes son. 

Si vous n'avez jamais configuré le noyau pour le support son, il
peut être utile de lire <em>tous</em> les fichiers Readme fournis
avec les pilotes son du noyau, et en paticulier les informations spécifiques
à votre carte-son. La documentation suivant peut-être trouvée
dans le répertoire des pilotes son du noyau Linux. Il se trouve 
en général dans <file>/usr/src/linux/drivers/sound</file> :

<verb>
CHANGELOG         - description des modifications pour chaque version
COPYING           - droit et restrictions de duplication
Readme            - informations récentes et importantes
Readme.aedsp16    - à propos de la carte Audio Excel 16 DSP 
Readme.cards      - précisions sur la configuration de cartes spécifiques
Readme.linux      - précisions sur l'installation de pilotes son non inclus dans le noyau 
Readme.modules    - comment compiler le pilote en un module chargeable
Readme.v30        - nouvelles possibilitées dans la version 3.0 du pilote son
experimental.txt  - à propos des caractéristiques expérimentales
</verb>

Suivez tout d'abord la procédure habituelle pour compiler le
noyau. Il existe actuellement trois interfaces disponibles pour
la procédure de configuration. Une interface graphique sous
X11 peut être lancée par "make xconfig". Une interface
à base de menus texte est disponible en tapant "make menuconfig".
Enfin, la méthode originelle, en utilisant "make config" propose
une interface uniquement à base de texte.

Il faut faire particulièrement attention en utilisant "make xconfig"
ou "make menuconfig". En effet, les choix par défaut sont toujours
positionnés sur "No", ce qui n'est pas correct dans tous les cas.
En particulier, l'option "/dev/dsp and /dev/audio support" (CONFIG_AUDIO) 
doit habituellement être validée.

Dans ce document, je suppose que vous utilisez la procédure traditionnelle en
mode texte : "make config". Néanmoins, la
procédure est identique dans les autres cas.

Il y a également deux autres manières de configurer le
son. La première est l'"ancienne" façon (la seule disponible
pour les noyaux 2.0.0). Elle utilise un programme de configuration séparé
qui fait partie du pilote son. Cette méthode fonctionne pour la plupart
des cartes, exceptées quelques unes qui nécessitent des
pilotes additionnels "bas niveau" (miroSOUND, AWE32, et AEDSP16).

La seconde méthode (la "nouvelle") est mieux intégrée 
à la configuration par menus texte utilisée pour le reste
du noyau. Elle ne fonctionne pas pour les cartes qui ont besoin d'un fichier
constructeur téléchargeable. Ceci concerne les cartes
PSS, SM Wave, AudioTrix Pro et TurtleBeach Tropez/Maui. Avec ces cartes, on
utilisera la vieille procédure.

La "nouvelle" méthode est toujours utilisée en faisant
"make xconfig". Quand on utilise "make menuconfig", on peut choisir 
entre les deux méthodes. En faisant "make config", vous aurez
la vieille méthode par défaut. Mais si vous avez déjà
utilisé la nouvelle méthode, ce sera celle utilisée par
"make config" ! Vous pouvez resélectionner l'ancienne en lançant
"make menuconfig" et en la sélectionnant.

La méthode recommendée est l'utilisation de "make menuconfig"
avec l'ancienne méthode de configuration. Beaucoup de problèmes
de configuration du son proviennent (au moins en partie) de l'utilisation 
de la nouvelle méthode. 

Il est également possible de compiler le pilote de son en tant que
module chargeable. Je vous recommande de le compiler initialement en statique,
dans le noyau. Une fois que cela fonctionne et que vous l'aurez
testé, vous pourrez essayer de le compiler en module.

Quand vous lancez <tt>make config</tt>, validez le support son en
répondant "y" à la question :

<tscreen><verb>
Sound card support (CONFIG_SOUND) [M/n/y/?]
</verb></tscreen>

A la fin des questions de configuration, un programme sera compilé
et exécuté et vous demandera alors quelles sont les options
pour votre carte son. Attention en répondant à ces questions,
car une réponse erronée pour une option peut empêcher 
d'autres questions suivantes d'être posées. Par exemple, 
ne répondez "yes" à la première question (PAS 16)
que si vous n'avez réellement pas de carte PAS 16. De m&ecirc;me,
n'activez pas plus d'options que celles dont vous avez réellement 
besoin car cela consomme de la mémoire !
Certains pilotes (comme celui du MPU-401) peuvent
également entrer en conflit avec votre controleur SCSI et empêcher
le noyau de "booter".

Voici une liste de toutes les options de configuration. Répondez "y" (oui)
ou "n" (non) à chaque question. La réponse par défaut est
affichée en lettre majuscule telle que : "[Y/n/?]" signifie "y" par défaut et
vice versa. Pour valider la valeur par défaut, appuyez juste sur Enter,
tout en sachant que cette valeur par défaut n'est pas forcément
correcte.

Si vous rentrez "?", vous aurez un court message d'explication sur l'option
présente. 

Notez également que toutes les options ne sont pas demandées. Le
programme de configuration désactive certaines questions en fonction des
choix précedemment validés. Il peut également sélectionner
automatiquement certaines options.

<descrip>

<tag>Old configuration exists in /etc/soundconf. Use it [Y/n/?]</tag>

Si vous avez précedemment compilé le noyau pour le support
son, la configuration précédente a pu être sauvegardé.
Si vous souhaitez utiliser cette ancienne configuration, alors entrez "y". Si vous
essayez une configuration différente ou si vous utilisez une nouvelle version
du noyau, répondez "n" pour commencer la configuration.

<tag>ProAudioSpectrum 16 support [Y/n/?]</tag>

Répondez "y" <em>uniquement</em> si vous possédez une
Pro Audio Spectrum <em>16</em>, une ProAudio Studio 16 ou une Logitech SoundMan 16. 
Ne répondez pas "y" si vous avez une autre carte de chez Media Vision ou 
Logitech car elle ne sera pas compatible PAS16.

<tag>SoundBlaster support [Y/n/?]</tag>

Répondez "y" si vous avez une carte SoundBlaster de chez
Creative Labs, ou une carte compatible à 100% au niveau 
matériel (comme la Thunderboard ou la SM Games). Si votre
carte est dans la liste des cartes supportées, consultez le fichier
<file>Readme.cards</file> des cartes spécifiques avant de répondre
à cette question. Pour une carte inconnue, essayez "y" si cette carte
se dit être compatible SoundBlaster.

<tag>Gravis Ultrasound support [Y/n/?]</tag>

Répondez "y" si vous avez une GUS ou une GUS MAX.
Répondez "n" si vous n'avez pas de GUS car ce pilote
utilise beaucoup de mémoire.

<tag>MPU-401 support (NOT for SB16) [Y/n/?]</tag>

Attention avec cette question. L'interface MPU-401 est supportée
par presque toutes les cartes son. Néanmoins, quelques cartes
supportées possèdent leur propre pilote MPU-401. Si
vous validez l'option dans ce cas là, vous aurez un conflit. La
validation de cette option sur un système qui ne possède pas
d'interface MPU-401 peut causer des disfonctionnements. Si votre carte
est normalement supportée, consultez quand même les instructions
spécifiques la concernant dans le fichier  <file>Readme.cards</file>. 
Il est plus s&ucirc;r d'entrer "y" si vous possédez une véritable
carte avec interface MPU-401 MIDI.

<tag>6850 UART Midi support [Y/n/?]</tag>

Il est s&ucirc;r de répondre "n" à cette question dans
tous les cas. L'interface 6850 UART n'est que très rarement utilisée.

<tag>PSS (ECHO-ADI2111) support [Y/n/?]</tag>

Répondez "y" si vous possédez une carte
Orchid SW32, ou Cardinal DSP16 ou encore d'autres cartes basées
sur les puces PSS (codec AD1848 + puce DSP ADSP-2115 + puce Echo ESC614 ASIC).

v <tag>16 bit sampling option of GUS (<em>not</em> GUS MAX) [Y/n/?]</tag>

Répondez "y" si vous avez installé la carte-fille d'échantillonage
16 bits sur votre GUS. Répondez non si vous avez une GUS MAX. 
Cette option désactive le support GUS MAX.

<tag>GUS MAX support [Y/n/?]</tag>

Répondez "y" uniquement si vous avez une GUS MAX.

<tag>Microsoft Sound System support [Y/n/?]</tag>

Faite encore attention avant  de répondre "y" à cette question.
Il est plus s&ucirc;r de répondre "y" si vous possédez la carte
Windows Sound System originelle fabriquée par Petitmou (microsoft) ou
l'Aztech SG 16 Pro / NX 16 Pro. Vous pouvez aussi répondre "y"
au cas o&ugrave; votre carte n'ait pas été proposée
plus haut. Pour les cartes ayant le support natif pour VoxWare, consultez les
instructions spécifiques dans le fichier <file>Readme.cards</file>. Certains
pilotes possèdent leur propre support MSS et l'activation de cette
option dans ce cas causera un conflit.

<tag>Ensoniq Soundscape support [Y/n/?]</tag>

Répondez "y" si vous avez une carte son basée sur les
puces Ensoniq SoundScape. De telles cartes sont fabriquées,
au moins chez Ensoniq, Spea et Reveal (ce dernier fabrique également
d'autres types de cartes).

<tag>MediaTriX AudioTriX Pro support [Y/n/?]</tag>

Répondez "y" si vous avez une AudioTriX Pro.

<TAG>Support for MAD16 and/or Mozart based cards?</TAG>

Répondez "y" ici si votre carte possède une puce 
d'interface Mozart (OAK OTI-601)  ou MAD16 (OPTi 82C928 ou
82C929). Ces circuits sont assez répandus, il est donc
possible qu'un grand nombre de cartes "anonymes" en possèdent.
De plus, la puce MAD16 est utilisée dans des cartes fabriquées
par des constructeur connus comme Turle Beach (Tropez), Reveal
(quelques modèles) et Diamond (les plus récentes).

<TAG>Support for Crystal CS4232 based (PnP) cards [Y/n/?]</TAG>

Répondez "y" si vous avez une carte basée sur les
circuits Crystal CS4232.

<TAG>Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers
[Y/n/?]</TAG>

Répondez "y" ici si vous possédez l'une de ces cartes.

<TAG>SoundBlaster Pro support [Y/n/?]</TAG>

Activez cette option si votre carte est une SoundBlaster Pro ou une
SoundBlaster 16. Idem si vous avez une carte clone de
SoundBlaster Pro. On peut économiser un peu de mémoire
ici en répondant "n" mais l'alternative la plus s&ucirc;re est de
répondre "y".

<tag>SoundBlaster 16 support [Y/n/?]</tag>

Validez si vou avez une SoundBlaster 16 (dont l'AWE 32).

<tag>Audio Excel DSP 16 initialization support [Y/n/?]</tag>

Répondez "y" si vous avez une Audio Excel DSP 16. Consultez
le fichier <file>Readme.aedsp16</file>  pour de plus amples informations.

</descrip>

Le programme de configuration pose alors plusieurs questions
à propos d'options de plus haut niveau. Il est recommandé
de répondre "y" à chacune de ces questions, et "n" uniquement
si vous savez que vous n'aurez pas besoin de cette option.

<descrip>

 <tag>/dev/dsp and /dev/audio support (usually required) [Y/n/?]</tag>

Répondre "n" désactive <file>/dev/dsp</file> et <file>/dev/audio</file>,
les périphériques de conversion A/D et D/A. Répondez
"y".

<tag>MIDI interface support [Y/n/?]</tag>

Répondre "n" désactive les périphériques
associés à <file>/dev/midixx</file> ainsi que les accés
aux ports MIDI utilisant <file>/dev/sequencer</file> et <file>/dev/music</file>.
Cette option affecte également tous les périphériques
compatibles MPU-401 et/ou General MIDI.

<tag>FM synthesizer (YM3812/OPL-3) support [Y/n/?]</tag>

Répondre "y" ici.

<tag>/dev/sequencer support [Y/n/?]</tag>

Répondre "n" désactive  <file>/dev/sequencer</file> et <file>/dev/music</file>.

<TAG>Do you want support for the mixer of SG NX Pro ?</TAG>

Répondez "y" si vous possédez une carte son Sound Galaxy NX Pro
et que vous voulez utiliser ses fonctions étendues de mixage.

<TAG>Do you want support for the MV Jazz16 (ProSonic etc.) ?</TAG>

Répondez "y" si vous avez une carte son MV Jazz 16.

<TAG>Do you have a Logitech SoundMan Games [Y/n/?]</TAG>

Répondez "y" si vous possédez une carte Logitech SoundMan Games.

</descrip>

Après toutes ces questions, le programme de configuration vous
questionne sur la configuration spécifique de la carte. Habituellement,
juste quelques adresses d'E/S, d'IRQ et de DMA sont demandées. Pour
certaines cartes, le programme demande quels fichiers doivent être utilisés
durant l'initialisation de la carte. Ceci est vrai pour les cartes qui possèdent une
puce DSP ou un microprocesseur qui doit être initialisé en chargeant
un petit programme (microcode). Dans certains cas, ce code est écrit dans
un fichier .h par le programme de configuration et est alors integré au pilote pendant
sa compilation. Encore une fois, lisez dans le fichier d'information  <file>Readme.cards</file> 
ce qui concerne votre type de carte. 

A la fin, il vous sera demandé:

<tscreen><verb>
The sound driver is now configured.
Save copy of this configuration to /etc/soundconf [Y/n/?]
</verb></tscreen>

Normalement, vous devriez entrer "y" ce qui vous permettra
éventuellement de conserver vos options de configuration
pour votre pilote son dans une recompilation ultèrieure du 
noyau Linux.

Si vous mettez à jour votre vieux pilote son, soyez
certain que les fichiers <file>/usr/include/sys/soundcard.h</file> et
<file>/usr/include/sys/ultrasound.h</file> sont des liens symboliques sur
les fichiers correspondant dans <file>/usr/include/linux</file>, et qu'ils
contiennent respectivement uniquement les lignes  <file>#include &lt;linux/soundcard.h&gt;</file>
et <file>#include &lt;linux/ultrasound.h&gt;</file>.

Vous pouvez maintenant recompiler et installer le nouveau noyau. 

<sect1>La création des Fichiers spéciaux des Périphériques<p>

Pour opérer proprement, des entrées des fichiers de périphériques
doivent être crées pour vos périphériques son. Normalement, 
ils sont créés automatiquement lors de l'installation de Linux. Une vérification
rapide peut être effectuée en utilisant la commande ci-dessous. Si vous
obtenez la même chose (excepté pour la date...) alors les fichiers de
périphériques sont certainement presque bons...

<tscreen><verb>
% ls -l /dev/sndstat
crw-rw-rw-   1 root     root      14,   6 Apr 25  1995 /dev/sndstat
</verb></tscreen>

Notez que le fait d'avoir des fichiers de périphériques
corrects ne garantit rien en tant que tel... Le pilote du noyau doit également être
chargé ou compilé avant que les périphériques puissent fonctionner.

Si vous pensez que les fichiers de périphériques ne sont
pas bons, vous pouvez les recréer en utilisant le petit script shell
(à éxécuter en tant qu'utilisateur root) que vous trouverez à la fin du 
fichier <file>Readme.linux</file> dans le répertoire
<file>/usr/src/linux/drivers/sound</file> disponible pour l'utilisateur 
<tt>root</tt>. Autrement, beaucoup de distributions Linux incluent un
script /dev/MAKEDEV uilisable à ces fins...

Si vous utilisez le pilote son du haut-parleur PC, lisez la documentation
qui va avec ce paquetage pour déterminer quels fichiers  doivent
être créés.

<sect1>Démarrage de Linux et Test de l'Installation<p>

Vous devriez maintenant être prêt à 
`rebooter' (redémarrer) sur votre nouveau noyau et tester les pilotes de son. Suivez
la procédure habituelle pour installer et rebooter sur le nouveau
noyau (gardez l'ancien dans un petit coin au cas o&ugrave; il y aurait un
un problème !).

Pendant le redémarrage, essayez de vérifier quelques
messages d'information tels que ceux qui suivent (s'ils défilent
trop vite, vous pourrez les retrouver avec la commande <tt>dmesg</tt>) :

<tscreen><verb>
Sound initialization started
<Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
<Sound Blaster 16> at 0x330 irq 5 dma 0
<Yamaha OPL3 FM> at 0x388
Sound initialization complete
</verb></tscreen>

Cela devrait correspondre avec votre carte son et votre
configuration de cavaliers (s'il y en a).

Notez que ces messages ne sont pas affichés quand on utilise
le module chargeable du pilote son (à moins que vous ne l'ayez
spécifié avec : "insmod sound trace_init=1).

Quand le pilote son est attaché ("linké") au noyau
les messages  "Sound initialization started" et "Sound initialization complete" 
devraient être affichés. S'ils ne le sont pas, cela signifie qu'il
n'y a pas de pilote son dans le noyau. Dans ce cas, vérifiez que vous
avez installé le bon noyau...

Si rien ne s'affiche entre les lignes "Sound initialization started" et "Sound 
initialization complete", cela signifie soit que vous n'avez pas installé le
bon pilote, soit que le port d'E/S est incorrect ou que vous avez une carte PnP qui
n'a pas été configurée. 

Le pilote peut également afficher des messages d'erreurs ou d'avertissement
("warnings") pendant le redémarrage. Regardez bien tout ça quand
vous rebootez pour la première fois après avoir configuré
le pilote son.

Ensuite, vous devriez vérifier le fichier de périphérique
<file>/dev/sndstat</file>.  La lecture du fichier d'état du pilote son
devrait vous fournir  des informations supplémentaires sur la façon
dont a été initalisée la carte son. Vous devriez obtenir 
quelque chose dans ce style :

 <tscreen><verb>
% cat /dev/sndstat
Sound Driver:3.5.4-960630 (Sat Jan 4 23:56:57 EST 1997 root,
Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586)
Kernel: Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586
Config options: 0

Installed drivers: 
Type 1: OPL-2/OPL-3 FM
Type 2: Sound Blaster
Type 7: SB MPU-401

Card config: 
Sound Blaster at 0x220 irq 5 drq 1,5
SB MPU-401 at 0x330 irq 5 drq 0
OPL-2/OPL-3 FM at 0x388 drq 0

Audio devices:
0: Sound Blaster 16 (4.13)

Synth devices:
0: Yamaha OPL-3

Midi devices:
0: Sound Blaster 16

Timers:
0: System clock

Mixers:
0: Sound Blaster
</verb></tscreen>

Cette dernière commande peut générer des messages 
d'erreur. "No such file or directory" signifie que vous devez créer
les fichiers de périphériques (voir la section 4.3). 
"No such device" vous indique que le pilote son n'est pas chargé
ou lié au noyau. Voyez la section 4.2 pour corriger cela.

Si des lignes apparaissent entre parenthèses dans la partie
"Card config:" de /dev/sndstat (par exemple : "(SoundBlaster at 0x220
irq 5 drq 1,5)" ), cela signifie que le périphérique 
(la carte) a bien été configurée, mais pas
détectée.

Maintenant, vous devriez pouvoir jouer un fichier son. Procurez-vous
un petit fichier son et envoyez-le vers le fichier de 
périphérique pour vérifier basiquement la
sortie son. Par exemple : 

<tscreen><verb>
% cat endoftheworld >/dev/dsp
% cat crash.au >/dev/audio
</verb></tscreen>

(prennez garde de ne pas ommetre le "&gt;" dans les commandes
ci-dessus)

Notez que, généralement, utiliser <tt>cat</tt> n'est
pas une façon correcte de jouer des fichiers audio, mais
juste un moyen rapide de vérification. Vous souhaiterez
sans doute trouver un programme dedié permettant de jouer 
correctement des fichiers son.

Cette commande fonctionne uniquement si il y a au moins un fichier
de périphérique listé dans la section "Audio
devices" de /dev/sndstat. Si cette section est vide, il faut essayer
de savoir pourquoi la carte n'a pas été détectée.

Si les commandes ci-dessus retournent "I/O error", regardez la à 
la fin des messages produits par le noyau en tapant la commande 
"dmesg". Il est fréquent de trouver des messages d'erreurs
à cet endroit. Très souvent, on trouve le message :
"Sound: DMA (output) timed out - IRQ/DRQ config error?". Cette
erreur signifie que la carte n'a pas réussi à utiliser
l'interruption attendue. Dans la plupart des cas, cela veut dire que
l'IRQ ou le canal DMA configuré pour le pilote ne fonctionne
pas. La meilleure façon de le faire fonctionnner est 
d'essayer tous les IRQ et les DMA supportés par le pilote.

Une autre raison est que le fichier de périphérique
n'est pas compatible avec le pilote pour lequel il est configuré
Ceci est le plus souvent vrai quand une carte son supposée
"compatible SoundBlaster (Pro/16)" ne fonctionne pas avec le pilote
SoundBlaster. Dans ce cas, essayez de trouver avec quelle autre
carte votre matériel est réellement compatible
(en postant dans fr.comp.os.linux par exemple).

Quelques fichiers son peuvent être trouvés dans ce paquetage :
<url url="ftp://tsx-11.mit.edu/pub/linux/packages/sound/snd-data-0.1.tar.Z">

Maintenant, vous pouvez vérifier que l'enregistrement fonctionnne.
Si vous pouvez relier un micro(phone !) à votre carte son, vous pouvez
effectuer un test rapide en utilisant ce genre de commandes :

<tscreen><verb>
# enregistre 4 secondes de son en provenance du micro
# dans le fichier "sample.au"
% dd bs=8k count=4 &etago;dev/audio >sample.au
4+0 records in
4+0 records out
# rejoue le son enregistré
% cat sample.au >/dev/audio
</verb></tscreen>

N'oubliez pas de parler dans le micro pour que cela fonctionne !!!
Vous pouvez également avoir besoin de trouver un 
programme `mixer' (mélangeur de sources sonores), afin
de sélectionner le microphone comme étant le
périphérique d'entrée. Ceci doit également
vous permettre d'ajuster le niveau d'enregistrement (gain).

Si tout cela fonctionne, vous pouvez être à peu près
certain que vos convertisseurs A/N et N/A fonctionnent, ainsi que la partie
du pilote y étant associée. Si vous rencontrez des
difficultés, passez à la section suivante !!!

<sect1>Problèmes rencontrés<p>

Si vous avez encore des problèmes après avoir suivi
les instructions de ce HOWTO, voici quelques points à 
vérifier. Ils sont listés dans un ordre de difficulté
croissante. Si la vérification se solde par un echec, 
résolvez le problème avant d'effectuer la suivante !

<sect2>Premier point : Soyez certain que vous utilisez vraiment votre noyau fra&icirc;chement compilé !<p>

Vous pouvez vérifier la date du noyau pour être
certain que vous utilisez celui que vous avez compilé avec le
support son. Utilisez la commande <tt>uname</tt> :

<tscreen><verb>
% uname -a
Linux fizzbin 2.0.0 #1 Tue Jun 4 16:57:55 EDT 1996 i386
</verb></tscreen>

ou listez le fichier <file>/proc/version</file>:

<tscreen><verb>
% cat /proc/version
Linux version 2.0.0 (root@fizzbin) (gcc version 2.7.0) #1 Tue Jun 4 16:57:55 EDT 1996
</verb></tscreen>

Si la date ne semble pas correspondre avec celle à laquelle vous
avez compilé le noyau, alors vous utilisez certainement un noyau
plus ancien... Avez-vous réellement redémarré la
machine ? Si vous utilisez LILO (multiboot), l'avez-vous réinstallé ?
(normalement, cela se fait par : <file>/etc/lilo/install</file>). Si vous bootez à
partir d'une disquette, en avez-vous créé une nouvelle et bien
utilisée ?

<sect2>Deuxième point : Soyez s&ucirc;r que les pilotes son du
noyau y sont bien inclus<p>

La façon la plus simple de vérifier ceci est de
controler ce que contient /dev/sndstat comme cela a été
décrit précédemment. Si il semble y avoir un 
problème, alors quelque chose s'est mal déroulé
pendant la configuration ou la construction du nouveau noyau.

<sect2>Troisième point : Est-ce que le noyau a bien détecté 
votre carte son pendant le démarrage ?<p>

Soyez certain que votre carte son a bien été détectée
lors du démarrage. Vous avez d&ucirc; voir un message lors de
la phase de boot. Vous pouvez retrouvez les messages du dernier
démarrage en utilisant la commande <tt>dmesg</tt> : 

<tscreen><verb>
% dmesg
</verb></tscreen>

ou 

<tscreen><verb>
% tail /var/adm/messages
</verb></tscreen>

Si votre carte n'a pas été trouvée, c'est que quelque chose
s'est mal passé. Soyez certain que votre carte est réellement
installée ! Si elle fonctionne sous DOS, vous pouvez supposer qu'elle
va fonctionner sous Linux, et qu'il doit y avoir un problème au niveau de
la configuration du noyau. Soit vous avez configuré une mauvaise carte
ou de mauvais param&egrave;tres, soit votre carte n'est supportée par
aucun des pilotes son du noyau Linux... 

Une possibilité est que votre carte nécessite une initialisation
par le pilote DOS. Essayez sous DOS d'initialiser votre carte avec le
pilote fourni par le constructeur de la carte. Ensuite, rebootez à
chaud en utilisant <tt>Control-Alt-Delete</tt>. Vérifiez bien que que
les adresses d'E/S, de DMA, et les numéros d'IRQ sont les mêmes
sous Linux et sous DOS. Consultez le fichier <file>Readme.cards</file> dans les sources
du pilote son Linux pour connaître les détails de configuration de
votre carte. 

Si votre carte n'est pas mentionnée dans ce document, il est possible que
le pilote son de Linux ne la supporte pas. Vous pouvez consulter les références
listées à la fin de ce document pour obtenir de l'aide.

<sect2>Quatrième point : Arrivez-vous à lire des données 
en provenance du dsp ?<p>

Essayez d'enregistrer des sons en provenance de <file>/dev/audio</file> en utilisant
la commande <tt>dd</tt> dont on a déjà parlé dans ce
document. 

Si ça ne fonctionne pas, alors il y a probablement un conflit d'IRQ
ou de DMA, ou une incompatibilité matérielle (le périphérique
n'est pas supporté par Linux ou le pilote n'est pas configuré pour le 
bon périphérique). 

Une autre possibilit&eacute est d'avoir un matériel 
défectueux. Testez cette carte sous DOS pour vérifier !

<sect2>Quoi encore...<p>

Si ça ne marche toujours pas, voici quelques suggestions sur
ce que vous devriez faire :

<itemize>
<item>relisez soigneusement ce HOWTO !
<item>consultez les références à
la fin de ce document, et particulièrement les pages Web de 
d'Hannu Savolainen et les fichiers Readme présents dans les sources du
noyau.
<item>postez une question précise et détaillée dans
 fr.comp.os.linux en n'oubliant pas de préciser que vous avez 
préalablement lu ce HOWTO (ndt : :-}  )
<item>effectuez quelques recherches sur le web ou dans les news
avec un moteur de recherche comme <url url="http://altavista.digital.com">
<item>essayez d'utiliser un noyau Linux plus récent
<item> envoyez un email à l'auteur du pilote son de votre carte
<item> lancez emacs et tapez <tt>Esc-x doctor</tt> :-)
</itemize>

<sect>Applications utilisant le son<p>

Je donne ici quelques exemples d'<idx>applications</idx> que vous
aimerez peut-être avoir si vous possédez une
carte son sous Linux. Pour avoir des informations plus fraîches,
vous pouvez consulter la Linux Software Map, les sites d'archives
Internet, et/ou les fichiers disponibles dans votre CD-ROM Linux.

Voici quelques programmes à posséder :

<itemize>
<item>un utilitaire de conversion de format des fichiers son (par ex. <tt>Sox</tt>)
<item>un utilitaire de mixage (par ex. <tt>aumix</tt> ou <tt>xmix</tt>)
<item>un lecteur/enregistreur de fichiers sons (par ex. <tt>play</tt> ou <tt>wavplay</tt>)
<item>un lecteur de fichiers MOD (par ex. <tt>tracker</tt>)
<item>un lecteur de fichiers MIDI (par ex. <tt>playmidi</tt>)
</itemize>

Pour chacun de ces outils, il existe souvent aussi bien une version 
graphique qu'un version texte. Vous trouverez également 
quelques applications plus ésotériques (comme des
utilitaires de synthèse ou de reconnaissance vocale) qu'il
peut-être amusant d'essayer...

<sect>Réponses aux Questions Fréquemment Posées<p>

Ce paragraphe répond à des questions qui sont souvent posées dans
les forums de discussion et les listes de diffusion. 

Des réponses à d'autres questions peuvent également être trouvées sur la page web des pilotes son OSS.

<sect1>Quels sont les différents fichiers de périphériques liés au son ?<p>

Ce sont des noms le plus souvent "standard", mais certaines distribtutions Linux peuvent avoir choisi des noms différents. 

<descrip>
<tag>/dev/audio</tag>lien symbolique vers <file>/dev/audio0</file>
<tag>/dev/audio0</tag>périphérique audio compatible avec les stations Sun (dans une implémentation partielle seulement : il n'y a pas de support de l'interface ioctl Sun, uniquement l'encodage u-law)
<tag>/dev/audio1</tag>second périphérique audio (pour certaines cartes son ou si vous en avez deux)
<tag>/dev/dsp</tag>normalement, c'est un lien symbolique vers <file>/dev/dsp0</file>
<tag>/dev/dsp0</tag>premier périphérique d'échantillonage
<tag>/dev/dsp1</tag>second périphérique d'échantillonage
<tag>/dev/mixer</tag>lien vers <file>/dev/mixer0</file>
<tag>/dev/mixer0</tag>premier mixeur son
<tag>/dev/mixer1</tag>second mixeur son
<tag>/dev/music</tag>interface séquenceur de haut niveau
<tag>/dev/sequencer</tag>accés bas niveau pour MIDI, FM et GUS
<tag>/dev/sequencer2</tag>normalement, lien vers <file>/dev/music</file>
<tag>/dev/midi00</tag>premier port MIDI
<tag>/dev/midi01</tag>second port MIDI
<tag>/dev/midi02</tag>troisième port MIDI
<tag>/dev/midi03</tag>quatrième port MIDI
<tag>/dev/sndstat</tag>indique l'état du pilote son
</descrip>

Le pilote pour haut-parleur PC fournit les fichiers de périphériques suivant : 

<descrip>
<tag>/dev/pcaudio</tag>équivalent à <file>/dev/audio</file>
<tag>/dev/pcsp</tag>équivalent à <file>/dev/dsp</file>
<tag>/dev/pcmixer</tag>équivalent à <file>/dev/mixer</file>
</descrip>

<sect1>Comment puis-je jouer un fichier son ?<p>

Les fichiers son provenant des stations Sun (.au) peuvent être envoyés directement dans <file>/dev/audio</file>. Les fichiers son bruts doivent être envoyés dans <file>/dev/dsp</file>, de préférence en utilisant un utilitaire prévu à cet effet (play). Sinon, le résultat risque d'être de piètre qualité.

Les programmes comme wavplay ou vplay (dans le paquetage snd-util) donneront leurs meilleurs résultats avec des <idx>fichiers WAV</idx>. Par contre, ils ne reconnaissent pas les fichiers WAV Microsoft compressés avec  <idx>ADPCM</idx>. Les anciennes versions de play (dans le paquetage Lsox) fonctionnent mal avec les fichiers WAV 16 bits.

Le programme splay du paquetage snd-util peut être utilisé pour jouer la plupart des fichiers son si les paramètres corrects sont spécifiés en ligne de commande. 

<sect1>Comment faire pour enregistrer un son ?<p>

La lecture de <file>/dev/audio</file> ou <file>/dev/dsp</file> fournira des données échantillonées qui peuvent être redirigées vers un fichier. Un programme tel que <tt>vrec</tt> facilite le réglage de la fréquence d'échantillonage, la durée d'enregistrement, etc. Vous aurez aussi certainement besoin d'un programme de mixage pour sélectionner l'entrée son apropriée. 

<sect1>Avoir plus d'une carte son<p>

Avec le piloye son actuel, il est possible d'avoir plusieurs SoundBlaster, SoundBlaster/Pro, SoundBlaster16, MPU-401 ou cartes MSS à la fois sur votre système. L'installation de deux SoundBlaster est possible en définissant les macros SB2_BASE, SB2_IRQ, SB2_DMA et dans certains cas SB2_DMA2 dans le fichier <file>local.h</file>. Il est aussi possible d'avoir en même temps une SoundBlaster et une PAS16. 

Avec les nouveaux noyaux 2.0.X qui utilisent make config, vous devez éditer <file>/usr/include/linux/autoconf.h</file> à la place de <file>local.h</file>. Après la section contenant les lignes : 

<tscreen><verb>
#define SBC_BASE 0x220
#define SBC_IRQ (5)
#define SBC_DMA (1)
#define SB_DMA2 (5)
#define SB_MPU_BASE 0x0
#define SB_MPU_IRQ (-1)
</verb></tscreen>

ajoutez ceci (avec des valeurs correctes pour votre système) :

<tscreen><verb>
#define SB2_BASE 0x330
#define SB2_IRQ (7)
#define SB2_DMA (2)
#define SB2_DMA2 (2)
</verb></tscreen>

Les pilotes suivants ne permettent pas d'instances multiples :

<itemize>
<item>GUS (limitation du pilote)
<item>MAD16 (limitation matérielle)
<item>AudioTrix Pro (limitation matérielle)
<item>CS4232 (limitation matérielle)
</itemize>

<sect1>Error: No such file or directory for sound devices<p>

Vous devez créer les fichiers de périphériques
du pilote son. Consultez la section concernée. Si vous avez
déjà ces fichiers, assurez-vous qu'ils possèdent
bien les nombres majeur et mineur corrects (certaines distributions
obsolètes de Linux créent des fichiers de périphériques
incorrects durant l'installation). 

<sect1>Error: No such device for sound devices<p>

Vous avez démarré votre machine avec un noyau
non configuré pour le son, ou alors, les adresses
d'E/S configurées dans votre noyau ne correspondent pas
à celles de votre marériel. Vérifiez que vous
utilisez bien votre noyau fraichement compilé et qu'il a 
été correctement configuré avec des paramètres
correspondant à votre matériel.

<sect1>Error: No space left on device for sound devices<p>

Ceci peut arriver si vous tentez d'envoyer des données
vers <file>/dev/audio</file> ou <file>/dev/dsp</file> sans créer
le fichier de périphérique adéquat. Ce fichier
est alors un fichier normal qui a rempli votre disque-dur !!! Vous
devez exécuter le script mentionné dans la section
<em>Création des fichiers de périphériques</em>.

Cela peut également arriver avec Linux 2.0.x s'il n'y a pas 
suffisamment de mémoire vive sur votre machine lorsque le 
fichier de périphérique est ouvert. Le pilote audio
a besoin d'au moins deux pages (de 8 ko) contigu&euml;s de mémoire
vive physique pour chaque canal DMA.  Cela peut arriver avec des
machines ayant moins de 16 Mo de RAM ou qui tournent sans discontinuer
depuis très longtemps. Il est possible de libérer de
la mémoire vive en compilant et en éxécutant ce
programme C avant d'ouvrir le fichier de périphérique :


<tscreen><verb>
main() {
  int i;
  char mem[500000];
  for (i = 0; i < 500000; i++)
    mem[i] = 0;
  exit(0);
}
</verb></tscreen>

<sect1>Error: Device busy for sound devices<p>

Un périphérique son ne peut être ouvert que
par un seul processus à la fois. Il y a certainement un 
processus qui utilise déjà la carte son. Une façon
de le savoir est d'utiliser la commande <tt>fuser</tt> :

<tscreen><verb>
% fuser -v /dev/dsp
/dev/dsp:             USER       PID ACCESS COMMAND
                      tranter    265 f....  tracker
</verb></tscreen>

Dans cet exemple, la commande <tt>fuser</tt> montre que le processus
numéro 256 a déjà ouvert le périphérique.
Vous devez alors attendre que ce processus finisse son travail ou alors,
le tuer (avec kill). Pour conna&icirc;tre les processus d'un utilisateur autre que
vous, il faut être root pour utiliser la commande <tt>fuser</tt>.

<sect1>J'ai encore une erreur de type `device busy' (périphérique occupé) !<p>

Selon Brian Gough, il existe un conflit potentiel entre les
SoundBlaster utilisant le canal DMA 1 et les lecteurs de bandes
QIC-02 utilisant le même canal. D'o&ugrave; des erreurs
de type "device busy". Si vous utilisez FTAPE, il se peut que
le pilote concerné soit actif.  Selon le FTAPE-HOWTO, 
le pilote du QIC-02 n'est pas nécessaire pour utiliser
FTAPE. Il y a seulement besoin du pilote du QIC-117. Vous devez
donc reconfigurer votre noyau pour qu'il utilise le bon pilote.

<sect1>Lecture incomplète d'un fichier d'échantillons audio<p>

Habituellement, cela se traduit par l'arrêt de la lecture
au bout d'une seconde environ, avec un message d'erreur du type
"missing IRQ" ou "DMA timeout". Il s'agit certainement d'une 
mauvaise configuration de l'IRQ ou du canal DMA. Vérifiez
que le noyau est bien configuré et qu'il n'y a pas de
conflit d'adresse avec d'autres cartes. 

Un autre sympt&ocirc;me est une lecture en boucle. Ceci est
souvent lié à un conflit d'IRQ.

<sect1>Il y a des pauses lors de la lecture d'un fichier MOD<p>

La lecture des <idx>fichiers MOD</idx> nécessite beacoup de ressources
CPU. Il se peut que vous ayez trop de processus en cours ou bien que
votre ordinateur soit trop lent pour une lecture en temps réel.
Vous pouvez alors:

<itemize>
<item>tenter une lecture avec un taux d'échantillonage plus faible
ou en mono
<item>supprimer des processus
<item>acheter un ordinateur plus rapide :-)
<item>acheter une carte son plus puissante (comme la Gravis UltraSound)
</itemize>

Si vous avez une Gravis UltraSound, vous avez intérêt à
utiliser un des lecteurs mod conçus spécifiquement pour la
GUS (par ex. <tt>gmod</tt>).

<sect1>Erreurs de compilation d'applications utilisant le son<p>

Les version 1.0c et antérieures du pilote son utilisent des
appels <tt>ioctl()</tt> incompatibles. Récupérez des
sources plus récentes ou effectuez les modifications nécessaires
pour l'adapter au nouveau pilote son. Voyez le fichier <file>Readme</file>
du pilote son pour plus de détails...

Soyez également certain que vous avez utilisé la dernière
version de <file>soundcard.h</file> et <file>ultrasound.h</file> en compilant votre
application. Voyez comment les installer au début de ce document.

<sect1>SEGV en utilisant des exécutables qui fonctionnaient avant<p>

Il s'agit certainement du même problème que précédemment.

<sect1>Quels sont les bugs connus et les limitations dans le pilote son ?<p>

Ils sont partiellement répertoriés dans le <em>Hacker's Guide to
VoxWare</em>, actuellement disponible sous forme provisoire. La dernière
version est la "draft 2" disponible sur <url
url="ftp://nic.funet.fi/pub/Linux/ALPHA/sound/">. Notez que ce répertoire
est caché et n'apparaîtra pas à moins d'y accéder
directement avec la commande "cd" de FTP. 

Lors de la rédaction de ce document, de nouvelles documentations 
étaient disponibles sur le site web de 4Front Technologies.

Une autre source d'information est le Guide du Multimédia sous Linux
(ndt: traduit en Français par Eric Dumas). Voir les références
dans ce document. 

<sect1>Quelles ressources processeur sont-elles nécessaires pour enregistrer
ou jouer des fichiers son sans pause ?<p>

Il n'existe pas de réponde immédiate à cette question.
Cela dépend de:

<itemize>
<item>la technique utilisée : échantillonage PCM ou synthèse FM
<item>la fréquence d'échantillonage et la taille des échantillons
<item>l'application utilisée pour jouer et enregistrer
<item>la carte son utilisée
<item>la vitesse du disque dur, la vitesse du processeur, la taille du cache, etc.
</itemize>

En général, les machines à base de 386 peuvent jouer
des échantillons ou faire de la synthèse FM sur des cartes 8 bits
sans problème.
 
Jouer des fichiers MOD nécessite plus de ressources CPU. Des mesures
expérimentales ont montré que la lecture d'un fichier son à
44 khz utilise plus de 40% des ressources processeur d'un 486/50 et qu'un 
386/25 peut difficilement jouer plus rapidement que 22 khz (ceci pour des cartes
8 bits de type SondBlaster...). Une carte comme la Gravis UltraSound a 
plus de fonctions implémentées au niveau physique et nécessitera
donc moins de ressources CPU. 

(ndt: actuellement, on peut considérer que toute machine moderne, à base
de pentium ou supérieur est capable d'enregistrer et de jouer des fichiers son en
qualité "CD" : 44 khz/16 bits)

Ces considérations supposent que vous n'éxécutez par
simultanément un processus gourmant en ressources CPU !!!

La conversion de fichiers son ou le calcul d'effets sonores par des
utilitaires comme <tt>sox</tt> est également plus rapide si vous possédez
un <idx>coprocesseur arithmétique</idx> (intégré ou non dans le processeur).
Le pilote son quant à lui n'effectue pas de calculs en virgule flottante.

<sect1>Problèmes avec la PAS16 et l'adaptateur SCSI Adaptec 1542<p>

(les explications suivantes ont éré fournies par <tt>seeker@indirect.com</tt>)

Linux reconnaît seulement la 1542 à l'adresse 330 (par défaut)
ou 334, et la PAS autorise l'émulation MPU-401 à l'adresse 330 uniquement.
Le conflit subsiste même si vous avez désactivé l'utilisation MPU-401
par voie logicielle. Passez la 1542 à l'adresse 334 rendera tout le monde heureux... <p>

De plus, la 1542 et la PAS-16 utilisent toutes les deux un DMA 16 bits. Donc, si vous échantillonez à 44,1 khz en 16 bits stéréo et que vous sauvez le fichier sur un disque SCSI piloté par la 1542, vous aurez certainement des problèmes. Les canaux DMA débordent
et la mémoire vive ne se rafraîchit pas assez vite. Vous obtenez alors un message d'erreur : "PARITY ERROR - SYSTEM HALTED", sans explication sur ce qui s'est passé. Encore pire : certains revendeurs de lecteurs de bandes QIC-117 recommendent de régler pour le bus des délais "on/off" tels
que la 1542 est active plus longtemps qu'en utilisation normale. Procurez-vous le programme
SCSISEL.EXE sur le BBS d'Adaptec ou à d'autres endroits sur Internet et réduisez la durée "on" du
bus, ou augmentez sa durée "off" jusqu'à ce que le problème disparaisse. SCSISEL.EXE modifie les
réglages de l'EEPROM et les modifications apportées fonctionneront donc au prochain redémarrage
sous Linux.<p>

Dernier problème - les vieilles puces Symphony réduisent de manière importante les
périodes de cycle I/O pour accélerer les accès au bus. Aucune des cartes essayées
ne produit de problèmes avec ces courtes périodes de cycle, sauf pour la PAS-16. Le BBS
de Media Vision propose le programme SYMPFIX.EXE qui est supposé résoudre le problème en
utilisant un bit de diagnostic dans le controleur de bus Symphony, mais cela ne procure
aucune garantie matérielle. Vous devrez peut-être :

<itemize>
<item>contacter le distributeur de la carte-mère pour remplacer la vieille puce incriminée
<item>changer de carte-mère ou...
<item>acheter une autre carte-son !
</itemize>

<p>

Le premier problème dépend de la puce utilisée sur votre carte-mère, 
de la vitesse du bus et des paramètres du BIOS, et de la phase de la lune.
Le second problème dépend de l'option de rafraîchissement (caché ou synchronisé),
de la fréquence de rafraîchissement du DMA de la 1542 et éventuellement
de celui du bus d'E/S. Le troisième problème peut-être déterminé en appellant
Media Vision et en leur demandant quelle catégorie de puce Symphony est incompatible
avec leur design...<p>

<sect1>Est-il possible de lire et de jouer des échantillons sonores simultanément ?<p>

A cause de certaines limitation matérielles, ceci est impossible sur beaucoup de cartes-son. Certaines cartes récentes offrent cette possibilité. Pour plus d'informations, Consultez la section concernant le "mode bidirectionnel" dans le <em>Hacker's Guide to Voxware</em>.

<sect1>Ma SB16 est reglée en IRQ 2, mais le programme de configuration ne permet pas cette valeur.<p>

Sur les machines à base de 286, l'IRQ 2 est équivalente à l'IRQ 9. Spécifiez IRQ 9 dans la configuration.

<sect1>Est-ce que les SoundBlaster AWE32 et SoundBlaster16 ASP sont supportées ?<p>

Dans le passé, Creative Labs ne souhaitait pas divulguer les informations
techniques permettant de programmer leurs cartes. Depuis, ils ont changé
de politique et un pilote pour AWE est maintenant inclus dans les noyaux
2.1.x.

<sect1>Si j'utilise Linux et que je relance le DOS ensuite, j'obtiens des erreurs et/ou certaines applications ne fontionnent plus correctement.<p>

Cela arrive après un redémarrage à chaud sur DOS. Parfois, le message d'erreur met en cause un mauvais fichier CONFIG.SYS.

Une rapide solution à ce problème est de procéder à un redémarrage complet en utilisant le bouton reset ou en coupant le secteur plutot qu'un redémarrage à chaud (en utilisant Control-Alt-Del). (N.d.t.: dans les nouvelles versions de linux, le redémarrage par Control-Alt-Del provoque normalement une réinitialisation totale de la machine, équivalente au "reset" matériel )

La bonne solution est d'utiliser les mêmes réglages d'IRQ et de DMA
sous DOS et Linux (ou de ne pas utiliser DOS :-) ).

<sect1>Problèmes avec DOOM sous Linux<p>

Ceux qui utilisent le portage de <idx>DOOM</idx> pour Linux réalisé par ID Software
peuvent être intéressés par ces notes.

Pour une sortie son correcte, vous devez utiliser la version 2.90 ou 
supérieure du pilote son : il a été conçu pour supporter le mode
temps-réel de DOOM.

Les échantillons sonores sont en 16 bits. Si vous avez une carte son 8 bits
vous pouvez quand même utiliser le son en récupérant plusieurs programmes disponibles sur <url url="ftp://sunsite.unc.edu/pub/Linux/games/doom">.

Si DOOM râme sur votre système, désactiver le son (en renommant le fichier <tt>sndserver</tt>) peut augmenter les performances.

Par défaut, DOOM ne supporte pas la musique sous Linux. Le programme <tt>musserver</tt> y remédie. On peut le trouver sur  <url url="ftp://pandora.st.hmc.edu/pub/linux/musserver.tgz">.

<sect1>Comment réduire le <idx>bruit</idx> produit par ma carte son ?<p>

Utilisez des câbles de liaison blindés et de bonne qualité, essayez de 
placer votre carte dans des slots différents. Si la carte a un control
de volume, modifiez ce réglage.

Utilisez également un programme "mixeur" pour vous assurer que les entrées
inutiles (comme le micro) sont désactivées.

Mais certaines cartes sont mal blindées et mal
reliées à la terre et produisent naturellement beaucoup de bruit.

Enfin, sur mon système, j'ai découvert qu'utiliser l'option de
configuration <tt>no-hlt</tt> réduisait le niveau de bruit. Cette
commande force le noyau à ne pas utiliser l'instruction halt quand
il éxécute le processus "idle" (ndt : c'est à dire, quand le système 
n'a rien à faire). Vous pouvez utiliser ceci manuellement au démarrage
ou le spécifier dans le fichier de configuration de LILO avec la
commande : <tt>append="no-hlt"</tt>

<sect1>Je peux jouer des sons échantillonés, mais pas en enregistrer<p>

Si vous pouvez jouer des sons mais pas en enregistrer, essayez ceci :

<itemize>
<item> utilisez un programme <idx>mixeur</idx> de son pour sélectionner le périphérique
approprié (par exemple, un micro)
<item> avec le même mixeur, positionnez le gain d'entrée du périphérique au maximum
<item> Si vous le pouvez, essayez de tester l'enregistrement du son sous
DOS afin de déterminer s'il existe ou non un problème de matériel
</itemize>

Parfois, deux canaux DMA différents sont utilisés pour l'enregistrement
et la lecture. Dans ce cas, il est assez probable que le canal DMA spécifié
pour l'enregistrement n'est pas correct.

<sect1>Ma carte "compatible" fonctionne seulement si je l'initialise préalablement sous DOS.<p>

Dans la plupart des cas, une carte "compatible SoundBlaster" fonctionnera
mieux sous Linux si elle est configurée avec un pilote autre que celui 
destiné à la véritable SoundBlaster. Beaucoup de cartes se disent "compatibles SoundBlaster" mais
bien souvent, ce mode SoundBlaster est seulement un bidouillage prévu pour la compatibilité avec les
jeux sous DOS. Beaucoup de cartes possèdent un mode 16 bits natif qui est facilement supporté par les
version récentes du noyau Linux (2.0.1 et plus). 

Pour d'autres cartes plus anciennes, il sera nécessaire d'essayer de les faire fonctionner dans le mode SoundBlaster. Les seules cartes récentes qui font
exception à cette règle sont les cartes basées sur Mwave.

<sect1>Ma carte son 16 bits "compatible SoundBlaster" fonctionne seulement en
mode 8-bits sous Linux.<p>

Les cartes son 16 bits dites "compatible SoundBlaster" ne sont véritablement qu'avec le mode 
8 bits SoundBlaster Pro. Elles possèdent en général un mode 16 bits qui n'est compatible ni 
avec la SoundBlaster 16, ni avec le noyau Linux. 

Vous arriverez peut-être à faire fonctionner votre carte en mode 16 bits en
utilisant les pilotes MAD16 ou MSS/WSS.

<sect1>Où puis-je trouver des logiciels de son sous Linux ?<p>

Voici quelques bons sites d'archive intéressants pour les applications utilisant le son sous Linux : 

<itemize>
<item> <url url="ftp://sunsite.unc.edu:/pub/Linux/kernel/sound/">
<item> <url url="ftp://sunsite.unc.edu:/pub/Linux/apps/sound/">
<item> <url url="ftp://tsx-11.mit.edu:/pub/linux/packages/sound/">
<item> <url url="ftp://nic.funet.fi:/pub/Linux/util/sound/">
<item> <url url="ftp://nic.funet.fi:/pub/Linux/xtra/snd-kit/">
<item> <url url="ftp://nic.funet.fi:/pub/Linux/ALPHA/sound/">
</itemize> 

<sect1>Est-ce que le pilote de son peut-être compilé comme module chargeable ?<p>

Ceci est possible pour les versions récentes du noyau.

Consultez les fichiers <file>/usr/src/linux/drivers/sound/Readme.modules</file> et
<file>/usr/src/linux/Documentation/modules.txt</file> (ou
<file>/usr/src/linux/README</file>) pour plus d'informations.

<sect1>Puis-je utiliser ma carte son pour remplacer le "bip" produit par ma console ?<p>

Essayez le programme <tt>oplbeep</tt> que l'on peut trouver sur <url
url="ftp://sunsite.unc.edu/pub/Linux/kernel/patches/misc/modreq&lowbar;beep.tgz">

Une variante est le programme <tt>beep</tt> que vous trouverez sur <url
url="ftp://sunsite.unc.edu/pub/Linux/kernel/patches/misc/modreq&lowbar;beep.tgz">

Le paquetage <tt>modutils</tt> contient un exemple de programme et de 
patch pour le noyau qui permettent d'appeller un programme externe donné
afin de générer des sons sur requête du noyau.

De plus, il est possible avec certaines cartes son d'y connecter la sortie
du haut-parleur PC de telle manière que tous les sons passent par les
haut parleurs de la carte. 

<sect1>Qu'est-ce que VoxWare ?<p>

Les pilotes son du noyau supportent différentes sortes de systèmes Unix/x86
et sont donc disponibles en tant que paquetage indépendant du noyau Linux. 
Jusqu'à Février 1996, les auteurs ont appellé ce programme "Voxware".
Malheureusement, ce nom était déjà déposé par 
<htmlurl url="http://www.voxware.com/" name="VoxWare Incorporated"> et ne
pouvait donc plus être utilisé. Ces pilotes s'appellent maintenant <idx>OSS/Free</idx>.

L'<idx>Open Sound System</idx> (OSS) est un pilote son distribué de manière commerciale
pour plusieurs systèmes Unix par 4Front Technologies. La version gratuite, connue
sous le nom d'OSS/Free, continuera d'être disponible gratuitement pour
Linux. 

D'autres noms utilisés par le passé et se réferrant au même pilote son
sont : TASD (Temporarily Anonymous Sound
Driver) et USS (Unix Sound System).

Pour de plus amples informations, consultez la page web de 4Front Technologies
sur <url url="http://www.4front-tech.com/">. J'ai écris une présentation
d'OSS/Linux dans le numéro de juin 1997 de <htmlurl url="http://www.ssc.com/lj/" name="Linux Journal">
(n.d.t. : en anglais).

<sect1>Est-ce que les cartes son Plug &amp; Play sont supportées ?<p>

La totalité des fonctions <idx>Plug &amp; Play</idx> devrait être disponible dans
les version 2.1 du noyau Linux. En attendant, il existe de nombreux
essais de support Plug &amp; Play.

Si vous possédez un système Pentium récent avec un BIOS Plug &amp; Play,
il devrait pouvoir pouvoir configurer vos cartes. Prennez garde de
configurer le pilote son de Linux avec les mêmes paramètres d'E/S, d'IRQ
et de canal DMA que dans le BIOS. 

Il existe un paquetage d'outils Plug &amp; Play pouvant être utilisés pour
configurer les cartes. On peut le trouver sur le site <url
url="http://www.redhat.com/"> (peut-être se trouve t-il déjà dans
votre distribution Linux). 

Si vous utilisez votre carte sous Windows95, vous pouvez utiliser le
gestionnaire de périphérique pour configurer la carte, puis démarrer
Linux après une réinitialisation à chaud en utilisant le programme
LOADLIN. Vérifiez que les paramètres de configuration sont identiques
sous les deux systèmes. 

Si vous utilisez votre carte sous DOS, vous pouvez utiliser l'utilitaire
<tt>icu</tt> qui est fourni avec les cartes SoundBlaster16 PnP afin de
configurer votre matériel sous DOS. Utilisez le programme LOADLIN pour
relancer Linux. Vérifiez ici encore que les paramètres sont identiques.

(N.d.t. : dans un grand nombre de cas, on pourra se contenter
de configurer sa carte PnP sous DOS avec l'utilitaire adéquat pour les
paramètres désirés. Ensuite, la carte (même éteinte)  gardera en mémoire
interne son paramêtrage, et il ne sera pas nécessaire de repasser
par DOS ni d'utiliser LOADLIN.EXE pour lancer Linux :-) ).  

La version commerciale du pilote son OSS supporte les SoundBlaster 16 PnP.
Elle est disponible auprès de 4Front Technologies.

<sect1>Sox/Play/Vplay indique : "invalid block size 1024"<p>

Une modification du pilote dans sa version 1.3.67 a rendu inopérants
certains programmes son qui vérifiaient (abusivement) que le résultat
de la requête ioctl SNDCTL_DSP_GETBLKSIZE était supérieure à 4096.
Les utilitaires présents dans le dernier paquetage snd-util-3.x.tar.gz 
(sur <url url="ftp://ftp.4front-tech.com/ossfree">) gèrent maintenant ceci
correctement. Les dernières versions du pilote son ont également été
modifiées pour éviter des fragments d'allocation plus petits que 4096 octets,
ce qui résoud le problème avec les anciens utilitaires. 

<sect1>Pourquoi le pilote son possède-il son propre programme de configuration ?<p>

Le pilote son supporte un grand nombre de paramètres de configuration.
Le programme <tt>configure</tt> inclus avec le pilote son vérifie les
dépendances entre ces paramètres. Les outils utilisés pour configurer le
noyau ne supportent pas ce niveau de fonctionalités. 

Cela dit, les derniers noyaux Linux permettent en partie d'utiliser les
outils standard de configuration du noyau pour le pilote son (voyez la partie
consacrée à la "configuration du noyau").


<sect1>Les paramètres du mixeur sont réinitialisés à chaque fois que je
charge le module du pilote son<p>

Il est possible de compiler le pilote son en tant que module chargeable
par le noyau et utiliser <tt>kerneld</tt> pour un chargement et déchargement
automatiques. Cela peut engendrer un problème. A chaque fois que le
module est rechargé, les paramètres du <idx>mixeur</idx> reprennent leur valeurs d'origine. Selon les cartes son, on peut alors obtenir un volume trop faible
ou trop élevé (par ex. SoundBlaster 16).  Markus Gutschke
(<tt>gutschk@uni-muenster.de</tt>) a trouvé une solution qui consiste à
inclure cette ligne dans le fichier <file>/etc/conf.modules</file> :

<tscreen><verb>
options sound dma_buffsize=65536 &amp;&amp; /usr/bin/setmixer igain 0 ogain 0 vol 75
</verb></tscreen>

Cela force votre programme mixeur (dans notre cas, <tt>setmixer</tt>) à
être exécuté immédiatement après le chargement du pilote son. Le paramètre
<tt>dma_buffsize</tt> est recquis par la commande option. Modifiez cela
en fonction de votre programme mixeur et de vos réglages de gain. 

Si vous avez compilé le pilote son en dur dans le noyau et que vous souhaitez
régler les différents gains du mixeur au démarrage de Linux, vous pouvez
effectuer l'appel au programme mixeur dans <file>/etc/rc.d/rc.local</file>.

<sect1>Seul l'utilisateur root peut enregistrer des sons<p>

Par défaut, le script se trouvant dans Readme.linux qui crée les
fichiers de périphériques son (/dev/...) autorise seulement 
l'accés à la carte son par <tt>root</tt>. Ceci afin de combler un
trou de sécurité potentiel. Dans un environnement réseau, des
utilisateurs externes pourraient se connecter à votre machine
et vous écouter par l'intermédiaire de la carte son et d'un
micro qui y serait raccordé. Si vous vous en foutez, il suffit
de changer les permissions des fichiers spéciaux /dev/audio et /dev/dsp.

Par contre, ce script autorise par défaut n'importe quel utilisateur
à jouer un échantillon sonore dans la carte. Ceci n'a aucune conséquence
sur la sécurité mais peut se révéler plutôt désagréable. 

<sect1>Est-ce que les circuits sonores de l'IBM ThinkPad sont supportés ?<p>

Vous trouverez des informations à ce sujet sur : <url
url="http://www.screamin.demon.co.uk/">.

<sect>Références<p>

Si vous possédez une carte son qui supporte une interface SCSI ou CD-ROM,
vous pourrez consulter les documents suivants :  <htmlurl url="http://sunsite.unc.edu/LDP/HOWTO/SCSI-HOWTO.html" name="SCSI HOWTO">, <htmlurl
url="http://sunsite.unc.edu/LDP/HOWTO/CDROM-HOWTO.html" name="CD-ROM
HOWTO">. Ces documents existent en version française.

Le <htmlurl
url="http://sunsite.unc.edu/LDP/HOWTO/Sound-Playing-HOWTO.html"
name="Sound-Playing HOWTO"> explique comment jouer différents types de
fichiers son sous Linux. 

Le <htmlurl url="http://sunsite.unc.edu/LDP/HOWTO/mini/Gravis-UltraSound"
name="Ultrasound Plug'n'play Mini-HOWTO"> explique comment faire fonctionner sa Gravis Ultrasound PnP.

Le <htmlurl url="http://sunsite.unc.edu/LDP/HOWTO/mini/Soundblaster-16"
name="Linux SoundBlaster 16 PnP Mini-HOWTO"> explique comment faire fonctionner sa SoundBlaster16 PnP sous Linux. 

Le <htmlurl url="http://sunsite.unc.edu/LDP/HOWTO/mini/Soundblaster-AWE64"
name="Linux SoundBlaster AWE64 PnP Mini-HOWTO"> explique comment faire fonctionner sa SoundBlaster AWE64 sous Linux.

(N.d.t. : consultez ces documents traduits en Français sur : <htmlurl url="ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO/">)

Il existe un vieux document connu sous le nom de <em>Hacker's Guide to
VoxWare</em>, et disponible sur <url url="ftp://nic.funet.fi/pub/Linux/ALPHA/sound/">. 
La plupart des informations ici présentes ont été tirées de la
documentation disponible sur <url url="http://www.4front-tech.com/pguide">,
mais la section concernant <file>/dev/sequencer</file> peut tout de même vous
être utile. 

Les FAQs (Questions Fréquemment Posées ou Foire Aux Questions !) suivantes
sont régulièrement postées dans le forum <idx>Usenet</idx> <htmlurl url="news:news.announce" name="news.announce"> et sont également archivées sur <url
url="ftp://rtfm.mit.edu/pub/usenet/news.answers"> :

<itemize>
<item> PCsoundcards/generic-faq (Generic PC Soundcard FAQ)
<item> PCsoundcards/soundcard-faq (comp.sys.ibm.pc.soundcard FAQ)
<item> PCsoundcards/gravis-ultrasound/faq (Gravis UltraSound FAQ)
<item> audio-fmts/part1 (description des formats de fichiers Audio)
<item> audio-fmts/part2 (description des formats de fichiers Audio)
</itemize>

(N.d.t.: voir également les postages réguliers de FAQ dans le
forum Usenet <htmlurl url="news:fr.comp.os.linux.annonces" name="fr.comp.os.linux.annonces">)

Les <idx>FAQs</idx> vous indiquent également plusieurs listes de diffusion spécifiques
à certains matériels ainsi que leurs sites d'archives. Les forums Usenet
suivant concernent le son et/ou la musique :

<itemize>
<item> <htmlurl url="news:alt.binaries.sounds"
name="alt.binaries.sounds.*"> (échange de fichiers d'échantillons sonores)
<item> <htmlurl url="news:alt.binaries.multimedia"
name="alt.binaries.multimedia"> (échange de fichiers multimédia)
<item> <htmlurl url="news:alt.sb.programmer" name="alt.sb.programmer">
(programmation de la SoundBlaster)
<item> <htmlurl url="news:comp.multimedia" name="comp.multimedia">
(à propos de Multimédia)
<item> <htmlurl url="news:comp.music" name="comp.music"> (théories et recherches sur la musique assistée par ordinateur)
<item> <htmlurl url="news:comp.sys.ibm.pc.soundcard"
name="comp.sys.ibm.pc.soundcard.*"> (divers forums pour cartes son compatibles IBM PC)
</itemize>

Un site web consacré au <idx>multimédia</idx> est consultable sur <url
url="http://viswiz.gmd.de/MultimediaInfo/">. Creative Labs a son site
web sur <url url="http://www.creaf.com/">. MediaTrix également sur
<url url="http://www.mediatrix.com/">.

Il existe des <idx>listes de diffusion</idx> Linux consacrées au son. Pour s'y
abonner, envoyez un email à <htmlurl
url="mailto:majordomo@vger.rutgers.edu"
name="majordomo@vger.rutgers.edu"> avec, dans le corps du message, le
mot "help". Ces listes sont en général destinées à des discussions
relatives au développement d'applications liées au son, pas aux
question du genre "comment faire fonctionner ma SoundBlaster"...

Rappelons une fois encore que les sources du noyau Linux contiennent
un certain nombre de fichiers <file>Readme</file> très utiles relatifs aux pilotes
de carte son. Typiquement, on trouvera ces fichiers dans le répertoire
<file>/usr/src/linux/drivers/sound</file>.

Le concepteur du pilote son, Hannu Savolainen, peut être contacté par email
à <htmlurl url="mailto:hannu@voxware.pp.fi" name="hannu@voxware.pp.fi">.
Il possède également un site web sur  <url url="http://personal.eunet.fi/pp/voxware">. 

Les informations relatives à OSS, la version commerciale du pilote
son pour Linux et autres Unix, sont consultables sur  <url url="http://www.4front-tech.com/">, le site de <idx>4Front Technologies</idx>.


La carte des logiciels Linux ou <em><idx>Linux Software Map</idx></em> (LSM) est un
document inestimable pour rechercher un programme donné. Vous pouvez
faire une recherche dans cette base avec un mot-clef tel que <em>sound</em>
et identifier de cette façon toutes les applications gérant les périphériques
sonores. Ce document peut être trouvé sur un grand nombre de sites
FTP et en particulier sur : <url url="ftp://sunsite.unc.edu/pub/Linux/docs/LSM/">.

Enfin, si vous voulez en apprendre davantage à propos de la programmation
multimedia sous Linux (essentiellement d'applications gérant les CD-ROM et
les cartes son), consultez mon <idx>livre</idx> <em>Le Guide du Multimedia sous Linux</em>
(n.d.t : traduction française d'Eric Dumas, numéro ISBN : ISBN 2-84177-014-1) 
publié chez O'Reilly and Associates.
Ce bouquin est en vente un peu partout, mais vous pouvez quand même consulter
la page Web d'Oreilly <url url="http://www.oreilly.com/international/france/">.

</article>
