| Release notes for the Linux Sound Driver 2.4 |
| -------------------------------------------- |
| |
| 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.4.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/*. |
| |
| There is a new version of the tracker program available (tracker-3_19.lzh) but |
| I don't know where it is available. The tracker 3.10 has bugs and it don't work |
| without some fixes. Look at the README of the snd-util-2.3. |
| |
| If you are looking for the installation instructions, please |
| look at linux/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 ISC port |
| Jim Lowe FreeBSD port |
| Anders Baekgaard Bughunting and valuable suggestions. |
| Joerg Schubert SB16 DSP support. |
| Andrew Robinson Improvements to the GUS driver |
| |
| Regards, |
| |
| Hannu Savolainen |
| hsavolai@cs.helsinki.fi |
| |
| Snail mail: Hannu Savolainen |
| Pallaksentie 4 A 2 |
| 00970 Helsinki |
| Finland |