| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /proc/sound, /dev/sndstat | 
 | 2 | ------------------------- | 
 | 3 |  | 
 | 4 | /proc/sound and /dev/sndstat is not supported by the | 
 | 5 | driver. To find out whether the driver succeeded loading, | 
 | 6 | check the kernel log (dmesg). | 
 | 7 |  | 
 | 8 |  | 
 | 9 | ALaw/uLaw sample formats | 
 | 10 | ------------------------ | 
 | 11 |  | 
 | 12 | This driver does not support the ALaw/uLaw sample formats. | 
 | 13 | ALaw is the default mode when opening a sound device | 
 | 14 | using OSS/Free. The reason for the lack of support is | 
 | 15 | that the hardware does not support these formats, and adding | 
 | 16 | conversion routines to the kernel would lead to very ugly | 
 | 17 | code in the presence of the mmap interface to the driver. | 
 | 18 | And since xquake uses mmap, mmap is considered important :-) | 
 | 19 | and no sane application uses ALaw/uLaw these days anyway. | 
 | 20 | In short, playing a Sun .au file as follows: | 
 | 21 |  | 
 | 22 | cat my_file.au > /dev/dsp | 
 | 23 |  | 
 | 24 | does not work. Instead, you may use the play script from | 
 | 25 | Chris Bagwell's sox-12.14 package (available from the URL | 
 | 26 | below) to play many different audio file formats. | 
 | 27 | The script automatically determines the audio format | 
 | 28 | and does do audio conversions if necessary. | 
 | 29 | http://home.sprynet.com/sprynet/cbagwell/projects.html | 
 | 30 |  | 
 | 31 |  | 
 | 32 | Blocking vs. nonblocking IO | 
 | 33 | --------------------------- | 
 | 34 |  | 
 | 35 | Unlike OSS/Free this driver honours the O_NONBLOCK file flag | 
 | 36 | not only during open, but also during read and write. | 
 | 37 | This is an effort to make the sound driver interface more | 
 | 38 | regular. Timidity has problems with this; a patch | 
 | 39 | is available from http://www.ife.ee.ethz.ch/~sailer/linux/pciaudio.html. | 
 | 40 | (Timidity patched will also run on OSS/Free). | 
 | 41 |  | 
 | 42 |  | 
 | 43 | MIDI UART | 
 | 44 | --------- | 
 | 45 |  | 
 | 46 | The driver supports a simple MIDI UART interface, with | 
 | 47 | no ioctl's supported. | 
 | 48 |  | 
 | 49 |  | 
 | 50 | MIDI synthesizer | 
 | 51 | ---------------- | 
 | 52 |  | 
 | 53 | The card both has an OPL compatible FM synthesizer as well as | 
 | 54 | a wavetable synthesizer. | 
 | 55 |  | 
 | 56 | I haven't managed so far to get the OPL synth running. | 
 | 57 |  | 
 | 58 | Using the wavetable synthesizer requires allocating | 
 | 59 | 1-4MB of physically contiguous memory, which isn't possible | 
 | 60 | currently on Linux without ugly hacks like the bigphysarea | 
 | 61 | patch. Therefore, the driver doesn't support wavetable | 
 | 62 | synthesis. | 
 | 63 |  | 
 | 64 |  | 
 | 65 | No support from S3 | 
 | 66 | ------------------ | 
 | 67 |  | 
 | 68 | I do not get any support from S3. Therefore, the driver | 
 | 69 | still has many problems. For example, although the manual | 
 | 70 | states that the chip should be able to access the sample | 
 | 71 | buffer anywhere in 32bit address space, I haven't managed to | 
 | 72 | get it working with buffers above 16M. Therefore, the card | 
 | 73 | has the same disadvantages as ISA soundcards. | 
 | 74 |  | 
 | 75 | Given that the card is also very noisy, and if you haven't | 
 | 76 | already bought it, you should strongly opt for one of the | 
 | 77 | comparatively priced Ensoniq products. | 
 | 78 |  | 
 | 79 |  | 
 | 80 | Thomas Sailer | 
 | 81 | t.sailer@alumni.ethz.ch |