.ECW project
About
Years ago, a low-cost sound card known as the Ensoniq AudioPCI was released. This card used a sample-based software MIDI synthesizer for internal "MIDI playback". The samples used by the synth were stored in "wavesets", which were files with an extension of .ECW. The manufacturer, Ensoniq (and later Sound Blaster, who bought Ensoniq and continued the AudioPCI product line with descendents like the Sound Blaster PCI64 and PCI128), never released an editor for these files, nor did they release any info on the file format. As a challenge, I tried my hand at reverse-engineering most of the file format, creating some of my own wavesets, and translating existing wavesets to the ubiquitous .SF2 format. The results follow.
Downloads
.ECW file specification 1.5
Detailed description of the function of almost every byte in an .ECW file. Last updated 2009-1-29. I have since sold my AudioPCI and the PC that housed it, so there will likely be no further updates to this file.
.ECW Decompiler & Sample Extractor v.0.00
A command-line utility to convert .ECW files to an .INI-style text file detailing the .ECW's
contents and a raw .PCM file containing the sample waveform area from the .ECW file. It will
also extract all samples in the .ECW file as .WAV files with loop points and MIDI root notes
included. To use, drag and drop an .ECW file onto "ECW Decompiler.exe". FreeBASIC source code is included. (Of course realize that this version has barely been tested and you are using
this program at your own risk--I'm not responsible for damage, check it with antivirus software, etc.)
Last updated 2009-2-2.
Demo.ecw (zip file)
Demonstration of a custom-made waveset. Only has a few drums, an organ, and a speech sample. Includes a MIDI file that uses all the sounds in the waveset.
Empty.ecw (zip file)
An empty waveset. Use as a template or to save RAM/disk space.
eapci8m.sf2 (zip file)
An attempt to convert Ensoniq/Creative's 8 megabyte waveset (version 5, which is functionally identical to version 4) to a sound font (.SF2). The sound font was created manually using samples/articulation info extracted by the .ECW Decompiler & Sample Extractor (above) and Viena. This is just a small demo version until I get a better website that lets me store larger files. Last updated 2009-2-2.
eapci2m.sf2 (zip file)
An attempt to convert Ensoniq's 2 megabyte waveset (version 2) to a sound font (.SF2). The sound font was created manually using samples/articulation info extracted by the .ECW Decompiler & Sample Extractor (above) and Viena. This is just a small demo version until I get a better website that lets me store larger files. Last updated 2009-2-4.
Comparison with SF2 and other technologies
.ECW format advantages over SF2
These features cannot be preserved when converting from .ECW to .SF2:
- More sophisticated envelopes than SF2, with delay, attack, decay, sustain, and release phases, each with independent level and duration.
- In addition to amplitude and pitch envelopes, there is an envelope that controls which wavetable plays at any given time. This is used to emulate resonant lowpass filters in the wavesets released by Ensoniq.
.ECW format disadvantages
- While multiple wavetables within a sample can be used to emulate filtering, the format does not seem to support a "real" filter.
- The theoretical file size limit of an .ECW waveset is 512 megabytes; SoundFonts can be larger than this. (The practical size limit of an .ECW file is actually much lower; see below)
- The file format is awkward (e.g. many more layers of abstraction between a sample waveform and which midi patch number plays that waveform) and extremely "binary", whereas SF2 conforms to the RIFF standard.
- Layering is limited to 2 mono samples played simultaneously. A stereo sample would have to be split into 2 mono samples, and no further layering would be permitted. SF2 supports stereo samples and does not have such layering limitations.
AudioPCI/PCI64 MIDI synthesizer limitations
- MIDI synthesis is rendered at 22.05 khz versus probably a minimum of 44.1 khz for SoundFont-compatible sound cards. Versions of the AudioPCI using the ES1371 chip do not appear to use a brick wall filter at the Nyquist frequency of 11.025 Khz, resulting in spectral foldover; this can create the illusion of higher fidelity but is actually an artifact. (I have not tested the ES1373 to see what sample rate/filtering is employed.)
- The Creative Configurator will not load any waveset larger than c. 16 megabytes. It may or may not be possible to hack the configurator to raise this limit.
- As the MIDI synthesizer is tightly integrated with the Windows kernel and runs on a very low level within the system, glitches in waveset files can cause Windows to lock up or the computer to turn off (worse side effects such as data loss may even be possible).
- Almost no DSP possible--two levels of reverb, spatial, and chorus is it...no filters, distortion, etc.
- Effective control rate of c. 40 hz results in not-quite-accurate rhythms, particularly in drum rushes or fast runs of notes.
- I never measured the latency, but I'd deduce that it's about 25 milliseconds; this is quick enough to seem transparent for most purposes, but much slower than the single-digit milliseconds of latency offered by ASIO-compatible applications. (Not sure how this compares with SoundFont-capable sound cards.)
- The Sound Blaster Live! is capable of using .ECW files, but as far as I know, it is not possible when using these to change the level of reverb and chorus from the default setting of "full". This, coupled with the fact that the only difference between the final 8 megabyte waveset released by Ensoniq and the edition released by Creative is a completely pointless padding of 3 bytes (maybe so it looks like they did something to improve it?) and updated company name/copyright notice, leads me to believe that Creative was either too inept to figure out Ensoniq's synthesis engine/waveset format, or that Creative deemed these things to not be worth their resources to develop.
Contact me at:
- march37th@
- not hotmail.com, but
- gmail.com