sf2ecw.py - converts a SoundFont 2 bank (.sf2) into an Ensoniq ECW waveset (.ecw)
for the Creative DOS driver "SB16 Emulation" (SBEINIT/SBECFG/SBELOAD/SBECORE).
Also: inspector mode (--dump) to analyse an existing .ecw.
The ECW format was never published. This implementation is based on the disassembly
of SBECFG.EXE v5.00, SBELOAD.EXE, SBEINIT.COM and SBECORE.BIN v1.00.
Limits imposed by the engine (not by this script):
* no low-pass filter and no resonance -> SF2 filter generators ignored
* no tremolo -> modLfoToVolume ignored
* only 5 panning positions
* infinite forward loop, or no loop -> sampleModes=3 treated as 1
* all PCM is downmixed to 16-bit mono 22050 Hz
* modulation rate of 86.13 Hz -> nothing finer is representable
* single drum kit per program number, 2 layers per preset
Usage:
python3 sf2ecw.py bank.sf2 output.ecw [--verbose]
python3 sf2ecw.py --dump file.ecw
Now enjoy Roland SC-55 with your Sound Blaster Audigy 2 ZS under DOS!
sf2ecw.py - converts a SoundFont 2 bank (.sf2) into an Ensoniq ECW waveset (.ecw)
for the Creative DOS driver "SB16 Emulation" (SBEINIT/SBECFG/SBELOAD/SBECORE).
Also: inspector mode (--dump) to analyse an existing .ecw.
The ECW format was never published. This implementation is based on the disassembly
of SBECFG.EXE v5.00, SBELOAD.EXE, SBEINIT.COM and SBECORE.BIN v1.00.
Limits imposed by the engine (not by this script):
* no low-pass filter and no resonance -> SF2 filter generators ignored
* no tremolo -> modLfoToVolume ignored
* only 5 panning positions
* infinite forward loop, or no loop -> sampleModes=3 treated as 1
* all PCM is downmixed to 16-bit mono 22050 Hz
* modulation rate of 86.13 Hz -> nothing finer is representable
* single drum kit per program number, 2 layers per preset
Usage:
python3 sf2ecw.py bank.sf2 output.ecw [--verbose]
python3 sf2ecw.py --dump file.ecw
Now enjoy Roland SC-55 with your Sound Blaster Audigy 2 ZS under DOS !
Tgames only uses the cookies the board needs (login, preferences). Embedded videos and audio (YouTube, Dailymotion, SoundCloud…) set their own cookies: they are only loaded with your consent. Learn more