# ft2-clone
Fasttracker II clone for Windows/macOS/Linux, by [8bitbubsy](

Aims to be a **highly accurate** clone of the classic Fasttracker II software for MS-DOS. \
The XM player itself has been directly ported from the original source code, for maximum accuracy.

*What is Fasttracker II? Read about it on [Wikipedia](*

# Releases
Windows/macOS binary releases can always be found at [](

Linux binaries can be found [here]( \
If these don't work for you, you'll have to compile the code manually.

# Improvements over original DOS version
- The channel resampler/mixer uses floating-point arithmetics for less errors, and has a high-quality interpolation option (8-point windowed-sinc)
- The sample loader supports AIFF samples and more WAV types. It will also attempt to tune the sample (finetune/rel. note) to its playback frequency on load.
- It contains a new "Trim" feature, which will remove unused stuff to potentially make the module smaller
- Drag n' drop of modules/samples
- The waveform display in the sample editor shows peak based data when zoomed out
- Text boxes has a text marking option, where you can cut/copy/paste
- MOD/STM/S3M import has been slightly improved (S3M import is still not ideal, as it's not compatible with XM)
- Supports loading DIGI Booster (non-Pro) modules
- It supports loading XMs with stereo samples, uneven amount of channels, more than 32 channels, more than 16 samples per instrument, more than 128 patterns etc. The unsupported data will be mixed to mono/truncated.
- It has some small additions to make life easier (C4/middle-C Hz display in Instr. Ed., envelope point coordinate display, etc).

# Screenshots

![Example #1](
![Example #2](

# Compiling the code
Build instructions can be found in the repository (HOW-TO-COMPILE.txt).

Keep in mind that the program may fail to compile on Linux, depending on your distribution and GCC version. \
Please don't nag me about it, and try to use the Linux packages linked to from []( instead.

PS: The source code is quite hackish and hardcoded. \
My first priority is to make an _accurate_ 1:1 clone, and not to make flexible and easily modifiable code.

Big parts of the code (except GUI) are directly ported from the original FT2 source code, with permission to use a BSD 3-Clause license.
Last 5 commits (shortlog)
Date Author Short message Commit hash
2021-03-18 Sigrid plan9 port: do not reinstall npe, ever f2f8ebf77b23d54ce91915df7dd4ae9dd938382b
2021-03-17 Sigrid add Plan 9 files 179d80929762ea3e0d287be26274df598f8be7aa
2021-03-17 Sigrid scrollbars: cast to int in order to avoid kencc difference 8def70adb5c353df4d8951cc0058e709632b51fb
2021-03-15 Olav Linux: Try $XDG_CONFIG_HOME before $HOME on config load, + code cleanup fdfa2bc1a33b0e566fb6c2d6762475c67b7582bd
2021-03-15 Olav Update ft2_module_loader.c f225353791b646088e1119109197ad9257e696f4
Files (browse)