DOS Days

Software Wavetables

25th November 2021

 

In Part 1 we covered an introduction to software wavetables or software patchsets, and looked into Creative Labs' version of these - SoundFont files with extensions of .SBK, .SF1, and .SF2.

In this part, I look at another set of sound cards: Ensoniq AudioPCI, Advanced Gravis UltraSound and Aureal Vortex.

 

Ensoniq AudioPCI - ECW Files

The Ensoniq AudioPCI range of sound cards have no onboard ROM for patches, instead relying on what they called .ECW (Ensoniq Concert Wavetable) files - Ensoniq calls these 'wavesets'. Creative Labs later acquired Ensoniq, so these same wavesets can be used on many Creative Labs PCI sound cards too.

There are three official wavesets from Ensoniq:

  • EAPCI2M.ECW (2 MB)
  • EAPCI4M.ECW (4 MB)
  • EAPCI8M.ECW (8 MB)

Apparently, the 4 MB and 8 MB ECW files were omitted from the Creative Labs Ensoniq PCI sound card install routine (after Creative acquired Ensoniq), so by default it installed the 2 MB waveset. You can get these larger files from the Creative Sound Blaster PCI 128 CD-ROM.

Ensoniq's AudioPCI cards only support this .ECW format (they are not Creative 'soundfont' compatible at all). Other cards that use this .ECW format are the Sound Blaster Live! and Audigy cards. For these cards, they can be configured using the Windows-based 'SBLive Software Synthesizer'. Sound Blaster Live! cards have the benefit of supporting both ECW and soundfont files in Windows.

Sadly, Ensoniq did not release the .ECW file format to the general public, or create any tools to allow others to make their own wavesets. There is only one "unofficial" waveset known to be out there, called 2MG4.ECW (2.9 MB).

Unlike the Creative Labs cards covered in Part 1, Ensoniq AudioPCI cards do not have any onboard RAM for samples. Instead, the waveset file gets loaded into system RAM when the "APINIT" DOS driver is run. In order to change which waveset gets loaded, you can edit SNDSCAPE.INI which is created when you install the AudioPCI DOS device drivers. The contents of this file looks something like this:

[sndscape.drv]

; Product ID
Product=Soundscape

; Ports - Base/MIDI, Wave, and Sound Blaster Device
Port=330
WavePort=534
SBPort=220

; IRQs - MIDI and Wave/SoundBlaster emulation
IRQ=5
SBIRQ=5

; DMA Channel Wave/SoundBlaster emulation
DMA=1

; Switches - SoundBlaster/Soundscape emulation enable, Joystick enable
SBEnable=true
JSEnable=true

; Mixer Settings - Wave, Synth, and CD volumes
WaveVol=127
SynthVol=100
CDVol=96

; Waveset - path and file name of current waveset
SynthFile=C:\SYS\EAPCI\DEFAULT.ECW


The 2 MB waveset is the one bundled with the original Ensoniq AudioPCI card, as well as the Creative PCI64 and PCI128. You can see the last line in the .INI file, where it is called DEFAULT.ECW). This is the same file as EAPCI2M.ECW. Changing DEFAULT.ECW to one of the other waveset files will cause that different waveset to be loaded into RAM when APINIT is run (APINIT is put into AUTOEXEC.BAT by the DOS driver installation process, so it will pick up the chosen waveset each time your PC boots up).

John Engelmann did some work to reverse-engineer the .ECW file format, which you can read on his site here. It appears from his analysis that multiple 'sample sets' can exist inside the ECW file. Since the AudioPCI drivers allows for both a General MIDI (GM) mode and a Roland MT-32 mode, it could mean a waveset file contains two sample sets, or more likely, two separate mappings of instruments to suit GM or MT-32.

So how do they sound? Trawling the web for other peoples' opinions of the ECW wavesets didn't uncover much. Dave Flater provided some interesting background on the move of sound cards from ISA to PCI and the challenges that went with it. With what we know of the Ensoniq AudioPCI, these cards were right at the start of that difficult period. Dave has this to say about the 3 wavesets:

EAPCI2M.ECW (2 MB): "...more artificial-sounding than the others.  The guitars loop instead of fading, so it actually works better for DOOM E1M1."

EAPCI4M.ECW (4 MB): "tested only enough to establish that it was a lot like EAPCI8M.ECW."

EAPCI8M.ECW (8 MB): "...has more realistic-sounding instruments and good drums but the guitars fade too much."


It's interesting that Dave thought the 4 MB and 8 MB wavesets were a lot alike. In earlier research I did, apparently Ensoniq planned to produce an 8 MB one but it never 'materialized' - since an 8 MB waveset file *does exist*, could it be that this is just the 4 MB one copied twice within the same file? I'm sure Dave would have seen that in his reverse-engineering if that were the case. One thing we do know is that the 4 MB waveset also contains Roland GS emulation in addition to 10 drum kits, which the 2 MB file does not. I looked in the 8 MB file, and its descriptor block claims it also has the full GM/GS implementation.

