https://github.com/mschwendt/libtfmxaudiodecoder
TFMX player / audio player backend library
https://github.com/mschwendt/libtfmxaudiodecoder
amiga chipmusic chiptune chiptune-player future-composer hippel huelsbeck modplayer soundtracker tfmx tfmx-player
Last synced: 21 days ago
JSON representation
TFMX player / audio player backend library
- Host: GitHub
- URL: https://github.com/mschwendt/libtfmxaudiodecoder
- Owner: mschwendt
- License: gpl-2.0
- Created: 2025-10-26T22:43:06.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2026-05-20T18:18:39.000Z (25 days ago)
- Last Synced: 2026-05-20T23:56:23.598Z (24 days ago)
- Topics: amiga, chipmusic, chiptune, chiptune-player, future-composer, hippel, huelsbeck, modplayer, soundtracker, tfmx, tfmx-player
- Language: C++
- Homepage:
- Size: 402 KB
- Stars: 9
- Watchers: 3
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# C language wrapper library for TFMX audio decoding
https://github.com/mschwendt/libtfmxaudiodecoder
Another music player backend library supporting several music file
formats originally created by two renowned game soundtrack pioneers from the
Commodore Amiga era of computing:
- TFMX by [Jochen Hippel](https://en.wikipedia.org/wiki/Jochen_Hippel) (incl. the ripoffs ``Future Composer`` and MCMD)
- TFMX by [Chris Hülsbeck](https://www.huelsbeck.com) (``The Final Musicsystem eXtended``)
- file format modifications TFMXPACK, TFMX-MOD, TFHD + some unnamed modpacks
Despite sharing the name tag TFMX and the 7V feature, it's two music players
that are vastly different. Even simple concepts like ADSR volume envelopes
are done differently.
This library is a successor of [libfc14audiodecoder](TFMX_HIP_FC.md) and
is in the same style. Hopefully some of this will help with improving the
TFMX support of projects like [UADE](https://www.exotica.org.uk/wiki/UADE) or
[tfmx-play](http://www.boomerangsworld.de/cms/patches/tfmxplay.html).
Particularly tfmx-play has been merged into various multi-format music players,
but remains incomplete, e.g. with regard to TFMX macros strictly required by
some modules.
## Compatibility
The library is tested with a large number of files from old
and current major collections like [Modland](https://modland.com/) and
[ExoticA](https://www.exotica.org.uk/wiki/Category:Amiga_Music_Formats).
During pre-release testing, multiple issues reported in bug trackers of
other music players have been reviewed, too.
Some [bad music files](README_BAD.md) have been found. If you find them in
your own collection, consider deleting them if repaired copies are not
available.
If you are an author of a music player, please give this library a try,
and consider adding a plug-in, if you like what you hear.
## Important
Within music collections, the music data files recognized by this library
usually use a file name extension from this list:
.tfx, .tfm, .mdat, .tfmx
.hip, .hipc, .hip7, .mcmd
.fc, .fc3, .fc4, .fc13, .fc14, .smod
.sog, .soc
Some of the music comes as a pair of files (music data + separate samples file), if it has not been converted
into a single-file format, e.g.:
foo.mdat + foo.smpl
bar.tfx + bar.sam
In case it is the original file naming style from Commodore Amiga, where
the file type name extension was a prefix,
mdat.foo + smpl.foo
it is strongly recommended to rename your files and give them PC-style
extensions instead. For example, ``.tfx`` and ``.sam`` is a good compromise
for TFMX ``mdat.`` and ``smpl.`` files.
The library backend itself inspects the actual input data while it tries to
determine the underlying file format. Yet if it's a pair of files, it
tries to find the second file based on guessing its file name extension.
The TFMX-editor also used a third file starting with ``info.`` to store
stuff like names for patterns and macros. As those files are entirely optional,
they have not been published and have not been preserved in module
collections either.
## Players & Plugins
* [Audacious](https://audacious-media-player.org/) with [this input plugin](https://github.com/mschwendt/audacious-plugins-fc)
* [DeaDBeeF](https://deadbeef.sourceforge.io/) with [this input plugin](https://github.com/mschwendt/deadbeef-plugins-fc)
* [Qmmp](https://qmmp.ylsoftware.com/) with [this input plugin](https://github.com/TTK-qmmp/qmmp-tfmx)
* [rePlayer](https://github.com/arnaud-neny/rePlayer) includes a prebuilt plugin among a ton of others as to handle a high number of music file formats
* [TTKMusicPlayer](https://github.com/Greedysky/TTKMusicPlayer) with [this input plugin](https://github.com/TTK-qmmp/qmmp-tfmx)
* ...
## Links
* https://www.exotica.org.uk/wiki/TFMX
* https://de.wikipedia.org/wiki/TFMX
* https://modland.com/ and https://www.exotica.org.uk/wiki/Category:Amiga_Music_Formats and http://wt.exotica.org.uk/
* https://chrishuelsbeck.bandcamp.com/
* http://thethalionsource.w4f.eu/Hippel/hippelm.htm
* https://remix64.com/ as a hub for the C64 and Amiga remix community.