mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-24 11:29:10 +00:00
256 lines
9.6 KiB
Plaintext
256 lines
9.6 KiB
Plaintext
Release notes for the Linux Sound Driver 2.5
|
|
--------------------------------------------
|
|
There is also a version called 2.5-beta floating around the net. This
|
|
version contains some fixes after it. Mainly to the SB and GUS code.
|
|
|
|
CAUTION! The SVR4.2 port has not been tested much. Backup your system
|
|
carefully before trying it.
|
|
|
|
This is mainly a bug fix release. There are couple of new things such as
|
|
linear volume mode for GUS and MIDI recording for SB 2.0 and SB Pro.
|
|
Also this version supports the mixer of GUS v3.7. (Support for GUS MAX and
|
|
the 16-bit daughtercard is coming sooner or later).
|
|
|
|
NOTE! The sound driver is a part of the Linux kernel distribution also.
|
|
Check that your kernel doesn't have more recent version than this
|
|
when installing a separately distributed sound driver. The
|
|
version number of this driver is defined in the makefile.
|
|
|
|
This version contains a driver for the SB16 also.
|
|
The SB16 driver requires separate DMA channels for the 8 and 16 bit
|
|
modes. There should be a way to share the 8 bit DMA channels between
|
|
these modes but this feature is not supported yet.
|
|
The SB16 DSP support is by Joerg Schubert (jsb@sth.ruhr-uni-bochum.de).
|
|
|
|
The SB16 driver has also the Midi input capability even at the same
|
|
time with the /dev/dsp. Also the WaveBlaster daughter board is supported.
|
|
No support for the ASP chip yet (the ASP chip can be installed but it's
|
|
not used by the driver).
|
|
|
|
You will need the snd-util-2.5.tar.gz and snd-data-0.1.tar.Z
|
|
packages to use this driver. They should be in the same
|
|
ftp site or BBS from where you got this driver. For
|
|
example at nic.funet.fi:pub/OS/Linux/*.
|
|
|
|
If you are looking for the installation instructions, please
|
|
look at $OS/Readme.
|
|
|
|
This version supports the following soundcards:
|
|
GUS, SoundBlaster, SB Pro, SB16, Pro Audio Spectrum 16 and AdLib.
|
|
In addition there is rather limited support for MPU-401.
|
|
(and compatible) midi cards. Also the OPL-3 synthesizer
|
|
Most of the features of the /dev/sequencer device file are
|
|
available just for GUS owners.
|
|
|
|
NOTE! There are separate driver for CD-ROMS supported by
|
|
some soundcards. The driver for CDU31A (Fusion 16) is
|
|
called cdu31a-0.6.diff.z. It will be contained in the
|
|
Linux version 0.99.12. The driver for the CD-ROM of SB Pro
|
|
is sbpcd0.4.tar.gz (these were the latest versions when I wrote
|
|
this). These files should be at least at sunsite.unc.edu.
|
|
Also the SCSI interface of the PAS16 should be supported by
|
|
Linux 0.99.13k and later.
|
|
|
|
There is also a driver for joystick. Look for file joystick-0.5.tar.gz
|
|
(sunsite).
|
|
|
|
|
|
Compatibility with the earlier versions
|
|
---------------------------------------
|
|
|
|
In this version the ultrasound.h no longer includes the sys/soundcard.h
|
|
You have to change the gmod.c of the snd-util-2.0 package and to add an
|
|
include for it.
|
|
|
|
IMPORTANT!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
This version is not binary or source compatible with the version 1.0c.
|
|
|
|
The ioctl() interface has changed completely since version 1.0c. All
|
|
programs using this driver must be at least recompiled.
|
|
The snd-util-2.0 package contains some utilities for this version.
|
|
|
|
The version 1.0c and earlier used a 'nonportable' ioctl calling scheme
|
|
where the input argument was passed by value and the output value was
|
|
returned as the functional return. For example setting the speed of
|
|
/dev/dsp were done as the following:
|
|
|
|
int actual_speed;
|
|
actual_speed = ioctl(fd, SOUND_PCM_WRITE_RATE, 44100);
|
|
|
|
After version 1.99.0 this must be done as the following:
|
|
|
|
int actual_speed = 44100;
|
|
ioctl(fd, SOUND_PCM_WRITE_RATE, &actual_speed);
|
|
|
|
If you have an application written for the version 1.0, you should search
|
|
for the strings SNDCTL_ and SOUND_ and to check the parameters.
|
|
The following ioctl calls have changed:
|
|
|
|
SNDCTL_SEQ_GETOUTCOUNT
|
|
SNDCTL_SEQ_GETINCOUNT
|
|
SNDCTL_SEQ_TESTMIDI
|
|
SNDCTL_DSP_SPEED
|
|
SNDCTL_DSP_STEREO
|
|
SNDCTL_DSP_GETBLKSIZE
|
|
SNDCTL_DSP_SAMPLESIZE
|
|
SOUND_PCM_WRITE_CHANNELS
|
|
SOUND_PCM_WRITE_FILTER
|
|
SOUND_PCM_READ_RATE
|
|
SOUND_PCM_READ_CHANNELS
|
|
SOUND_PCM_READ_BITS
|
|
SOUND_PCM_READ_FILTER
|
|
SOUND_PCM_WRITE_BITS
|
|
SOUND_PCM_WRITE_RATE
|
|
SOUND_MIXER_READ_* (several ones)
|
|
SOUND_MIXER_WRITE_* (several ones)
|
|
|
|
Since the this version will support more than one synthesizer devices
|
|
at the same time, the ioctl(SNDCTL_FM_LOAD_INSTR) is obsolete. In addition
|
|
there is some new fields which must be initialized. Look at the sbiset.c in
|
|
the snd-util-2.0 package for further info.
|
|
|
|
This version is almost 100% compatible with the alpha test version (1.99.9). The
|
|
difference is in the installation procedure.
|
|
|
|
Using this driver with other operating systems than Linux
|
|
---------------------------------------------------------
|
|
|
|
This package contains just the Linux version. The version 2.3
|
|
for SCO is available at nic.funet.fi:pub/OS/Linux/ALPHA/sound.
|
|
The version 2.3 doesn't work well with xxxxxBSD. Use the version
|
|
2.3 for them.
|
|
|
|
/dev/sndstat
|
|
------------
|
|
|
|
The /dev/sndstat is now available in the SCO and BSD versions also.
|
|
|
|
This is a new devicefile for debugging purposes. A better place for
|
|
it is in the /proc -directory but I was just too lazy to implement it
|
|
properly. The /dev/sndstat (major 14, minor 6) is a file which returns
|
|
info about the current configuration (see the example below). If you
|
|
send me a error/problem report, please include a printout from this
|
|
device to your message (cat /dev/sndstat).
|
|
|
|
Note! This device file is currently present only in the Linux version
|
|
of this driver.
|
|
|
|
------ cut here --- cat /dev/sndstat example --------
|
|
Sound Driver:1.99.7 (Fri Jul 9 17:01:47 GMT 1993 root@lucifer.savolai.fi)
|
|
Config options: 0x00000d4b
|
|
|
|
HW config:
|
|
Type 4: Gravis Ultrasound at 0x210 irq 15 drq 6
|
|
Type 3: ProAudioSpectrum at 0x388 irq 10 drq 3
|
|
Type 2: SoundBlaster at 0x220 irq 7 drq 1
|
|
Type 1: AdLib at 0x388 irq 0 drq 0
|
|
|
|
PCM devices:
|
|
00: Gravis UltraSound
|
|
01: Pro Audio Spectrum
|
|
02: SoundBlaster 2.0
|
|
|
|
Synth devices:
|
|
00: Gravis UltraSound
|
|
01: Yamaha OPL-3
|
|
|
|
Midi devices:
|
|
00: Gravis UltraSound
|
|
01: Pro Audio Spectrum
|
|
|
|
Mixer(s) installed
|
|
------ cut here ---- End of Example -----------
|
|
|
|
Known bugs/limitations
|
|
----------------------
|
|
|
|
- High speed recording of long audio samples (>20 second) to disk
|
|
is not possible. Everything works until next sync() which delays the
|
|
recording process too much. A delay longer than 0.1 to 0.3 seconds is
|
|
too much.
|
|
- The SB16 driver sometimes swaps the left and right channels together.
|
|
- Midi input doesn't work with SB and SB Pro (SB16 works).
|
|
- It's not possible to open /dev/dsp (or /dev/audio) while the
|
|
/dev/sequencer is open for output and GUS is the only soundcard
|
|
installed. It's possible if /dev/dsp is opened before /dev/sequencer
|
|
but at this time the GUS is not available for access via /dev/sequencer.
|
|
This is a limitation of the driver.
|
|
- MPU-401 driver hangs the computer on boot if there is no MPU-401 installed.
|
|
It uses by default the I/O port 0x330 whic is used by Adaptec 1542 SCSI
|
|
adapter.
|
|
- There are some problems in midi input with MPU-401 and the SB16 midi
|
|
(MPU-401 emulation). This makes it impossible to read long sysex dumps
|
|
using these devices.
|
|
- The /dev/sequencer playback to GUS sounds sometimes rather weird. Hitting
|
|
^C and playing again should solve this problem. This is propably caused by
|
|
incompatibilities between GUS and certain VLB motherboards (like mine).
|
|
Try to avoid
|
|
switching between VTs while patches are being loaded to the GUS.
|
|
This problem disappears completely if you define GUS_PATCH_NO_DMA in the
|
|
local.h (after make config in linux). The drawback is that patch loading
|
|
without DMA takes several times longer than with DMA.
|
|
- There is a skeleton of the patch manager support. It don't work in
|
|
this version.
|
|
|
|
|
|
Future development
|
|
------------------
|
|
|
|
- Since this driver is no longer just the Linux Sound Driver, it's time
|
|
to give it a new name. I have planned to use name VoxWare.
|
|
- I'm writing a Hacker's guide to the VoxWare sound driver. Should
|
|
be ready within this(/next) year (alpha version).
|
|
- Completion of the ISC, SCO and BSD ports. Port to SVR4.2.
|
|
- I'm interested to implement/include support for new soundcards and
|
|
operating systems.
|
|
|
|
Hint for the soundcard and OS manufacturers:
|
|
I'm collecting soundcards (high end ones) and SDKs for them. In
|
|
addition I'm collecting PC operating systems. I will be happy if
|
|
somebody sends me such items. In addition such kind of donation
|
|
makes it easier to change the VoxWare driver to support your
|
|
soundcard or operating system. However, please contact me before
|
|
sending anything.
|
|
|
|
I will propably release some fix versions within this and next year. At
|
|
least when the non-Linux versions get ready. The next major release (3.0)
|
|
will be quite complete rewrite and released after about a year (end of 94 or
|
|
beginning of 95).
|
|
|
|
|
|
Contributors
|
|
------------
|
|
|
|
This driver contains code by several contributors. In addition several other
|
|
persons have given usefull suggestions. The following is a list of major
|
|
contributors. (I could have forgotten some names.)
|
|
|
|
Craig Metz 1/2 of the PAS16 Mixer and PCM support
|
|
Rob Hooft Volume computation algorithm for the FM synth.
|
|
Mika Liljeberg uLaw encoding and decoding routines
|
|
Greg Lee Volume computation algorithm for the GUS and
|
|
lot's of valuable suggestions.
|
|
Andy Warner Initial ISC port
|
|
Jim Lowe Initial FreeBSD port
|
|
Anders Baekgaard Bughunting and valuable suggestions.
|
|
Joerg Schubert SB16 DSP support.
|
|
Andrew Robinson Improvements to the GUS driver
|
|
Megens SA MIDI recording for SB and SB Pro.
|
|
Mikael Nordqvist Linear volume support for GUS.
|
|
Ian Hartas SVR4.2 port
|
|
Markus Aroharju and
|
|
Risto Kankkunen Major contributions to the mixer support
|
|
of GUS v3.7.
|
|
Hunyue Yau Sound Galaxy NX Pro mixer support.
|
|
|
|
Regards,
|
|
|
|
Hannu Savolainen
|
|
hannu@voxware.pp.fi, Hannu.Savolainen@Helsinki.fi
|
|
|
|
Snail mail: Hannu Savolainen
|
|
Pallaksentie 4 A 2
|
|
00970 Helsinki
|
|
Finland
|