https://github.com/tiben/tzx-player
Player for TZX tape files (ZX Spectrum, Amstrad CPC etc.)
https://github.com/tiben/tzx-player
Last synced: over 1 year ago
JSON representation
Player for TZX tape files (ZX Spectrum, Amstrad CPC etc.)
- Host: GitHub
- URL: https://github.com/tiben/tzx-player
- Owner: TiBeN
- Created: 2023-08-12T08:43:24.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-06-06T17:26:37.000Z (about 2 years ago)
- Last Synced: 2025-01-30T09:42:10.900Z (over 1 year ago)
- Language: Go
- Size: 99.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
TZX Player
==========
A player for 8bit computers tapes files in TZX format.
This project is **WIP**.
Features:
- Play/stop/rewind etc. controls through keyboard shortcuts
- Export to WAV file
- Counter support (reset, goto etc..)
- Tape player remote control through GPIO module input soldered in the CPC tape player PCB
WIP state:
- Not all blocks types of the TZX specification are supported
(Most data related though, which make almost every Amstrad CPC cdt file to be read)
- Tested on Linux only
- Looking for a more standard interface for GPIO remote control feature. My current device, which is a
Numato Labs 8 channels, does not support standard kernel libgpiod framework and expose a proprietary
command set which requires specific code.
Build
-----
$ ./build.sh
exec
$ ./bin/tzx-player COMMAND
or to show usage
$ ./bin/tzx-player help
Usage
-----
```
Usage: tzx-player COMMAND [cmd opts]
Play 8bits computers data tapes as TZX files
Commands:
help Show this help message
convert Convert TZX tape to an audio PCM Wav file
Args:
tzx-player convert INPUT_TZX_FILE OUTPUT_WAV_FILE
Options:
-s int Sampling rate (default: 44100)
-b int Bit depth (default: 8, possibles values: 8 or 16)
-f float Speed factor: multiply the speed of the tones (experimental) (default: 1.0)
info Output TZX tape informations
Args:
tzx-player info INPUT_TZX_FILE
play Play a TZX tape
Args:
tzx-player play INPUT_TZX_FILE
Options:
-s int Sampling rate (default: 44100)
-b int Bit depth (default: 8, possibles values: 8 or 16)
-g port:baudrate:ionbEnable tape remote control using a GPIO device. Support only Numato labs GPIO Modules for now
-f float Speed factor: multiply the speed of the tones (experimental) (default: 1.0)
Player control keystrokes:
Space : Toggle play/pause
p : Pause
s : Save current tape position
g : Set tape to last saved position
```
This project is written in Go. It makes use of PortAudio library for audio output.
Resources
---------
The TZX tape file format specification is available [here](https://k1.spdns.de/Develop/Projects/zasm/Info/TZX%20format.html)