I wrote a tzx / cdt tape file player in golang which outputs through the sound card and uses a car tape adapter to load in the amstrad CPC. Tape rotor activation status is read using a lowcost GPIO usb board (from Numato Lab) which controls play/pause of the audio in software.
project sources: https://github.com/TiBeN/tzx-player