In order to gauge for myself how each waveset sounds, I recorded a number of games using each waveset file. I confirmed a different waveset was being loaded in an extremely rudimentary way - the time taken for the AudioPCI device driver, APINIT, to complete the card's initialisation on boot-up took a lot longer with the 8 MB waveset configured in SNDSCAPE.INI than the 2 MB one.

Duke Nukem 3D

GM 2 MB + SBP   OGG, FLAC
GM 4 MB + SBP   OGG, FLAC
GM 8 MB + SBP   OGG, FLAC
 

Star Wars: TIE Fighter

GM 2 MB + SBP   OGG, FLAC
GM 4 MB + SBP   OGG, FLAC
GM 8 MB + SBP   OGG, FLAC

Gabriel Knight: Sins of the Fathers

GM 2 MB + SBP   OGG, FLAC
GM 4 MB + SBP   OGG, FLAC
GM 8 MB + SBP   OGG, FLAC
 
 

With Duke3D, I honestly cannot tell the difference between the 4 MB waveset and the 8 MB one, but there's a definite improvement between these and the default 2 MB waveset, with the latter being a lot softer and more 'basic'.

With both Star Wars: TIE Fighter and Gabriel Knight, it's tough to spot any differences between all three wavesets.

According to a thread on Vogons, the 2 MB AudioPCI waveset sounds similar to the Ensoniq SoundScape Elite instrument set, while the 4 MB one sounds radically different. There is also the belief that the AudioPCI cards only play MIDI samples at 22 KHz (the Elite does 44.1 KHz), so apparently the SoundScape Elite is still far superior.

2MG4
(Unknown)

As mentioned, this is the only known third-party waveset for AudioPCI. It's 2 MB in size.

EAPCI2M
Ensoniq

The standard Ensoniq 2 MB soundfont that came with the Ensoniq AudioPCI and the later Creative Sound Blaster Live! 5.1, Sound Blaster Vibra128 and Audigy cards. It is the default waveset that gets loaded after you install the Ensoniq driver software, and is similar-sounding to the Ensoniq SoundScape Elite.

The download is not included here as Creative Labs are still an actively operating company and most likely have legal restrictions on redistribution of their intellectual property. You can get this file from your original Ensoniq AudioPCI software drivers/utilities CD or from the Sound Blaster PCI 128 CD.

EAPCI4M
Ensoniq

The standard Ensoniq 4 MB soundfont that came with the Ensoniq AudioPCI and the later Creative Sound Blaster Live! 5.1, Sound Blaster Vibra128 and Audigy cards. It is the default waveset that gets loaded after you install the Ensoniq driver software.

The download is not included here as Creative Labs are still an actively operating company and most likely have legal restrictions on redistribution of their intellectual property. You can get this file from your original Ensoniq AudioPCI software drivers/utilities CD or from the Sound Blaster PCI 128 CD.

EAPCI8M
Ensoniq

Considered to be no different to the EAPCI4M waveset - let me know if you have noticed anything when using this.

The download is not included here as Creative Labs are still an actively operating company and most likely have legal restrictions on redistribution of their intellectual property. You can get this file from your original Ensoniq AudioPCI software drivers/utilities CD or from the Sound Blaster PCI 128 CD.



Advanced Gravis - PAT Files

Advanced Gravis were ahead of the game in terms of the use of software patchsets. They developed "Patch" files with a .PAT extension, which contained their instrument samples. PAT files can be used on any sound card that has the GF-1 wavetable IC. Rather than being a single large file, .PAT files exist on a per-instrument sample basis.

The original Gravis UltraSound driver set contained a folder with 210 .PAT files. This contained some proprietary samples owned by others, and Advanced Gravis provided a licence for use by GUS sound card purchasers. A notice came out in 1997 that read "the GUS patchset is copyright by INI Productions and they contacted us [4Front Technologies] saying that the GUS patches were being illegally used in programs such as TiMidity and 4Front's SoftOSS Engine.". This is one reason why the original GUS patchset is difficult to come by in the wild.

Other 3rd-party patchsets are available, including the PPL150, PPL151 and PPL160 (Pro Patches Lite version 1.60) sound patches by Eero R„s„nen (Vogons user Elviz):

PPLT150 (Pro Patches Lite v1.50)
Eero R„s„nen

Designed for 1 MB Gravis UltraSound/Max/Ace cards, this patchset comprises:
º * 157 better sounding patches. º
º * THE SIZE OF THE PATCH SET IS 90 KB º
º * SMALLER THAN THE ORIGINAL !!! º
º * Easy-to-use "Patmenu" program for managing the patch set. º
º * Easy uninstalling. º
º * Rebuilded 1MB bank for Mega-Em 3.06b º
º * With LoadPats GUS can load 80 patches. º
º * Works with Ultramid's º
º * "Preload patch set" feature.

