Fasttracker II clone changelog (starting from v1.00 and up)
NOTE: This may contain stuff that only a programmer understands!
v1.24 - 13.05.2020
- Fixed a bug with saving looping 16-bit samples as .RAW/.IFF/.WAV. Two sample
points somewhere in the waveform would be set to wrong values.
- Linux: Fixed the mouse not working with KMSDRM (hopefully)
v1.23 - 29.04.2020
- Bugfix: The "default dirctories" paths in the config only worked for
modules and not the other types (fixes GitHub issue #6).
- A much needed code refactoring of data structs. The code now also compiles
with GCC 10.
v1.22 - 27.04.2020
- Fixed crash when loading XMs with pattern lengths above 256. They are now
safely truncated, and the user gets a warning message about the truncation.
- Allow loading overflown BPM/speed values from quirky XMs, up to BPM 999
and speed 99 ("jk_error_txt.xm" is an example for quirky BPM/speed values).
- Tiny code cleanup
v1.21 - 22.04.2020
- macOS/Linux: The initial working directory would not get properly set when
opening Disk Op.
- Bugfix: The custom directory paths in the config could contain unwanted junk
at the end if the loaded config file was saved from real FT2.
- Bugfix: If you were skilled enough to beat the very last Nibbles level, your
potential entry in the highscore table would show garbled level graphics.
- Show a warning if either of the Buttons/Desktop palette colors are so dark
that you might have issues seeing the walls in Nibbles.
- "Space Pigs" palette replaced with a new (low contrast) "Dark mode" palette
- Some more small miscellaneous fixes not worth of a mention
v1.20 - 13.04.2020
- x86_64/amd64 users now get 32.32 fixed-point precision in the audio channel
mixer, an extra 192kHz mixing frequency mode (may only work with a larger
buffer size), and double the amount of phases in the cubic spline table. This
will only make an improved outcome in very few cases (like extremely high/low
channel rates), so don't expect to hear any difference. Non-x86_64 users now
lose 96kHz mode as it was a bit unsuitable with 16.16 fixed-point precision.
- The "Volume" function in Smp. Ed. now has more precision and takes less time
to complete. Not that it was slow to begin with...
- Increased the minimum .WAV rendering frequency from 8kHz to 44.1kHz, because
the mixer delta calculations could overflow on such low rates.
- Some more small miscellaneous changes not worth of a mention
- Code cleanup
v1.19 - 08.04.2020
- The "Trim" function had been 100% broken (and crashes the program) for a
very long time. Sorry for this! This happened after instruments were
changed to be allocated as needed.
- macOS: 48kHz is now the default audio output rate (instead of 44.1kHz)
- For x86_64/amd64 users: The audio channel mixer now has higher fractional
precision on mixing deltas, which is beneficial for 96kHz audio frequency
mode.
v1.18 - 06.04.2020
- Windows: Fixed files >2GB displaying bogus filesizes in Disk Op.
- Fixed a potential crash in the audio mixer on quirky modules (when a
channel's sampling rate is somehow set to 0).
- Fixed a bug with vertical scrollbars that have a very small thumb (v1.16)
v1.17 - 03.04.2020
- Fixed some bugs with sample data marking/hand-drawing and sample loop pin
dragging, which appeared in v1.16.
v1.16 - 02.04.2020
- The mouse system has been rewritten so that we don't need to do mouse
capturing while interacting with GUI widgets, which could be buggy sometimes.
- The different Disk Op. item paths (mod./instr./smp./pat./trk.) now behave
exactly like real FT2. I.e. if they haven't been initialized before, they
will be set to the current working directory.
- Scrollbar thumbs are now limited to minimum 9 pixels in length/height, to
prevent them from being difficult to click on.
v1.15 - 31.03.2020
- More improvements to S3M loader. Fixes "satellite one.s3m" and other S3Ms.
- Up/down pushbutton delay has been increased even more, to prevent accidentally
skipping too much.
- Some other small miscellaneous changes not worth of a mention
v1.14 - 22.03.2020
- Bugfix: The Repeat/Replen. numbers in Smp. Ed. would not show the correct
values for non-looping samples. It should always show the values even if the
loop is disabled. This caused some strange visual bugs...
- Bugfix: Changing sample numbers on the white piano keys in Instr. Ed. was
semi-broken (it would show wrong numbers until you changed to another instr.
and back).
- Bugfix: If you set the current sample to 0E and scrolled down with the mouse
wheel, the sample list would overflow.
- All bitmaps are now present as 4-bit (+ 1x 8-bit) RLE-compressed .bmp files,
and are included in the binary as such. This makes it slightly easier to
edit/add graphics.
v1.13 - 18.03.2020
- Fixed crash when loading some very specific S3M modules
- Linux: Fixed CMakeLists.txt to work on Arch Linux
- Some other small miscellaneous fixes not worth of a mention
v1.12 - 13.03.2020
- Bugfix: Some broken XMs/XIs have a non-sense value in the "mute" instrument
field. This is now clamped correctly so that such modules and instruments
will not yield muted sound. This fix was actually present earlier, but it was
broken again some time ago. You will very rarely bump into this issue anyway.
- Micro-optimization to how voice/ramp volumes are calculated (4x DIVs removed)
- Windows/macOS: SDL was upgraded from 2.0.10 to 2.0.12
v1.11 - 10.03.2020
- Bugfix: The Help screen scrollbars could act strange when switching subjects
- Bugfix: Some of the Instr. Ed. (+ extension) scrollbars could be moved with
the up/down pushbuttons even if the current instrument is not allocated.
This is not supposed to be possible.
- Bugfix: In the Instr. Ed. screen, the "Add" button (vol/pan env.) could lead
to a crash if the current instrument wasn't allocated.
- Bugfix: The piano in the Instr. Ed. screen could show wrong keypresses if
extremely low or high pitches were being played.
- The up/down pushbutton delay has been increased, it's too short in original
FT2 (in my opinion).
- The 4-tap cubic spline interpolation table (for the audio mixer) has been
recalculated in higher precision and more phases. It should in theory be
better, but I can't personally hear any difference.
- Windows: The DPI-scaling is now per-monitor aware instead of system aware.
Maybe this solves the issue of blurry pixels for some people...
- Don't warn the user when loading a song with stereo samples. They will be
mixed to mono anyway, and I don't think it's an important warning to show.
- Fixed some minor grammar errors in some GUI texts
v1.10 - 03.03.2020
- Bugfix: Channels were internally muted when the tracker was first started.
You'd get no sound when trying to load samples and entering them in the
pattern data. You had to load a song for them to properly unmute...
This has been a bug since v1.04, yikes!
- The audio mixer's resampling interpolation was upgraded from 3-tap cubic to
4-tap cubic, without affecting the performance of the mixer.
- Fixed some bugs in the .PAT (Gravis Utrasound patch) instrument loader
- Fixed several bugs with the "Echo" toolbox (Sampler screen)
- Bugfix: The "relative tone" section of the Instr. Ed. screen would get messed
up if loading a WAV/AIFF sample whose playback frequency is immensely large.
- Code cleanup
v1.09 - 12.02.2020
- Fix: If a corrupt .XM doesn't contain all the sample data at the end of the
file, try to load what is left instead of showing an "Out of memory!" message.
- Fix: Prevent upscaling factors higher than 2x on ARM devices. Fixes extreme
slowdowns on Raspberry Pi 4 with 2k or higher resolution screens.
- The .MOD importer has been slightly improved for oldschool 15-sample formats
- The .S3M importer has been slightly improved for certain effect cases not
compatible with FT2.
- Audio mixer: Internal voice volumes are now calculated with 256 times higher
precision than FT2. Some other changes were also made to make sure the audio
mixing is always done at max precision regardless of the "amp" setting in
the config screen. These are changes that most people won't ever be able to
hear, but the speed performance of the mixer is still the same, so why not.
- The audio dithering routine has now been improved (rectangular->triangular),
and it's now enabled by default on a fresh configuration, or if you reset it.
v1.08 - 08.02.2020
- Critical bugfix: Saved instruments (.xi) would end up being broken!
- Linux bugfix: Loading a song by passing it to the executable's argument from a
terminal wouldn't work in most cases...
- macOS/Linux bugfix: Don't show ".." directory when you are in root
- Code fix: We don't want our main instrument/sample structs to be packed, only
the ones used during saving/loading of songs/instruments. This doesn't change
the behavior of the FT2 clone, but it prevents unaligned pointer access in the
replayer and other routines.
- Small optimizations to pattern data rendering, those routines are quite slow!
- Updated HOW-TO-COMPILE.txt
v1.07 - 30.01.2020
- Bugfix: After deleting the very last vol/pan envelope point, the currently
selected point wouldn't be properly set. This is actually a behavior/bug
from real FT2, but I wanted to fix it anyway.
- Bugfix: Attempting to add a vol/pan envelope point to a completely empty
envelope would mess things up. Empty envelopes in an allocated instrument
shouldn't happen, but it happens when loading certain non-FT2 XMs.
- Bugfix: The envelope plotter could display garbage on envelopes with tick
offsets above 324. Now it just cuts off at the end instead. Also yes, such
envelopes can be made! OpenMPT, f.ex., has no 0..324 limit for envelope ticks
in XM mode.
- Bugfix: A couple of system request dialogs had the wrong button captions.
(Yes/No instead of OK/Cancel).
- When pressing Esc. and the song is unmodified/saved, you'll now get the
classic joke quit dialogs from FT2 asking if you really want to quit.
- Some minor optimizations and minor fixups. Nothing to write home about...
- Windows 32-bit: This version now requires your CPU to have the SSE2
instruction set. Intel CPUs from around 2000 (AMD around 2003) and later
have it. In other words, it's not worth my time trying to make the clone
run on such old machines!
v1.06 - 15.01.2020
- Bugfix: Scopes were not doing backwards sampling correctly on pingpong loops.
This would also affect the sample playback line in Smp. Ed. It was especially
noticable on very low sampling rates (note).
- For devs: Added HAS_MIDI compiler pre-processor flag. If not defined, MIDI
will not be used in the clone. Handy for situations where rtmidi and/or
libstdc++ can't be used/compiled.
v1.05 - 28.12.2019
- Bugfix: When copying marked text in a text box, too much data would be copied
- Changed default WAV rendering frequency (Harddisk recording) to 48kHz
v1.04 - 17.12.2019
- Fixed rare crash (or strange behaviors) when changing pattern and/or pattern
length while the song is playing.
- Properly restore channel mute flags when loading a new song (fixes mute bugs)
- Fixed a few bugs with different pattern buttons (Ins./Del., Ln. up/down etc)
- Config: "Hardware mouse" was changed to "Software mouse" (and "Software mouse"
is now disabled in the default config).
- Added a routine to create scaled FT2 mouse cursors for hardware mouse mode,
though the "busy mouse" will stand still and not animate.
Hopefully the new default "hardware mouse" mode will satisfy some people!
- MacOS: Pass NDEBUG to clang preprocessor defines, to prevent debug code
from being compiled in release mode (performance increase).
- MacOS/Linux: make scripts had Windows linefeeds and would thus break!
* Note: I highly recommend that you go to "Config -> Layout" and disable
"Software mouse"! This will make the mouse way less laggy. However, it will
still be one frame delayed internally unless you disable VSync.
v1.03 - 28.11.2019
- A ton of radiobuttons in the GUI simply did not work anymore in v1.02.
I can't believe I didn't notice until now. Sorry!
v1.02 - 23.11.2019
- You can now select the audio input (sampling) rate in the config screen.
(44.1kHz, 48kHz or 96kHz)
- Fixed some misinformation in the "Known bugs" help text ("clear sample")
- Fixed some "original" typos in the UI texts (and also renamed stuff that
wasn't very understandable).
- Removed the "Very large" buffer size setting in Config -> I/O devices
- Increased the width of the Disk Op. filename text box
- Tweaked some other minor stuff
v1.01 - 21.10.2019:
- Windows: Fixed an issue where the program would consume a lot of CPU time
when the window was minimized.
v1.00 - 25.09.2019:
- This is now the first "stable" release, and it's not in beta anymore
- Some very small fixes to the scopes
- macOS: Added ctrl+cmd+f keybinding to toggle fullscreen (same as alt+enter)
- macOS: Fix huge delay before main window pops ups when opening .XMs associated
with the clone by double-clicking on them.
- macOS: Finetuned a couple of things in the .app package. Version string and
"document types" for file->program association.
- Renamed binary/folder/zip names