|  | ================================================================ | 
|  | AWE32 Sound Driver for Linux / FreeBSD | 
|  | version 0.4.3; Nov. 1, 1998 | 
|  |  | 
|  | Takashi Iwai <iwai@ww.uni-erlangen.de> | 
|  | ================================================================ | 
|  |  | 
|  | * GENERAL NOTES | 
|  |  | 
|  | This is a sound driver extension for SoundBlaster AWE32 and other | 
|  | compatible cards (AWE32-PnP, SB32, SB32-PnP, AWE64 & etc) to enable | 
|  | the wave synth operations.  The driver is provided for Linux 1.2.x | 
|  | and 2.[012].x kernels, as well as FreeBSD, on Intel x86 and DEC | 
|  | Alpha systems. | 
|  |  | 
|  | This driver was written by Takashi Iwai <iwai@ww.uni-erlangen.de>, | 
|  | and provided "as is".  The original source (awedrv-0.4.3.tar.gz) and | 
|  | binary packages are available on the following URL: | 
|  | http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/ | 
|  | Note that since the author is apart from this web site, the update is | 
|  | not frequent now. | 
|  |  | 
|  |  | 
|  | * NOTE TO LINUX USERS | 
|  |  | 
|  | To enable this driver on linux-2.[01].x kernels, you need turn on | 
|  | "AWE32 synth" options in sound menu when configure your linux kernel | 
|  | and modules.  The precise installation procedure is described in the | 
|  | AWE64-Mini-HOWTO and linux-kernel/Documetation/sound/AWE32. | 
|  |  | 
|  | If you're using PnP cards, the card must be initialized before loading | 
|  | the sound driver.  There're several options to do this: | 
|  | - Initialize the card via ISA PnP tools, and load the sound module. | 
|  | - Initialize the card on DOS, and load linux by loadlin.exe | 
|  | - Use PnP kernel driver (for Linux-2.x.x) | 
|  | The detailed instruction for the solution using isapnp tools is found | 
|  | in many documents like above.  A brief instruction is also included in | 
|  | the installation document of this package. | 
|  | For PnP driver project, please refer to the following URL: | 
|  | http://www-jcr.lmh.ox.ac.uk/~pnp/ | 
|  |  | 
|  |  | 
|  | * USING THE DRIVER | 
|  |  | 
|  | The awedrv has several different playing modes to realize easy channel | 
|  | allocation for MIDI songs.  To hear the exact sound quality, you need | 
|  | to obtain the extended sequencer program, drvmidi or playmidi-2.5. | 
|  |  | 
|  | For playing MIDI files, you *MUST* load the soundfont file on the | 
|  | driver previously by sfxload utility.  Otherwise you'll here no sounds | 
|  | at all!  All the utilities and driver source packages are found in the | 
|  | above URL.  The sfxload program is included in the package | 
|  | awesfx-0.4.3.tgz.  Binary packages are available there, too.  See the | 
|  | instruction in each package for installation. | 
|  |  | 
|  | Loading a soundfont file is very simple.  Just execute the command | 
|  |  | 
|  | % sfxload synthgm.sbk | 
|  |  | 
|  | Then, sfxload transfers the file "synthgm.sbk" to the driver. | 
|  | Both SF1 and SF2 formats are accepted. | 
|  |  | 
|  | Now you can hear midi musics by a midi player. | 
|  |  | 
|  | % drvmidi foo.mid | 
|  |  | 
|  | If you run MIDI player after MOD player, you need to load soundfont | 
|  | files again, since MOD player programs clear the previous loaded | 
|  | samples by their own data. | 
|  |  | 
|  | If you have only 512kb on the sound card, I recommend to use dynamic | 
|  | sample loading via -L option of drvmidi.  2MB GM/GS soundfont file is | 
|  | available in most midi files. | 
|  |  | 
|  | % sfxload synthgm | 
|  | % drvmidi -L 2mbgmgs foo.mid | 
|  |  | 
|  | This makes a big difference (believe me)!  For more details, please | 
|  | refer to the FAQ list which is available on the URL above. | 
|  |  | 
|  | The current chorus, reverb and equalizer status can be changed by | 
|  | aweset utility program (included in awesfx package).  Note that | 
|  | some awedrv-native programs (like drvmidi and xmp) will change the | 
|  | current settings by themselves.  The aweset program is effective | 
|  | only for other programs like playmidi. | 
|  |  | 
|  | Enjoy. | 
|  |  | 
|  |  | 
|  | * COMPILE FLAGS | 
|  |  | 
|  | Compile conditions are defined in awe_config.h. | 
|  |  | 
|  | [Compatibility Conditions] | 
|  | The following flags are defined automatically when using installation | 
|  | shell script. | 
|  |  | 
|  | - AWE_MODULE_SUPPORT | 
|  | indicates your Linux kernel supports module for each sound card | 
|  | (in recent 2.1 or 2.2 kernels and unofficial patched 2.0 kernels | 
|  | as distributed in the RH5.0 package). | 
|  | This flag is automatically set when you're using 2.1.x kernels. | 
|  | You can pass the base address and memory size via the following | 
|  | module options, | 
|  | io = base I/O port address (eg. 0x620) | 
|  | memsize = DRAM size in kilobytes (eg. 512) | 
|  | As default, AWE driver probes these values automatically. | 
|  |  | 
|  |  | 
|  | [Hardware Conditions] | 
|  | You DON'T have to define the following two values. | 
|  | Define them only when the driver couldn't detect the card properly. | 
|  |  | 
|  | - AWE_DEFAULT_BASE_ADDR		(default: not defined) | 
|  | specifies the base port address of your AWE32 card. | 
|  | 0 means to autodetect the address. | 
|  |  | 
|  | - AWE_DEFAULT_MEM_SIZE		(default: not defined) | 
|  | specifies the memory size of your AWE32 card in kilobytes. | 
|  | -1 means to autodetect its size. | 
|  |  | 
|  |  | 
|  | [Sample Table Size] | 
|  | From ver.0.4.0, sample tables are allocated dynamically (except | 
|  | Linux-1.2.x system), so you need NOT to touch these parameters. | 
|  | Linux-1.2.x users may need to increase these values to appropriate size | 
|  | if the sound card is equipped with more DRAM. | 
|  |  | 
|  | - AWE_MAX_SF_LISTS, AWE_MAX_SAMPLES, AWE_MAX_INFOS | 
|  |  | 
|  |  | 
|  | [Other Conditions] | 
|  |  | 
|  | - AWE_ALWAYS_INIT_FM		(default: not defined) | 
|  | indicates the AWE driver always initialize FM passthrough even | 
|  | without DRAM on board.  Emu8000 chip has a restriction for playing | 
|  | samples on DRAM that at least two channels must be occupied as | 
|  | passthrough channels. | 
|  |  | 
|  | - AWE_DEBUG_ON			(default: defined) | 
|  | turns on debugging messages if defined. | 
|  |  | 
|  | - AWE_HAS_GUS_COMPATIBILITY	(default: defined) | 
|  | Enables GUS compatibility mode if defined, reading GUS patches and | 
|  | GUS control commands.  Define this option to use GMOD or other | 
|  | GUS module players. | 
|  |  | 
|  | - CONFIG_AWE32_MIDIEMU		(default: defined) | 
|  | Adds a MIDI emulation device by Emu8000 wavetable.  The emulation | 
|  | device can be accessed as an external MIDI, and sends the MIDI | 
|  | control codes directly.  XG and GS sysex/NRPN are accepted. | 
|  | No MIDI input is supported. | 
|  |  | 
|  | - CONFIG_AWE32_MIXER		(default: not defined) | 
|  | Adds a mixer device for AWE32 bass/treble equalizer control. | 
|  | You can access this device using /dev/mixer?? (usually mixer01). | 
|  |  | 
|  | - AWE_USE_NEW_VOLUME_CALC	(default: defined) | 
|  | Use the new method to calculate the volume change as compatible | 
|  | with DOS/Win drivers.  This option can be toggled via aweset | 
|  | program, or drvmidi player. | 
|  |  | 
|  | - AWE_CHECK_VTARGET		(default: defined) | 
|  | Check the current volume target value when searching for an | 
|  | empty channel to allocate a new voice.  This is experimentally | 
|  | implemented in this version.  (probably, this option doesn't | 
|  | affect the sound quality severely...) | 
|  |  | 
|  | - AWE_ALLOW_SAMPLE_SHARING	(default: defined) | 
|  | Allow sample sharing for differently loaded patches. | 
|  | This function is available only together with awesfx-0.4.3p3. | 
|  | Note that this is still an experimental option. | 
|  |  | 
|  | - DEF_FM_CHORUS_DEPTH		(default: 0x10) | 
|  | The default strength to be sent to the chorus effect engine. | 
|  | From 0 to 0xff.  Larger numbers may often cause weird sounds. | 
|  |  | 
|  | - DEF_FM_REVERB_DEPTH		(default: 0x10) | 
|  | The default strength to be sent to the reverb effect engine. | 
|  | From 0 to 0xff.  Larger numbers may often cause weird sounds. | 
|  |  | 
|  |  | 
|  | * ACKNOWLEDGMENTS | 
|  |  | 
|  | Thanks to Witold Jachimczyk (witek@xfactor.wpi.edu) for much advice | 
|  | on programming of AWE32.  Much code is brought from his AWE32-native | 
|  | MOD player, ALMP. | 
|  | The port of awedrv to FreeBSD is done by Randall Hopper | 
|  | (rhh@ct.picker.com). | 
|  | The new volume calculation routine was derived from Mark Weaver's | 
|  | ADIP compatible routines. | 
|  | I also thank linux-awe-ml members for their efforts | 
|  | to reboot their system many times :-) | 
|  |  | 
|  |  | 
|  | * TODO'S | 
|  |  | 
|  | - Complete DOS/Win compatibility | 
|  | - DSP-like output | 
|  |  | 
|  |  | 
|  | * COPYRIGHT | 
|  |  | 
|  | Copyright (C) 1996-1998 Takashi Iwai | 
|  |  | 
|  | This program is free software; you can redistribute it and/or modify | 
|  | it under the terms of the GNU General Public License as published by | 
|  | the Free Software Foundation; either version 2 of the License, or | 
|  | (at your option) any later version. | 
|  |  | 
|  | This program is distributed in the hope that it will be useful, | 
|  | but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | GNU General Public License for more details. | 
|  |  | 
|  | You should have received a copy of the GNU General Public License | 
|  | along with this program; if not, write to the Free Software | 
|  | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |