The CSW2CDT tool suite is a set of three programmes whose main purpose is the encoding of computer tapes used in the Sinclair ZX and the Amstrad CPC families during the Golden Age of European videogames (1982-1994), when tapes were the most popular distribution method of commercial software:
CSW0 is a command-line program that reads WAV audio sample files and writes CSW V1 packed samples.
CSW2CDT is a command-line program that reads CSW1 V1 packed samples and writes CDT/TZX tape images.
CSW2CDT-UI is a dialog-driven program whose graphical user interface simplifies the usage of the first two tools.
The general procedure is divided in several steps:
The tape must be sampled as an uncompressed WAV audio file whose quality should be at least 22050 Hz. Mono and 8 bits are preferred over stereo and 16 bits.
The resulting WAV file must be fed to CSW0, that will measure all the square waves and produce a CSW V1 file. Optional flags can be used to perform band-pass filtering on the signal.
This CSW V1 file will be handed to CSW2CDT, whose task is to scan the data blocks within and build a CDT/TZX image. Again, optional flags allow for increasingly complex processing of the contents.
The CDT/TZX image ultimately needs to be tested then in an emulator that can play tape files back, such as CPCEC and WinAPE for Amstrad CPC titles or FUSE and UnrealSpeccy for ZX Spectrum softwares.
CSW2CDT-UI eases the procedure because its graphical user interface is more comfortable (although less flexible) than the command line: choosing the sample, generating the CSW V1 file, and encoding the CDT/TZX file can be performed by pushing buttons and choosing options. It also allows for the reverse procedure of playing back CDT/TZX images into CSW V1 files and WAV audio files with some few mouse clicks.
Changelog
20191102: fifth public version: support for Gremlin1 tapes, complete with checksum calculation. Gremlin2 and Gremlin3 are works in progress.
20170419: fourth public version: antivirus gave bogus warnings about CSW2CDT-UI.EXE, so it's no longer trimmed with STRIP.
20170409: third public version: improved pilot and SYNC detection, "--hexagon" now supports both the CPC and Spectrum Hexagon methods.
20170402: second public version: packing them with UPX led to Avast antivirus giving bogus warnings, so they're no longer compressed.
20170401: first public version of the binaries (no source code yet, it's too messy) and the handbooks, written by Dlfrsilver.