Sound Blaster AWE 32/64 HOWTO

Marcus Brinkmann Marcus.Brinkmann@ruhr-uni-bochum.de;
Version Française par Arnaud Launay, asl@launay.org

v1.2, 11 Janvier 1998
Ce document décrit l'installation et la configuration d'une Sound Blaster 32 (SB AWE 32, SB AWE 64) de Creative Labs dans un système Linux en utilisant les extensions du périphérique sonore écrites par Takashi Iwai. Il couvre également quelques outils spéciaux et lecteurs pour la série des SB AWE. Le système de référence est le Debian GNU/Linux, mais toute autre distribution Linux devrait fonctionner.

1. Introduction

Ceci est le Sound Blaster AWE HOWTO. Il vous donne des informations détaillées sur la manière de tirer le maximum de votre carte Sound Blaster 32 ou meilleure, incluant le synthétiseur Wave Table. Ce document couvre toutes les cartes SB jusqu'à la SB 32.

La série des Sound Blaster est bien connue des communautés DOS et Windows, et beaucoup d'utilisateurs de Linux désirent également utiliser cette carte son sous Linux. Malheureusement, Creative Labs fournit uniquement un pilote pour Windows et DOS, et il n'est donc pas trivial d'installer et d'utiliser une carte SB sous Linux. Ce document essaye de décrire comment utiliser les spécificités de la série des SB AWE dans un environnement Linux.

1.1 Remerciements

Ce document contient des informations que j'ai tiré de la Foire Aux Questions (FAQ) du pilote AWE et de celle de l'ISA PnP. Voyez la section Sources pour les auteurs et l'emplacement de ces documents. Merci aux auteurs, qui ont permis de rendre possible le support des SB AWE.

Hannu Savolainen a développé la plus grande partie du pilote sonore qui vient avec le noyau Linux. Merci !

Je voudrais remercier Nicola Bernardelli pour tester la partie sur l'AWE64. Sans lui, beaucoup d'erreurs seraient restées indétectées.

Grâce au paquetage SGML Tools, ce HOWTO est disponible en divers formats, venant tous d'un fichier source commun.

1.2 Histoire des révisions

Version 1.0

première version.

Version 1.1

orthographe corrigée (merci Curt!), ajout des versions nécessaires pour isapnp, disponible dorénavant sur sunsite et ses miroirs.

Version 1.2

version française disponible, corrections mineures, un grand nombre de fautes d'orthographes fixées (VO) (merci à ispell).

1.3 Nouvelles versions de ce document

La dernière version peut être trouvée sur ma page principale, à Sound Blaster AWE HOWTO. La dernière version française se trouve sur http://www.freenix.org/unix/linux/HOWTO/mini/Soundblaster-AWE.html.

