636 lines
22 KiB
Plaintext
636 lines
22 KiB
Plaintext
Newsgroups: comp.os.linux.announce,comp.os.linux.help
|
|
From: tranter@software.mitel.com (Jeff Tranter)
|
|
Subject: Linux Sound HOWTO
|
|
Keywords: Linux, HOWTO, sound, multimedia, hardware
|
|
Summary: Sound hardware and software for the Linux operating system
|
|
Organization: none
|
|
Followup-To: poster
|
|
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
|
|
|
|
Archive-name: linux/howto/sound
|
|
Last-modified: 1 Feb 94
|
|
|
|
The Linux Sound HOWTO
|
|
by Jeff Tranter, <tranter@software.mitel.com>
|
|
v1.2, Last Modified 1 February 1994
|
|
|
|
---------------------------------------------------------------------------
|
|
|
|
INDEX
|
|
|
|
0 Introduction
|
|
0.1 Acknowledgments
|
|
0.2 New versions of this document
|
|
0.3 Feedback
|
|
0.4 Other sources of information
|
|
0.5 Version Information
|
|
1 Supported Sound Hardware
|
|
1.1 Sound Cards
|
|
1.2 PC Speaker
|
|
1.3 Parallel Port
|
|
2 Configuring Linux for Sound Support
|
|
2.1 Installing Sound Card
|
|
2.2 Configuring Kernel
|
|
2.4 Creating Device Files
|
|
2.4 Testing Configuration
|
|
3 Applications Supporting Sound
|
|
3.1 Tools and Utilities
|
|
3.2 Games
|
|
4 Answers To Frequently Asked Questions
|
|
|
|
------------------------------------------------------------------------
|
|
0 Introduction
|
|
|
|
This HOWTO document describes sound support for Linux -- how to
|
|
configure the kernel, what applications run under Linux that support
|
|
sound, and answers to frequently asked questions about sound
|
|
cards. The intent is to bring new users up to speed more quickly and
|
|
reduce the amount of traffic in the usenet news groups.
|
|
|
|
The scope is limited to the aspects of sound cards pertaining to
|
|
Linux. See the other documents listed in section 0.4 for more
|
|
general information on sound cards.
|
|
|
|
0.1 Acknowledgments
|
|
|
|
Much of this information came from the Readme files provided with the
|
|
sound driver source code, by Hannu Savolainen. Thanks go to Hannu and
|
|
the many other people who developed the Linux kernel sound drivers and
|
|
utilities.
|
|
|
|
0.2 New versions of this document
|
|
|
|
New versions of this document will be periodically posted to
|
|
comp.os.linux.announce. They will also be uploaded to the various
|
|
anonymous ftp sites that archive such information including
|
|
sunsite.unc.edu:/pub/Linux/docs/HOWTO.
|
|
|
|
0.3 Feedback
|
|
|
|
If you have and suggestions, corrections, or comments on the HOWTO,
|
|
please send them to the author and I will try to incorporate them in
|
|
the next release.
|
|
|
|
0.4 Other sources of information
|
|
|
|
The following FAQs are regularly posted to the usenet newsgroup
|
|
news.announce as well as being archived at the site rtfm.mit.edu in
|
|
the directory /pub/usenet/news.answers:
|
|
|
|
PCsoundcards/generic-faq Generic PC Soundcard FAQ
|
|
PCsoundcards/soundcard-faq comp.sys.ibm.pc.soundcard FAQ
|
|
PCsoundcards/gravis-ultrasound/faq Gravis Ultrasound FAQ
|
|
audio_fmts/part1 Audio file format descriptions
|
|
audio_fmts/part2 Audio file format descriptions
|
|
|
|
These FAQs also list several product specific mailing lists and
|
|
archive sites.
|
|
|
|
The following Usenet news groups discuss sound and/or music related
|
|
issues:
|
|
|
|
alt.binaries.sounds.misc Digitized sounds and software
|
|
alt.binaries.sounds.d Discussion and follow-up group
|
|
alt.binaries.multimedia Multimedia sounds and software
|
|
alt.sb.programmer Soundblaster programming topics
|
|
comp.multimedia Multimedia topics
|
|
comp.music Computer music theory and research
|
|
comp.sys.ibm.pc.soundcard IBM PC soundcard topics
|
|
|
|
The Linux Activists mailing list has a SOUND channel. To find out how
|
|
to join the mailing list, send mail to
|
|
"linux-activists-request@joker.cs.hut.fi".
|
|
|
|
The Readme files included with the kernel sound driver source code
|
|
contain useful information about the sound card drivers. These can
|
|
typically be found in the directory "/usr/src/linux/drivers/sound".
|
|
|
|
The Linux Software Map (LSM) is an invaluable reference for locating
|
|
Linux software. Searching the LSM for keywords such as "sound" is a
|
|
good way to identify applications related to sound hardware. The LSM
|
|
can be found on various anonymous FTP sites, including
|
|
sunsite.unc.edu:/pub/Linux/docs/LSM.gz
|
|
|
|
0.5 Version Information
|
|
|
|
At time of writing, the latest Linux sound driver was version 2.4,
|
|
and was included as part of the Linux kernel version 0.99 ALPHA-pl14t
|
|
and later.
|
|
|
|
------------------------------------------------------------------------
|
|
1 Supported Sound Hardware
|
|
|
|
1.1 Sound Cards
|
|
|
|
The following sound cards are supported by the Linux kernel:
|
|
|
|
- MPU-401 MIDI interface
|
|
- AdLib
|
|
- SoundBlaster (1.0-2.0) and compatibles, including ThunderBoard and Ati
|
|
Stereo F/X.
|
|
- SoundBlaster Pro and SoundBlaster Pro 2
|
|
- SoundBlaster 16 (this is a BETA test version)
|
|
- ProAudioSpectrum 16 (The original ProAudioSpectrum and the
|
|
ProAudioSpectrum+ are not supported and will probably remain
|
|
unsupported)
|
|
- Gravis UltraSound
|
|
|
|
The Linux kernel supports the SCSI port provided on some sound cards
|
|
(e.g. ProAudioSpectrum 16).
|
|
|
|
The Linux kernel version 0.99pl14x and later has support for CD-ROM
|
|
drives attached to the Soundblaster Pro and SoundBlaster 16 CD-ROM
|
|
port. The drivers can also be added to earlier kernels as a
|
|
patch. Check the Linux Software Map for "sbpcd".
|
|
|
|
A Kernel patch to support joystick ports, including those provided on
|
|
some sound cards, is also available. The latest version can be found
|
|
in tsx-11.mit.edu:/pub/linux/patches/joystick-0.5.tar.z (these patches
|
|
may not apply cleanly as they were written for the 0.99pl9 kernel).
|
|
|
|
1.2 PC Speaker
|
|
|
|
An alternate sound driver is available that requires no additional
|
|
sound hardware; it uses the internal PC speaker. It is mostly software
|
|
compatible with the sound card driver, but, as you might expect,
|
|
provides much lower quality output and has much more CPU overhead. The
|
|
results seem to vary, being dependent on the characteristics of the
|
|
loudspeaker.
|
|
|
|
For more information, see the documentation provided with the
|
|
release.
|
|
|
|
The current version is 0.4, and can be found at
|
|
ftp.informatik.hu-berlin.de:pub/os/linux/hu-sound/pcsndrv-0.4.tar.z as
|
|
well as many other Linux archive sites.
|
|
|
|
1.3 Parallel Port
|
|
|
|
Another option it to build a digital to analog converter using the
|
|
parallel port. This provides better sound quality but still has a lot
|
|
of CPU overhead. The PC sound driver package mentioned above supports
|
|
this, and includes instructions for building the necessary hardware.
|
|
|
|
------------------------------------------------------------------------
|
|
2 Configuring Linux for Sound Support
|
|
|
|
Configuring Linux to support sound involves the following steps:
|
|
|
|
- installing a sound card
|
|
- configuring and building the kernel for sound support
|
|
- creating the device files
|
|
- testing the installation
|
|
|
|
2.1 Installing Sound Card
|
|
|
|
Follow the instructions provided with your sound card. Be sure to note
|
|
down the jumper settings for IRQ, DMA channel, etc... If you are
|
|
unsure, use the factory defaults. Try to avoid conflicts with other
|
|
devices (e.g. ethernet cards) if possible.
|
|
|
|
2.2 Configuring Kernel
|
|
|
|
If you are using a recent kernel (0.99pl14 or later), the sound
|
|
drivers are included with the kernel release. Follow the usual
|
|
procedure for building the kernel. When you run "make config", a
|
|
configuration program will ask you what sound card options you want.
|
|
|
|
If you are upgrading from an older sound driver, remove any old copies
|
|
of /usr/include/sys/soundcard.h and /usr/include/sys/ultrasound.h (if
|
|
they exist). Then make sure that /usr/include/sys/soundcard.h is a
|
|
file containing just the line #include <linux/soundcard.h> and
|
|
/usr/include/sys/ultrasound.h is a file containing just the line
|
|
#include <linux/ultrasound.h>.
|
|
|
|
It's good idea to read the Readme* files in the kernel drivers/sound
|
|
directory since there could be some last minute information. The file
|
|
CHANGELOG contains a list of enhancements and new features since the
|
|
previous version.
|
|
|
|
2.4 Create Device Files
|
|
|
|
Once the kernel is configured, you need to create the sound device
|
|
files. The easiest way to do this is to cut the short shell script
|
|
from the end of the file /usr/src/linux/drivers/sound/Readme.linux,
|
|
and run it as root.
|
|
|
|
2.4 Testing Configuration
|
|
|
|
You can now follow these steps to verify the sound hardware and
|
|
software:
|
|
|
|
1. Reboot with the new kernel
|
|
|
|
Follow your usual procedure for installing and rebooting the new
|
|
kernel (keep the old kernel around in case of problems, of course).
|
|
|
|
2. Verify that sound card is recognized during kernel initialization
|
|
|
|
Check for a message such as the following on powerup:
|
|
|
|
<6>snd2 <SoundBlaster Pro 3.2> at 0x220 irq 5 drq 1
|
|
<6>snd1 <Yamaha OPL-3 FM> at 0x388 irq 0 drq 0
|
|
|
|
This should match your sound card type and jumper settings.
|
|
|
|
The driver may also display some error messages and warnings during
|
|
boot. Watch for these when booting the first time after configuring
|
|
the sound driver.
|
|
|
|
If no sound card is detected when booting, there are two possible
|
|
reasons:
|
|
|
|
1) The configuration of the driver is incorrect and the driver was not
|
|
able to detect your card in the given I/O address, or
|
|
|
|
2) The sound driver was configured to be inactive or you booted with an
|
|
old kernel (a common error).
|
|
|
|
3. Check device file /dev/sndstat
|
|
|
|
Reading the sound driver status device file should provide additional
|
|
information on whether the sound card driver initialized
|
|
properly. Sample output should look something like this:
|
|
|
|
% cat /dev/sdndstat
|
|
|
|
Sound Driver:2.3b (Tue Jan 4 18:14:00 EST 1994 root@fizzbin.)
|
|
Config options: 1aa2
|
|
|
|
HW config:
|
|
Type 2: SoundBlaster at 0x220 irq 5 drq 1
|
|
Type 1: AdLib at 0x388 irq 0 drq 0
|
|
|
|
PCM devices:
|
|
0: SoundBlaster Pro 3.2
|
|
|
|
Synth devices:
|
|
0: Yamaha OPL-3
|
|
|
|
Midi devices:
|
|
0: SoundBlaster
|
|
|
|
Mixer(s) installed
|
|
|
|
If the cat command displays "No such device", the sound driver is not
|
|
active in the kernel.
|
|
|
|
If the printout contains no devices (PCM, Synth or MIDI), your
|
|
soundcard was not detected. Verify that the "HW config" section
|
|
contains correct information.
|
|
|
|
4. Play a simple sound file
|
|
|
|
Get hold of a sample sound file, and send it to the sound device as
|
|
a basic check of sound output, e.g.
|
|
|
|
% cat endoftheworld >/dev/dsp
|
|
% cat crash.au >/dev/audio
|
|
|
|
Some sample sound files can be obtained from the file
|
|
snd-data-0.1.tar.Z
|
|
|
|
5. Verify sound recording
|
|
|
|
If you have sound input capability, you can do a quick test of this
|
|
using commands such as the following:
|
|
|
|
# record 4 seconds of audio from microphone
|
|
% dd bs=8k count=4 </dev/audio >sample.au
|
|
# play back sound
|
|
% cat sample.au >/dev/audio
|
|
|
|
If these tests pass, you can be reasonably confident that the sound
|
|
hardware and software are working. If you experience problems, read
|
|
section 4 of this document.
|
|
|
|
------------------------------------------------------------------------
|
|
3 Applications Supporting Sound
|
|
|
|
This section lists a sampling of some of the more important tools,
|
|
utilities, and games that run under Linux and support sound. The Linux
|
|
Software Map should be consulted for the latest version and archive
|
|
sites for these files.
|
|
|
|
3.1 Tools and Utilities
|
|
|
|
adagio
|
|
- adagio score file player ("ad")
|
|
- MIDI file player ("mp")
|
|
- includes XView GUI version ("xmp")
|
|
- "mp" also has limited ability to play Amiga mod files
|
|
|
|
aumix
|
|
- ncurses based (colour) utility for controlling volume and mixing of
|
|
sound sources
|
|
- also an experimental dB level meter
|
|
|
|
auplay
|
|
- a standalone program that allows playing Sun .au files through PC
|
|
speaker without any kernel support
|
|
- this was the precursor to the PC speaker sound driver package
|
|
(pcsndrv)
|
|
|
|
glib
|
|
- FM synthesizer library and patch editor ("glib")
|
|
- "xgl" is an OpenLook GUI version of "glib"
|
|
- contains some documentation on programming AdLib/SoundBlaster FM
|
|
music chips
|
|
|
|
lsox
|
|
- sound file conversion utility ("sox")
|
|
- read/writes many sound formats
|
|
- provides conversion and effects
|
|
- also supports playing sound files ("play")
|
|
|
|
ogi
|
|
- speech data manipulation tools
|
|
|
|
pcsndrv
|
|
- kernel sound driver that supports PC speaker
|
|
- mostly compatible with kernel sound card driver
|
|
- also supports printer parallel port D/A converter
|
|
- "pcsel" utility to select which sound device to use
|
|
- "vplay" and "vrec" for playing and recording sound files
|
|
- includes explanation of how PC sound driver works
|
|
|
|
rsynth
|
|
- speech synthesizer uses synthesized instead of sampled
|
|
phonemes
|
|
- good quality speech (with a British accent), but slow on a machine
|
|
without a math coprocessor (e.g. 3 minutes to generate 4 words)
|
|
|
|
snd-data-0.1
|
|
- various sound files (sampled sounds, mod files, patches, etc...)
|
|
|
|
snd-driv-2.0
|
|
- VoxWare kernel drivers for sound cards
|
|
- now included in Linux kernel distribution as of 0.99pl14
|
|
- only really needed if building for OS other than Linux
|
|
|
|
snd-util-2.3
|
|
- various sound utilities
|
|
- some of these are obsolete and replaced by Adagio, Tracker, etc...
|
|
|
|
speak
|
|
- speech synthesis program
|
|
- very crude (uses 42 fixed, sampled phonemes)
|
|
- somewhat entertaining
|
|
|
|
tracker
|
|
- Amiga mod file player ("tracker")
|
|
- command line interface only
|
|
|
|
wavplay
|
|
- plays .wav sound files ("play")
|
|
- Sox is probably better (supports more file types)
|
|
- also an X interface version ("xplay")
|
|
- to work with the latest sound driver, need to apply patch found in
|
|
wavplay021_patch.tar.gz
|
|
|
|
3.2 Games
|
|
|
|
The following games support sound:
|
|
|
|
b-dash
|
|
- a clone of B*ulderDash
|
|
- see sunsite:/pub/Linux/games/bdash021b.tgz
|
|
|
|
xboing
|
|
- "breakout" type arcade game
|
|
- see sunsite:/pub/Linux/X11/games/xboing-1.5-bin.tar.gz)
|
|
|
|
------------------------------------------------------------------------
|
|
4 Answers To Frequently Asked Questions
|
|
|
|
4.1 What are the various sound device files?
|
|
|
|
/dev/audio - Sun workstation compatible audio device (read/write)
|
|
(only a partial implementation, does not support Sun
|
|
ioctl interface, just u-law encoding)
|
|
/dev/dsp - digital sampling device (read/write)
|
|
/dev/mixer - sound mixer
|
|
/dev/sequencer - MIDI, FM, and GUS access
|
|
/dev/midi - MIDI device (not yet implemented in current sound driver)
|
|
/dev/sndstat - displays sound driver status when read
|
|
/dev/audio1 - for second sound card
|
|
/dev/dsp1 - for second sound card
|
|
|
|
The PC speaker driver provides the following devices:
|
|
|
|
/dev/pcaudio - equivalent to /dev/audio
|
|
/dev/pcsp - equivalent to /dev/dsp
|
|
/dev/pcmixer - equivalent to /dev/mixer
|
|
|
|
4.2 How can I play a sound sample?
|
|
|
|
Sun workstation (.au) sound files can be played by sending them to the
|
|
/dev/audio device. Raw samples can be send to /dev/dsp. Using a
|
|
program such as "play" is preferable, as it will recognize most file
|
|
types and set the sound card to the correct sampling rate, etc..
|
|
|
|
4.3 How can I record a sample?
|
|
|
|
Reading /dev/audio or /dev/dsp will return sampled data that can be
|
|
redirected to a file. A program such as "vrec" makes it easier to
|
|
control the sampling rate, duration, etc...
|
|
|
|
4.4 Can I have more than one sound card?
|
|
|
|
Up to two sound cards is supported. It's possible to install a
|
|
Gravis UltraSound or MPU-401 with a SoundBlaster, SoundBlaster Pro,
|
|
SoundBlaster16 or ProAudioSpectrum16. It's NOT possible to have a
|
|
ProAudioSpectrum16 and SoundBlaster at the same time (PAS16 has a SB
|
|
emulator in it). It's also not possible to have more than one card of
|
|
the same type at the same time -- for example, a GUS + GUS combination
|
|
is not possible.
|
|
|
|
You can change the sound card configuration parameters at boot time
|
|
using command line options from a boot loader such as LILO. See the
|
|
kernel sound driver file Readme.linux for details.
|
|
|
|
4.5 I get the error "/dev/???????: No such file or directory" when
|
|
accessing a sound device.
|
|
|
|
You need to create the sound driver device files. See section 2.4.
|
|
|
|
4.6 I get the error "/dev/???????: No such device" when accessing a
|
|
sound device.
|
|
|
|
You have not booted with a kernel containing the sound driver or the
|
|
I/O address configuration doesn't match your hardware.
|
|
|
|
4.7 A sound sample plays for a second and then stops completely and/or
|
|
reports an error message about missing IRQ or "DMA Timed out".
|
|
|
|
You have incorrect IRQ or DMA channel settings. Verify that the kernel
|
|
configuration matches the sound card jumper settings and that they do
|
|
not conflict with some other card.
|
|
|
|
4.8 There are pauses in the playback of the module player (str,
|
|
tracker)
|
|
|
|
Playing mod files requires considerable CPU power. You may have too
|
|
many processes running or your computer may be too slow to play in
|
|
real time. Your options are to:
|
|
|
|
- try playing with a lower sampling rate or in mono mode
|
|
- eliminate other processes
|
|
- buy a faster computer
|
|
- buy a more powerful sound card (e.g. Gravis Ultrasound)
|
|
|
|
Sometimes (very rarely) an IRQ conflict can cause similar problems
|
|
with SoundBlaster cards.
|
|
|
|
4.9 I get compile errors when compiling applications that support
|
|
sound.
|
|
|
|
The version 1.0c and earlier sound driver used a different and
|
|
incompatible ioctl() scheme. Obtain newer source code or make the
|
|
necessary changes to adapt it to the new sound driver. See the sound
|
|
driver Readme file for details.
|
|
|
|
Also ensure that you have used the latest version of soundcard.h (and
|
|
ultrasound.h) when compiling the application. See the installation
|
|
instructions at beginning of this text.
|
|
|
|
4.10 I get segmentation violations when running sound application
|
|
binaries that worked previously
|
|
|
|
This is probably the same problem described in section 4.8.
|
|
|
|
4.11 I have problems with Tracker 3.10
|
|
|
|
Version 3.10 of tracker contains some bugs. Try to obtain version 3.19
|
|
from an archive site, or wait until version 4.0 is out.
|
|
|
|
4.12 What known bugs or limitations are there in the sound driver?
|
|
|
|
See the Readme and CHANGELOG files included with the sound driver
|
|
kernel source.
|
|
|
|
4.13 What version of the sound driver I should use?
|
|
|
|
If you are using version 1.0c or earlier, you definitely need to
|
|
upgrade. Version 1.0c is not compatible with the applications written
|
|
for version 2.0 or later.
|
|
|
|
There have been no significant changes after version 2.0, so if you
|
|
don't have problems and that particular version fulfills your
|
|
requirements, there are no compelling reasons to move to a more recent
|
|
version (this should be true at least until September 1994).
|
|
|
|
The latest official version is in the latest Linux kernel
|
|
distribution. There may also be some test and prototype versions
|
|
lying around. If the version number is smaller than 2.9, the version
|
|
should be quite safe. Any driver release having a version number of
|
|
the form 2.99.XX is an incompletely implemented and experimental test
|
|
release.
|
|
|
|
If you are interested about development of the sound driver, join the
|
|
SOUND channel (see section 0.4).
|
|
|
|
4.14 What do all the sound driver configuration options mean?
|
|
|
|
During configuration of the sound driver, a "configure" program is
|
|
compiled and executed. This program asks you some questions and then
|
|
generates the header file "local.h" that defines the sound card
|
|
configuration.
|
|
|
|
The configuration file local.h defines (or undefines) the following
|
|
symbols:
|
|
|
|
Symbol Meaning
|
|
====== =======
|
|
KERNEL_SOUNDCARD enable/disable sound driver
|
|
CONFIGURE_SOUNDCARD enable/disable sound driver
|
|
EXCLUDE_PAS ProAudioSpectrum support
|
|
EXCLUDE_SB SoundBlaster support
|
|
EXCLUDE_ADLIB AdLib support
|
|
EXCLUDE_GUS GravisUltrasound support
|
|
EXCLUDE_MPU401 MPU-401 MIDI interface support
|
|
EXCLUDE_SBPRO SoundBlaster Pro support
|
|
EXCLUDE_SB16 SoundBlaster 16 support
|
|
EXCLUDE_AUDIO Digitized voice support
|
|
EXCLUDE_MIDI MIDI interface support
|
|
EXCLUDE_YM3812 FM synthesizer (YM3812/OPL-3) support
|
|
EXCLUDE_SEQUENCER MIDI sequencer support
|
|
EXCLUDE_PRO_MIDI SoundBlaster Pro MIDI support
|
|
EXCLUDE_CHIP_MIDI MIDI on CHIP support
|
|
SBC_IRQ SoundBlaster IRQ number
|
|
SBC_DMA SoundBlaster DMA channel
|
|
SB16_DMA SoundBlaster 16 DMA channel
|
|
SB16_MIDI_BASE base address of SoundBlaster 16 MIDI port
|
|
PAS_IRQ ProAudioSpectrum IRQ number
|
|
PAS_DMA ProAudioSpectrum DMA channel
|
|
GUS_IRQ Gravis Ultrasound IRQ number
|
|
GUS_DMA GravisUltrasound DMA channel
|
|
GUS_BASE base address of GravisUltrasound
|
|
MPU_IRQ MPU-401 IRQ number
|
|
MPU_BASE base address of MPU-401 port
|
|
DSP_BUFFSIZE 32768 DMA buffer size
|
|
|
|
Several other defines are also created, defining such things as the
|
|
sound driver revision level and the time and date when configure was
|
|
run.
|
|
|
|
There are other parameters that are not set by the configure program
|
|
(e.g. SoundBlaster i/o base address). If you need to change these,
|
|
edit the file sound_config.h
|
|
|
|
To disable the sound driver, run configure and answer "y" to the
|
|
question "Do you want to DISABLE the Sound Driver (n/y) ?"
|
|
|
|
4.15 What future enhancements are planned for the sound driver?
|
|
|
|
The sound driver is not just for Linux, it also supports, or will
|
|
support, other Intel-based Unix operating systems. The package is now
|
|
called "VoxWare".
|
|
|
|
Some of the enhancements being considered are:
|
|
- implementing MIDI support
|
|
- patch manager support
|
|
- document sound card driver (Hacker's Guide)
|
|
- support for ISC, SCO, BSD, SVR4 operating systems
|
|
- support for new sound cards
|
|
- miscellaneous bug fixes
|
|
|
|
4.16 Where are the sound driver ioctls() etc... documented?
|
|
|
|
The sound driver is not currently documented, other than the Readme
|
|
and source files in the kernel. The interface to the kernel sound
|
|
drivers is defined in <linux/soundcard.h>.
|
|
|
|
For now you'll have to look at the source code for the sound drivers,
|
|
and/or other applications that use the sound card.
|
|
|
|
Hannu Savolainen is planning to write a Hacker's Guide to the sound
|
|
driver.
|
|
|
|
4.17 What CPU resources are needed to play or record without pauses?
|
|
|
|
There is no easy answer to this, as it depends on:
|
|
- whether using PCM sampling or FM synthesis
|
|
- sampling rate and sample size
|
|
- which application is used to play or record
|
|
- Sound Card hardware
|
|
- disk I/O rate, CPU clock speed, cache size, etc...
|
|
|
|
In general, any 386 machine should be able to play samples or FM
|
|
synthesized music on an 8 bit soundcard with ease.
|
|
|
|
Playing mod files, however, requires considerable CPU resources. Some
|
|
experimental measurements have shown that playing at 44kHz requires
|
|
more than 40% of the speed of a 486/50 and a 386/25 can hardly play
|
|
faster than 22 kHz. These are with an 8 bit card sound such as a
|
|
SoundBlaster. A card such as the Gravis Ultrasound card performs more
|
|
functions in hardware, and will require less CPU resources.
|
|
|
|
These statements assume the computer is not performing any other CPU
|
|
intensive tasks.
|
|
|
|
Converting sound files or adding effects using a utility such as Sox
|
|
is also much faster if you have a math coprocessor. The kernel driver
|
|
itself does not do any floating point calculations, though.
|
|
|