PPLT160 (Pro Patches Lite v1.60)
Eero R„s„nen

Designed for 1 MB Gravis UltraSound/Max/Ace cards, this is a complete update to the earlier v1.50 patchset.
** Also be sure to download the v1.61 update as it fixes some bugs in this version **


PPLT160 (Pro Patches Lite v1.61)
Eero R„s„nen

PPLT161 is a bug-fix update for the v1.60 patchset, fixing problems with the installation and configuration settings on some games. This update doesn't include any patches, only revised installation/config files.

MegaEM v3.10
Advanced Gravis, 6th March 1996

Mega-Em is a software program which allows you to use your Gravis UltraSound to emulate the following sound devices:
* Roland MT-32/LAPC1
* Roland Sound Canvas/General MIDI
* Roland MPU-401 MIDI interface
* Sound Blaster (Basic version only - not Sound Blaster Pro)

In addition Mega-Em can also replace the UltraMID TSR. Mega-Em effectively combines all previous UltraSound TSR programs -
(IW)SBOS, UltraMID and older versions (2.xx) of Mega-Em.
 

 

Aureal Vortex/Vortex 2 and S3 Sonic Vibes - DLS Files

The Aureal Vortex and S3 Sonic Vibes range of sound cards have no onboard ROM for patches, instead relying on .ARL files or .DLS (Downloadable Sound) files.

DLS files use the relatively common [at the time] RIFF file format with a form type of 'DLS ', and are the format natively supported by Microsoft Windows. Vortex-based cards came with a 4 MB DLS-formatted wavetable file on the driver disk.

DLS went through a few revisions to its standard. The first one was called DLS Level 1 (DLS-1) and came out in 1997. This supported one layer per instrument, a maximum of 16 instruments from the melodic range and 128 in a drum set, one LFO, global articulation for melodic instruments. The smallest amount of sample RAM is 256 KB. DLS-1 was followed by DLS Level 2 (DLS-2) in 1998 which added multiple layer support, per-region articulation, two LFOs and a low-pass filter. Both were 8- or 16-bit PCM mono, and supported loops, envelopes, and LFOs. A later standard called DLS-2+ introduced u-Law, A-Law, 24-bit and 32-bit PCM, DVI-IMA 4-bit ADPCM and MPEG Layer III compression. The final iteration, DLS-2++ added stereo support, fractional loop points, reverse and bidirectional loops, layer-level articulation, LFO ramp time, LFO shapes, and filter types.

Both are similar in structure to the SoundFont Bank (.SBK) format created by E-Mu Systems. Both revisions had more minor updates such as DLS specification v1.1, v2.1 and v2.2. There was also a Mobile DLS specification that was suited to mobile devices and limited to 7 KB of waveform data in the 'minimal device caps' version and 15 KB in the 'full device caps' version.

DLS files can be created and edited using the following tools (among others):

  • Microsoft DirectSound Producer (for DirectX 8.1 and 9.0b)
  • Awave Studio (a demo version can be downloaded and used free of charge, otherwise the full version is around $99)

Shred12DLS
ShredNet, 21 Feb 1999

A 12 MB patchset converted to DLS format.

"The first freely available, "GOOD" DLS Patch set...
All samples are from sf2 files found freely available on the web, and
converted to DLS format using Audio Compositor.
-Replaced some "bad" instrument samples in the gm bank.
-At this point the gm set is about as good as it will get. A few of the
levels may still be off a bit, but due to the current limitations of
DLS, they will have to remain so... for now...
-Included instrument definitions for use with Cakewalk
-Included sample midi files."

Chaos_12mbDLS
ShredNet

This is that great 12mb Chaos set converted to DLS using Audio Compositor (V 3.2b).


UltraGM+
Shane Marsh, 1 August 1997

This is a Sound Font bank (for the Creative Labs AWE family of soundcards, as if you didn't know) in SF2 format and is organized as follows:
GM bank
GS drumset
Bank 1 - Bass sounds
Bank 2 - One shots (non-looped melodic sounds)
Bank 3 - Sustain (looped sounds)
Bank 4 - Non-melodic percussive sounds
Bank 5 - SFX
The entire bank uses 8031k of AWE RAM. Without the bonus sounds, (just the GM bank and GS drumset) the bank uses 7577k of AWE RAM, which leaves 615k (assuming you have 8 meg of RAM on your AWE) for user banks. Some of the samples in the bonus banks are shared by the GM bank and GS drumset, so although the bonus banks are 2563k in their own right, they only add 454k when combined with the GM and GS drumset banks.


 

 

In Part 3, I will look at the wavetable soundfonts for Dream/SAM, Turtle Beach, and more.