Les nouvelles versions de ce document seront envoyées à divers sites ftp anonymes qui archivent de telles informations, incluant ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini (NdT: et ftp://ftp.traduc.org/pub/HOWTO/FR/mini pour la version française).

Les versions hypertextes de ce HOWTO et de nombreux autres HOWTOs Linux sont disponibles sur beaucoup de sites World-Wide-Web, incluant http://sunsite.unc.edu/LDP/. La plupart des distributions Linux sur CD-ROM contiennent les HOWTOs, souvent dans le répertoire /usr/doc.

Si vous traduisez ce document dans une autre langue, faîtes le moi savoir et je rajouterais une référence ici.

1.4 Contacter l'auteur

Je compte sur vous, le lecteur, pour rendre ce HOWTO utile. Si vous avez eds suggestions, des corrections, ou des commentaires, veuillez me les envoyer, Marcus.Brinkmann@ruhr-uni-bochum.de, et je tenterais de les inclure dans la version suivante.

J'aimerais spécialement recevoir des informations sur la procédure de lancement (scripts de lancement, etc..) d'autres fameuses distributions de Linux, comme la Red Hat ou la SuSE Linux.

Si vous publiez ce document sur un CD-ROM ou sous forme papier, une copie serait appréciée. Ecrivez moi pour mon adresse postale. Considérez également une donation au Linux Documentation Project pour aider le support de la documentation gratuite pour Linux. Contactez le coordinateur des HOWTOs Linux, Greg Hankins gregh@sunsite.unc.edu, pour plus d'informations.

1.5 License de Distribution

Copyright 1997 Marcus Brinkmann.

Cette documentation est libre, vous pouvez la redistribuer et/ou la modifier selon les termes de la Licence Publique Générale GNU publiée par la Free Software Foundation (version 2 ou bien toute autre version ultérieure choisie par vous).

Cette documentation est distribuée car potentiellement utile, mais SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de commercialisation ou d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU pour plus de détails.

Vous pouvez obtenir une copie de la Licence Publique Générale GNU en écrivant à la Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, États-Unis.

2. Avant de commencer

2.1 Introduction

Ce document essaye de vous aider à installer et à utiliser une Sound Blaster AWE 32 ou une Sound Blaster AWE 64 de chez Creative Labs pour votre système Linux. Le système de référence est le Debian GNU/Linux sur un plateforme Intel i586, mais il devrait fonctionner avec toute autre distribution Linux ainsi que sur toute plateforme supportant le pilote son Linux (less différences sont mentionnées lorsqu'elles apparaissent).

Lisez attentivement le HOWTO Linux Sound (voir section Informations Complémentaires). Je considère ce document comme un supplément au Sound HOWTO, et vous pourrez souvent y trouver plus d'informations sur les choses que j'ai laissées de côté ici.

2.2 Quelques notes générales sur les cartes SB AWE

La carte son SB AWE 32 propose un périphérique audio brut, un synthétiseur standard OPL-2/OPL-3, un port MIDI MPU-401 et un synthétiseur 32 voix EMU 8000 Wave Table (pour une explication de ces termes et d'autres voyez le Linux Sound HOWTO). Un des buts de ce document est de vous aider à faire fonctionner proprement toutes ces spécificités.

La SB AWE 64 a les capacités de la SB AWE 32 et un synthétiseur Wave Guide additionnel dont Creative Labs est très fier. Le problème pour les utilisateurs Linux est que les 32 voix supplémentaires sont générées par un logiciel et sorties par les périphériques wave bruts. Parce que Creative Labs ne voit aucun marché dans les pilotes Linux, un pilote son pour le synthétiseur Wave Guide est disponible uniquement sous Windows 3.1 et Windows 95.

Celà signifie que, du point de vue d'un utilisateur Linux, la SB AWE 32 et la SB AWE 64 sont quasiment identiques. A partir de maintenant je me référerais seulement aux SB AWE en général et mentionnerait simplement les différences lorsqu'elles apparaîtront.

2.3 Quelques notes générales sur les cartes Plug and Play

La plupart des cartes modernes pour les plateformes Intel sont les cartes ISA PnP, qui est une abbréviation pour `Plug and Play''. Celà signifie que la carte doit être configurée par le système d'exploitation, et ceci est fait au travers d'un routine d'initialisation au lancement. En général, il y a au moins trois moyens pour le faire:

  1. Vous avez un Bios PnP, ce qui signifie que votre Bios est au courant de la présence des cartes PnP et qu'il peut les configurer. Si vous pensez pouvoir utiliser toutes les spécificités de votre SB AWE PnP juste parce que vous avez un Bios PnP, ce n'est pas de chance. Même si le Bios déclare supporter les cartes PnP il initialise seulement une partie des ports et des adresses utilisées par votre carte son. Vous pourrez probablement jouer des données brutes, mais vous serez incapable de jouer de la musique MIDI, par exemple. Pour cette raison, un Bios PnP n'est pas une option.
  2. Vous disposez d'un système d'exploitation qui supporte les cartes PnP. Le noyau Linux stable actuel (2.0.x) n'en est pas un, vous devrez donc attendre les prochaines versions du noyau, qui supporteront les périphériques PnP.
  3. Vous avez un programme spécial, lancé au démarrage, qui initialise vos cartes PnP. C'est ce que nous allons employer.

Le logiciel le plus communémenet utilisé pour initialiser les cartes PnP sous Linux sont les `isapnptools'' (voir la section Sources et la section Commencer). Ils fournissent un moyen simple pour configurer toutes les cartes ISA PnP de votre machine, et pas seulement votre carte son.

2.4 Quelques notes générales sur les modules chargeables par le noyau

Quelques pilotes de périphériques peuvent être construits en tant que modules au lieu de les compiler dans le noyau. Vous pourrez trouver plus d'informations sur les modules dans le Kernel HOWTO et le Module HOWTO (voir section Informations Complémentaires).

Si vous avez une carte PnP, vous devez installer le support sonore en tant que module chargeable par le noyau. Celà signifie que vous ne pouvez construire le pilote sonore dans le noyau, mais que vous devez le compiler en tant que module, afin qu'il puisse être chargé dans le noyau au lancement. Ceci, parce que votre noyau sera installé avant la configuration de votre carte ISA PnP, et votre pilote sonore doit être chargé après la configuration de votre carte ISA PnP.

Le module du son peut être chargé manuellement via insmod sound ou modprobe -a sound ou dans le script de lancement de votre système Linux (sous Debian, il suffit d'ajouter une simple ligne contenant sound à /etc/modules). Une autre approche consiste à lancer kerneld, un démon qui installe et supprime les modules suivant les nécessités.

Notez que kerneld peut ne pas être la meilleure solution pour le module de l'AWE, car il prend du temps à charger le module dans le noyau, surtout si vous voulez utiliser le synthétiseur Wave Table et charger de grosses banques Sound Font, ce que vous aurez à faire à chaque insertion du module. Parce que kerneld supprime les modules inutilisées après une minute par défaut, il serait préférable de charger le module son manuellement ou au lancement. Notez que l'insertion manuelle ou au lancement du module empêche kerneld de le supprimer lorsqu'il est inutilisé. Mais vous pouvez insérer manuellement le module et utiliser kerneld en même temps. Les deux méthodes ne sont pas conflictoires, mais kerneld ne s'occupera plus du module son.

C'est particulièrement utile si vos options pour le mixer sont changées après la suppression puis la réinstallation du module. Une solution à ce problème sera donnée dans la section Mixing (elle décrit le lancement automatique d'un mixer lorsque vous chargez le modules du son). Cependant, kerneld peut prendre du temps pour charger le module, pour charger la banque sound font et pour lancer le mixer, et pour cette raison (et quelques autres) il vaut mieux installer le module son au lancement et ne pas laisser kerneld le supprimer.

2.5 Quelques notes générales sur le pilote sonore du noyau

Vous pouvez compiler le support sonore dans le noyau ou en tant que module chargeable. Si vous avez une carte PnP, vous devez installez le support sonore en tant que module, car les cartes PnP nécessitent d'être initialisés via les isapnptools avant le chargement du module.

Comme vous pouvez l'imaginer, vous devrez recompiler le noyau. Je vous donnerai quelques trucs à ce propos plus bas. Pour l'instant, parlons du support sonore dans les sources du noyau. Le noyau vient avec la version gratuite (allégée) du pilote sonore OSS (USS). La version actuelle (3.5.4) ne supporte pas entièrement la SB AWE, mais seulement sa partie SB 16. Vous aurez ainsi le périphérique brut et les synthétiseurs OPL-2/OPL-3 si vous l'utilisez, mais vous ne pourrez pas jouer de musique midi avec le synthétiseur Wave Table.

Si vous désirez utiliser le périphérique Wave Table, vous pouvez soit acheter le pilote sonore commercial de 4Front Technologies (si quelqu'un pouvait me confirmer que ce pilote peut le faire), ou corriger votre noyau avec les extensions du pilote sonore AWE 32 par Takashi Iwai. Le premier est en dehors des vues de ce document, je supposerais donc que vous utiliserez le dernier.

Les extensions du pilote sonore AWE 32 (voir section Sources) est publié sous la licence GNU et vient avec un certain nombre d'outils pour utiliser le synthétiseur wave EMU 8000 des cartes SB AWE.

Le logiciel awedrv est déjà inclut dans les sources des noyaus les plus récents (à partir des noyaus 2.1.x, mais vous devrez peut-être mettre à jour vos sources dans l'arborescence du noyau, elles peuvent être anciennes).

3. Comment installer le support des SB AWE

3.1 Les choses dont vous aurez besoin

Ce qui suit est requis pour le support SB AWE sous Linux:

Si vous avez une carte PnP, vous aurez également besoin de:

Regardez dans la section Sources pour les informations concernant l'obtention de ces programmes.

Si vous avez un système Debian GNU/Linux, vous aurez besoin des paquetages kernel-source-<version>, awe-drv et peut-être le paquetage isapnptools. Vous désirez peut-être quelques-uns des autre paquetages awe-*, mais cependant ils ne sont pas essentiels. Je recommande fortement le kernel-package pour compiler et installer facilement le noyau.

3.2 Avant de commencer

Assurez vous que vous avez proprement installé votre carde dans un emplacement sur votre carte mère et peut-être l'avoir déjà testée dans un environnement DOS ou Windows.

La prochaine étape est d'initialiser la carte au lancement si et seulement si c'est une carte PnP. Suivez la documentation dans les sources pour compiler et installer isapnptools (ou utilisez simplement le paquetage binaire Debian), et lancez

# pnpdump > /etc/isapnp.conf

en tant que super-utilisateur. Celà générera un fichier de configuration propre à votre carte PnP, mais avec tous les périphériques commentés. Editez attentivement ce fichier, et comparez les values des canaux DMA, des bases IO et des interruptions avec la configuration des cartes sous les environnements DOS ou Windows si possible (Avec Win95, regardez les ressources utilisées par la carte sous resources dans le device manager). Si vous avez des problèmes, lisez attentivement la documentation fournie avec les isapnptools.

AVERTISSEMENT: les isapnptools échouent souvent dans la détection des trois ports I/O du périphérique SB AWE Wave Table. Veuillez vérifier attentivement l'entrée Wave Table de votre isapnp.conf avec l'exemple à la fin de ce HOWTO. Ajustez les adresses I/O de bases si nécessaire.

AVERTISSEMENT: D'après l' isapnp-faq, quelques fois les isapnp échouent à programmer le nombre de périphériques logiques. Si vous rencontrez un message d'erreur comme celui-ci:

Error occurred executing request 'LD 2' on or around line...

essayez alors d'ajouter (VERIFYLD N) au début de isapnp.conf. Vous devez utiliser au minimum la version 1.10 pour que ceci fonctionne. Si vous ne pouvez utiliser la version 1.10 ou ultérieure, vous pouvez également POKE directement les nombres des périphériques logiques. Veuillez vous référer à l'isapnp-faq pour plus d'informations sur cette approche. Si ça ne marche pas pour vous, contactez moi (et les personnes d'isapnp seront intéressées également, je pense).

AVERTISSEMENT: Vérifiez que la dernière ligne est (WAITFORKEY), celà sera parfois omis par les anciennes versions de pnpdump.

Un isapnp.conf d'exemple pour seulement une seule carte PnP (la carte son) peut-être trouvée à la fin de ce document (voir la section Exemple d'<tt>isapnp.conf</tt>).

Si vous avez un système Debian, aucun ajustement supplémentaire n'est nécessaire. isapnp sera lancé au lancement dans /etc/init.d/boot avec ce petit bout de script, que vous devrez peut-être inclure dans vos scripts d'initialisation:


# Configure les cartes isa plug and play avant de charger
# les modules. Nécessite de faire ceci avant le chargement
# des modules pour avoir une chance de configurer et de
# lancer les cartes PnP avant que les pilotes ne viennent
# foutre le bordel.
#
if [ -x /etc/init.d/isapnp ]
then
  /etc/init.d/isapnp start
fi

/etc/init.d/isapnp est
#! /bin/sh
# /etc/init.d/isapnp: configure les cartes Plug and Play
test -x /sbin/isapnp || exit 0
/sbin/isapnp /etc/isapnp.conf
exit 0

Si vous avez une autre distribution Linux, vous êtes chez vous. Je ne sais pas ce qu'il faut faire (personne ne peut envoyer des informations plus spécifiques ?). Soyez certains qu'isapnp sera lancé avant que les modules ne soient chargés (voir plus haut).

3.3 Compiler le noyau

Avant de recompiler le noyau, vous devez ajouter les extensions AWE au pilote sonore. Même si vos sources du noyau ont déjà les extensions awedrv (voyez /drivers/sound/lowlevel/ pour ça), vous pouvez avoir à mettre le logiciel à jour. Suivez les instructions des sources de awedrv pour l'installation. En bref, vous devez lancer un script d'installation qui applique les corrections à vos sources du noyau.

Faites attention si vous avez mis à jour vos sources du noyau en lançant le script. En effet le script vérifie simplement qu'un certain fichier existe - s'il existe, il n'applique pas les corrections nécessaires. Vous seriez avisé de retirer le fichier drivers/sound/lowlevel/awe_wav.c avant de lancer le script après avoir mis à jour les sources du noyau.

Ensuite vous avez à configurer le noyau pour le support du son. J'espère que vous connaissez quelque chose sur la compilation du noyau; voyez le Sound HOWTO et le Kernel HOWTO pour les détails. Allez dans le répertoire où se trouvent vos sources du noyau (/usr/src/linux par exemple), et lancez:

# make config

ou make menuconfig ou make xconfig. Ensuite vous devez configurer votre noyau normalement. Utilisez cette opportunité pour créer un noyau petit et puissant, spécialement constitué pour votre système. Répondez bien Y à la question Enable loadable module support, si vous désirez installer le pilote sonore en tant que module chargeable. (vous devez le faire si vous avez une carte PnP), mais je ne suis pas certain que vous désiriez le faire, cependant.

A un moment, on vous demandera si vous désirez le support des cartes son. Vous êtes libres de répondre avec Y ou avec M si vous n'avez pas de carte PnP. Vous devez répondre avec M, pour module, si vous avez une carte PnP. Vous avez à compiler le support carte son en module si vous avez une carte PnP car les cartes PnP doivent être initialisées avant que les modules ne soient chargés.

Vous devez répondre Y aux questions suivantes, toutes les autres avec N:


Sound Blaster (SB, SBPro, SB16, clones) support (CONFIG_SB) [Y/n/?]
Generic OPL2/OPL3 FM synthesizer support (CONFIG_ADLIB) [Y/n/?]
/dev/dsp and /dev/audio support (CONFIG_AUDIO) [Y/n/?]
MIDI interface support (CONFIG_MIDI) [Y/n/?]
FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) [Y/n/?]
lowlevel sound driver support [Y/n/?]
AWE32 support (CONFIG_AWE32_SYNTH) [Y/n/?]

En fait, seul le dernier est pour le synthétiseur Wave Table. Les autres sont les options SB 16 du pilote OSS/Free.

De plus, vous devrez configurer le port I/O de la carte son. Voyez le fichier isapnp.conf pour de l'aide, si vous en avez un. Pour moi, les valeurs par défaut sont suffisantes. Notez que les valeurs par défaut des scripts de configuration du kernel peuvent être fausses (principalement les valeurs SBC_IRQ et SB_MPU_BASE qui semblent incorrectes pour la plus grande partie des cartes).


I/O base for SB Check from manual of the card (SBC_BASE) [220]
Sound Blaster IRQ Check from manual of the card (SBC_IRQ) [5]
Sound Blaster DMA 0, 1 or 3 (SBC_DMA) [1]
Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 or 7
(use 1 for 8 bit cards) (SB_DMA2) [5]
MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card
(SB_MPU_BASE) [330]
SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16 (SB_MPU_IRQ)
[-1]

Maintenant recompilez le noyau. Les utilisateurs Debian doivent utiliser le kernel-package. Ce paquetage rend les compilations de noyau aussi facile que l'installation d'un paquetage debian. Voyez la documentation dans /usr/doc/kernel-package/. Par exemple:

# make-kpkg clean
# make-kpkg -revision custom.1.0 kernel_image

puis dpkg -i /usr/src/kernel-image-2.0.29_custom.1.0_i386.deb.

Si vous avez une autre distribution Linux, suivez le moyen normal de compilation d'un nouveau noyau. N'oubliez pas make modules et make modules_install. Voyez le Sound HOWTO et peut-être le Kernel HOWTO pour plus d'informations.

3.4 Redémarrage

Après l'installation d'un nouveau noyau, vous devez relancer votre machine (vérifiez que vous avez une disquette de lancement sous la main). Croisez les doigts.

Si vous avez une carte PnP, vérifiez que vous lancez isapnp soit dans un script de lancement (comme décrit plus haut) ou manuellement:

# /sbin/isapnp /etc/isapnp.conf
Board 1 has Identity 74 00 00 e3 10 48 00 8c 0e:  CTL0048 Serial No 58128
[checksum 74]

Maintenant vous pouvez installer le pilote sonore, après l'avoir compilé en tant que module:

# modprobe -a sound
AWE32 Sound Driver v0.3.3e (DRAM 2048k)

Si vous pensez que la détection de la mémoire n'était pas correcte (j'ai eu des échos de quelqu'un qui a une AWE64 avec 4096k, et `detected'' a été de 28672k), vous pouvez soit essayer de mettre à jour le logiciel awedrv ou spécifier la taille de la mémoire ddans le fichier /usr/src/linux/drivers/sound/lowlevel/awe_config.h, par exemple:

#define AWE_DEFAULT_MEM_SIZE  4096   /* kbytes */

Désolé, vous devez alors recompiler le noyau (compiler les modules pourrait suffire, mais je n'en suis pas sûr).

Si ça marche, vous pouvez désirer que le module sonore se charge automatiquement. Vous pouvez utiliser kerneld (pourquoi c'est une mauvaise idée est expliqué dans la section 1.4) ou ajouter une simple ligne contenant sound à votre /etc/modules/ (pour Debian) ou ajouter /sbin/modprobe -a sound à votre script de lancement.

4. Tester le pilote sonore

4.1 /proc/devices, /dev/sndstat

Si vous avez intégré le support sonore, vous obtiendez quelques informations utilies au lancement. Si vous avez le support sonore en tant que module chargeable, vous pouvez obtenir la même information (peut-être en retirant le module sound avec modprobe -r sound d'abord) avec:

# modprobe -a sound trace_init=1
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
AWE32 Sound Driver v0.3.3e (DRAM 2048k)

Si vous avez un système de fichiers virtuel /proc, vous pouvez regarder pour le périphérique sonore avec:

# cat /proc/devices
Character devices:
[...]
14 sound
[...]

Vérifier ensuite que vous avez les périphériques corrects installés sous /dev/. Regardez le Sound HOWTO pour les détails. Demandez ensuite à /dev/sndstat le status du module sound:

# cat /dev/sndstat
Sound Driver:3.5.4-960630 (Sat Oct 11 19:35:14 CEST 1997 root,
Linux flora 2.0.29 #1 Sat Oct 11 19:12:56 CEST 1997 i586 unknown)
Kernel: Linux flora 2.0.29 #1 Sat Oct 11 19:36:23 CEST 1997 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
1: AWE32 Driver v0.3.3e (DRAM 2048k)

Midi devices:
0: Sound Blaster 16

Timers:
0: System clock

Mixers:
0: Sound Blaster
1: AWE32 Equalizer

Si vous n'avez pas de sortie ressemblant à celle-ci, il y a peut-être une erreur dans votre configuration. Repartez et cherchez ce qui ne va pas, puis retournez à l'étape Avant de commencer, en vérifiant tout.

4.2 Sortie - Le périphérique audio brut

Tâchez d'obtenir un fichier .au (Sun) ou un fichier brut de test, et faîtes

# cat bell.au > /dev/audio

ou

# cat sample > /dev/dsp

Vous devriez entendre le contenu du fichier via le Audio Device 0: Sound Blaster 16 (4.3).

4.3 Sortie - Le Synthétiseur OPL-2/OPL-3

Si vous désirez utiliser le synthétiseur OPL-2/OPL-3 FM pour jouer des fichiers MIDI avec votre carte son, essayez le programme playmidi (voir Appendice B). Commencez avec

# playmidi -f dance.mid

ou

# playmidi -4 dance.mid

Le premier vous donnera du OPL-2, le dernier de la musique MIDI OPL-3. Si vous êtes embarassés par le son, ne blâmez pas playmidi: c'est le synthétiseur FM qui rend mal.

Imaginez si vous aviez seulement le pilote OSS/Free: ceci serait la meilleure qualité de musique MIDI que vous pourriez avoir (en dehors de la synthèse logicielle). Heureusement, vous avez une SB AWE, et vous pouvez utiliser les possibilités Wave Table avec les extensions AWE.

4.4 Sortie - Le Synthétiseur Wave Table

Les extensions AWE viennent avec des outils spéciaux (awesfx) pour pouvoir utiliser le synthétiseur EMU 8000 Wave Table. Tout d'abord, vous devrez charger une banque Sound Font sur votre carte - même si vous désirez utiliser les samples de la ROM! Vous pouvez utiliser les fichiers de votre installation Windows - regardez pour des fichiers se terminant en *.sfb ou *.sf2.

Les samples de la ROM peuvent être chargés avec SYNTHGM.SBK, de vrais samples sont dans SYNTHGS.SBK et SYNTHMT.SBK, ainsi que dans SAMPLE.SBK. Vous pouvez obtenir d'autres banques Sound Font via ftp ou www, essayer la EMU Homepage, le site web de Creative Labs, et regarder pour les samples Chaos, ils sont vraiment bons (vérifiez sur le site web du pilote AWE).

Essayez de charger le standard GM (ROM) avec:

# sfxload -i synthgm.sbk

puis jouer un des fichiers midi qui viennent avec la SB AWE:

# drvmidi dance.mid

4.5 Mixer

Prenez votre mixer préféré et lancez le. Lancez un sample audio brut et deux fichiers MIDI en même temps, et testez les options du mixer. Jouez un peu, ce doit être très facile. Voici une liste des périphériques et de leur nom:

Yamaha OPL-3

Synth ou FM

AWE32 Driver

Synth ou FM (est ce que quelqu'un connait un mixer où ces deux sont séparés ?)

Sound Blaster 16 (4.13)

PCM ou DSP

haut parleur du PC (toujours actif)

Spkr

Les autres options se réfèrent au CD ROM, probablement connecté à la carte son, au volume principal, aux basses, à la balance et au niveau d'enregistrement des diverses lignes d'entrée. Vous pouvez spécifier quelles lignes doivent être enregistrées.

4.6 Entrée - sampler avec le périphérique audio brut

Vous pouvez enregistrer à partir de différentes sources: un CD ROM, un microphone connecté à mic, et tout ce que vous pouvez mettre dans line in. Placez le mixer dans la position appropriée. Jouez un son et enregistrez le dans un fichier, en lisant le périphérique audio brut, par exmple:

# cdplay
# dd bs=8k count=5 </dev/dsp >music.au
5+0 records in
5+0 records out
# cat music.au >/dev/dsp

enregistre et joue cinq secondes d'audio à partie du périphérique d'entrée.

4.7 Le Port MIDI

Désolé, pas encore d'informations sur le port AMIDI !

5. Logiciels du pilote AWE

5.1 sfxload

Vous pouvez charger des samples dans votre DRAM de la carte son avec l'outil sfxload. Notez que vous pouvez seulement charger un fichier de sample par banque, avec la banque 0 par défaut. Ainsi, après sfxload synthgs.sbk, les seuls samples de votre carte son sont les samples GS. si vous désirez charger des banques Sound Font supplémentaires, vous devez utiliser l'option -b, par exemple:

# sfxload synthgs.sbk
# sfxload -b1 sample.sbk
# drvmidi sfx.mid

Vous pouvez charger une banque Sound Font par défaut automatiquement en installant le module. Ajoutez juste une ligne comme

post-install sound /usr/bin/sfxload synthgm.sbk

à votre fichier /etc/conf.modules.

Voyez la documentation pour plus de détails sur sfxload.

5.2 drvmidi

Avec le programme drvmidi, vous pouvez utiliser votre pilote AWE pour jouer des fichiers MIDI. Spécifiez juste le nom de votre fichier midi après la commande:

# drvmidi waltz.mid

Voyez la documentation pour des détails supplémentaires sur drvmidi.

6. Appendice

6.1 Informations Supplémentaires

Le Linux Sound HOWTO

Auteur: Jeff Tranter, < jeff_tranter@pobox.com>

Dernière Version: v1.19, 23 Janvier 1998

Lisez bien le Sound HOWTO (disponible sur sunsite.unc.edu et ftp.lip6.fr pour la france). Il contient un bon nombre de données sur la compilation du noyau avec le support sonore, et explique beaucoup de choses sur les périphériques audio, les applications, etc...

Je prends ce HOWTO comme une addition au Sound HOWTO.

Le Linux Sound Playing HOWTO

Auteur: Yoo C. Chung, < wacko@laplace.snu.ac.kr>

Dernière Version: v1.5b, 2 Février 1998

Vous devriez également lire le Sound Playing HOWTO. Il vous dit tout sur les différents formats sonores et les applications pour les jouer.

La FAQ du pilote AWE

Auteur: Takashi Iwai < iwai@dragon.mm.t.u-tokyo.ac.jp>

Source: http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/awedrv-faq.html

Si vous avez des problèmes pour installer le pilote AWE ou utiliser le synthétiseur Wave Table ou votre carte Sound Blaster, regardez ici.

La FAQ ISA PnP

Auteur: Peter Fox < fox@roestock.demon.co.uk>

Source: http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html

Si vous avez des problèmes pour configurer votre carte ISA PnP, alors ceci est votre livre de chevet.

6.2 Sources

isapnptools

Auteur: Peter Fox < fox@roestock.demon.co.uk>

Dernière Version: 1.15

Source: http://www.roestock.demon.co.uk/isapnptools/index.html

Si vous envoyez des patchs, des reports d'erreurs ou des commentaires, veuillez mettre 'isapnp' quelque part sur la ligne du sujet, et écrire à isapnp@roestock.demon.co.uk.

awedrv

Auteur: Takashi Iwai < iwai@dragon.mm.t.u-tokyo.ac.jp>

Dernière Version: 0.4.2d

Source: http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/

Noyau Linux (kernel)

Auteur: Linus Torvald et beaucoup d'autres

Dernière Version: En ce moment, vous devriez utiliser la 2.0.35

Source: partout, là où vous pouvez obtenir Linux :)

OSS/Free

Auteur: Hannu Savolainen (Veuillez voir http://www.4front-tech.com/usslite avant de m'écrire).

Dernière Version: J'ai la 3.8s9

Source: avec les sources du noyau Linux ou ftp://ftp.opensound.com/ossfree/

Information: http://www.4front-tech.com/usslite ou miroir européen.

6.3 Fichier d'exemple d' isapnp.conf

Dans le fichier de configuration ISA PnP créé par pnpdump, les périphériques de vos cartes PnP apparaissent en sections. Dans le fichier suivant, une carte a été détectée (la carte son), avec quatre périphériques logiques:

J'ai laissé LD 1 non configuré, car je n'ai pas de CD ROM attaché au port IDE de ma carte son. Si vous n'avez pas de port IDE sur votre SB, alors LD 1 sera le port joystick et LD 3 n'apparaîtra pas.

Veuillez vous référer à la section Avant de Commencer pour plus d'informations (importantes!) sur ce fichier.


# $Id: Soundblaster-AWE.sgml,v 1.1.1.1 2003/01/03 02:40:54 traduc Exp $
# This is free software, see the sources for details.
# This software has NO WARRANTY, use at your OWN RISK
#
# For details of this file format, see isapnp.conf(5)
#
# For latest information on isapnp and pnpdump see:
# http://www.roestock.demon.co.uk/isapnptools/
#
# Compiler flags: -DREALTIME -DNEEDSETSCHEDULER

(READPORT 0x0203)
(ISOLATE)
(IDENTIFY *)

# Try the following if you get error messages like
# Error occurred executing request 'LD 2' on or around line...

#(VERIFYLD N)

# ANSI string -->Creative SB32 PnP<--

(CONFIGURE CTL0048/58128 (LD 0
#     ANSI string -->Audio<--

  (INT 0 (IRQ 5 (MODE +E)))
  (DMA 0 (CHANNEL 1))
  (DMA 1 (CHANNEL 5))
  (IO 0 (BASE 0x0220))
  (IO 1 (BASE 0x0330))
  (IO 2 (BASE 0x0388))

  (ACT Y)
))

(CONFIGURE CTL0048/58128 (LD 1
#     ANSI string -->IDE<--

# (INT 0 (IRQ 10 (MODE +E)))
# (IO 0 (BASE 0x0168))
# (IO 1 (BASE 0x036e))

# (ACT Y)
))

(CONFIGURE CTL0048/58128 (LD 2
#     ANSI string -->Wave Table<--

  (IO 0 (BASE 0x0620))
  (IO 1 (BASE 0x0A20))
  (IO 2 (BASE 0x0E20))

  (ACT Y)
))

(CONFIGURE CTL0048/58128 (LD 3
#     ANSI string -->Game<--

  (IO 0 (BASE 0x0200))
  (ACT Y)
))

# Returns all cards to the "Wait for Key" state
(WAITFORKEY)