Using Ensoniq Soundscape cards with OSS
---------------------------------------

NOTE! This document doesn't cover Ensoniq VIVO and VIVO90 cards.
VIVO support is a separately priced component of OSS and
there are no special actions in using them.

There are several different Soundscape revisions made by Ensoniq,
including:

- Soundscape S-2000
- Soundscape Elite
- Soundscape PnP (4 or 5 different models).

The above cards are supported by OSS. In addition there are some
other soundcards that are based on the Soundscape chipsets made
by Ensoniq. Most of these OEM cards work with OSS but there are
some cards that may not work properly (mainly some old cards
made by Reveal or V7/Spea).

In addition there is a "Wave Blaster" compatible MIDI daughtercard
(Soundscape DB) made by Ensoniq but it doesn't need the Soundscape
driver. The daughter card is accessed using the MIDI port of the
"parent" soundcard.

Firmware files
--------------

SoundScape cards have a on board microcontroller which handles MPU401 MIDI
emulation and the second audio device. Before this microcontroller can work
a firmware microcode needs to be loaded to the card. OSS does this step
automatically during soundon command.

Name of the firmware file (sndscape.co#) is asked by soundconf when
a soundscape card is added to the configuration. The # in the name
is a number between 0 and 4 and depends on the model of the card.
OSS requires at least version 3.0 of the firmware files. Currently
these files are only included in the DOS/Windows driver packege
which is distributed with the card and is also available from
ftp://ftp.ensoniq.com. The firmware file should be copied to an
unix directory which is accessible when soundon command is executed. This can
be done by mounting the MS-DOS directory to Unix or by using a floppy or ftp
(BINARY mode) to transfer it.
These files are now also available separately using ftp from
ftp://ftp.4front-tech.com/ensoniq.

A file called sndscape.cod was distributed with early Soundscape cards.
This file is too old and doesn't work with OSS.

If you don't know which firmware file to use, you should do the
following:

1) Check which firmware file is used by the DOS/Windows drivers. This
information is listed in the SNDSCAPE.INI file (in the windows directory).
The right line starts with "CodeFile=".

2) If you didn't find the firmware file from SNDSCAPE.INI you should use a
guess (this doesn't have to be correct at this step). For example:
- With Soundscape S-2000 use sndscape.co0
- With Soundscape Elite use sndscape.co2
- With Soundscape PnP use sndscape.co3 (OPUS based cards) or
sndscape.co4 (OTTO based cards).

3) Then save the configuration and use soundon to start OSS. Look at the end
of /usr/lib/oss/soundon.log (and/or the printout of dmesg command in some
operating systems). The following line should be printed on the file if a
Soundscape card was detected:

SoundScape: The required firmware file is sndscape.co3

The file name printed on the line should match the one configured to OSS.
If they don't match you should use the "Manual configuration" function of
soundconf to change the download file.


Possible startup messages displayed by the Soundscape driver
------------------------------------------------------------

Some messages will be printed to system's console log and
to /usr/lib/oss/soundon.log while the Soundscape driver is started. They
have the following meaning:

"SoundScape: The required firmware file is sndscape.co3"
This message shows name of the firmware file which has to be used
with this card.

"SoundScape board (Firmware 3.4) initialized OK"
This message shows version of the firmware file that has been
loaded to the card. Firmware version 3.0 or later is required
(version 3.4 or later is recommended). In case you have too old
virmware version you should upload a new one (see above).

"OSS: Can't initialize the 2nd audio device due to too old firmware version."
"OSS: Please get at least revision 3.0 of sndscape.co#"
OSS can't use the secodary audio port with older than v3.0 firmware.
The procedure for getting a new firmware file is described above. In
case you don't need the second audio device (for full duplex) there is
no reason to care about these messages.

"SoundScape: The OBP didn't respond after code download"
or
"SoundScape: OBP Initialization failed."
or
"SSCAPE: Unable to load microcode block to the OBP."
Possibly wrong firmware file is being used. Alternatively there are
problems with the DMA channel.

"SSCAPE: Interrupt test failed"
It's very likely that the IRQ configured for the card conflicts
with some other device. Use soundconf to change the IRQ to something
else.

"SoundScape: The device is not in the MPU-401 mode"
This is the expected result after trying to use the MIDI port of a
Soundscape card after firmware download has failed. In other cases
this message should not be displayed.

"SoundScape: Failed to run firmware scope"
This message is usually an indication of DMA problems or. It may also
mean that the soundcard is actually not Soundscape compatible (such as
VIVO) or that there is a serious hardware level problem.
"SSCAPE: Warning! Audio device 1 is playback only"
This message is just a notification. The second audio device of
soundscape cards doesn't have input capability.


The secondary audio device
--------------------------

Soundscape cards have actually two audio devices which are shown in
/dev/sndstat as following (note that the device numbers may be different
if there are other audio devices in the system):

Audio devices:
0: SoundScape (AD1845)
1: SoundScape v3.4 (playback only)

The first audio device can be used both for recording or playback. However this
device doesn't have full duplex capability so simultaneous recording and
playback is not possible with it.

The second audio device provides additional playback channel (no recording). It can
be used for example in applications that require full duplex mode. Usually the second
audio device can be used through /dev/dsp1 and /dev/audio1.

Mixers with Soundscape
----------------------

There are two mixers in Soundscapes. The first one is the main mixer of the card
which controls volumes of the first audio device and CD/LINE/MIC inputs. The second mixer
controls volumes of MIDI playback and the second audio device.

To be able to use the additional mixer you should do the following:

cd /usr/lib/oss
ln -s mixer mixer1

After this /usr/lib/oss/mixer1 can be used to control volumes of the second device.