ProTracker 2 clone changelog (starting from v1.00 and up) NOTE: This may contain stuff that only a programmer understands! v1.28 - 01.01.2021 - Updated SDL from version 2.0.12 to version 2.0.14 - Windows: Because of a bugfix in SDL 2.0.14, the drumpad now works like it should (when numlock is off the numpad cursor keys still act as drumpad keys). However, pressing the numpad key (which is part of the drumpad) will still toggle the numlock state. v1.27 - 18.12.2020 - The A500 audio mode (press F12 or edit protracker.ini) now sounds much closer to a typical real A500, after hand-tweaking the filter cutoff and looking at many plotted frequency analyses (of sine sweeps). It would previously cut off too much treble, because the RC filter implementation is too imprecise at lower audio rates. v1.26 - 30.11.2020 - Fixed possible string-corruption/crash if you saved a sample/module whose name contained an extra overflown character (which replaced the NUL terminator) v1.25 - 18.11.2020 (updated half an hour after release) - Bugfix: Fixed BPM duration issues when rendering song to WAV (MOD2WAV/PAT2SMP) - Fixed some mouse problems in fullscreen mode on multi-monitor setups >> update: - Fixed filter coeffs being wrong on MOD2WAV v1.24 - 04.10.2020 - BPM is now slightly more accurate to CIA specifications, and also more accurate in vblank (VBL) timing mode using the true Amiga PAL vblank rate. NOTE: We're speaking tiny variations in BPM here... - Vblank (VBL) timing mode: Fixed a bug with setting a speed of FF (255) on the first row. The tick duration would be about twice as long... - Small code cleanup v1.23 - 18.09.2020 - PAT2SMP now has higher quality sound. Especially noticable in LO mode. - PAT2SMP LO mode now uses 20864Hz (E-3 finetune 0) instead of 22168Hz (F-3 finetune +1) for slightly more room, and still has better quality than before because of the improvement above! - The optional 2x downsample during sample load is now of better quality. Or it should be, at least... - Fixed some bugs in the "sampling" screen (SAMPLER screen -> Sample) - The sampling feature now takes up less CPU time while downsampling. Also fixed a small error in the sinc resampling interpolation. - Don't block GUI input and don't show red mouse pointer for a while every time you cancel a requester. No idea why PT did this in the first place, what a workflow limiter! - Bugfix: Don't reset playback time counter on "play pattern" - protracker.ini: "A500LOWPASSFILTER" has been replaced with "FILTERMODEL" (A1200 or A500). Removed NORMALIZESAMPLING and SAMPLELOWPASS (deprecated). - Some other minor changes not worth of a mention - Code cleanup v1.22 - 24.07.2020 - Fixed a small stuttering issue in the audio/video syncing - Changed the PT2 clone text in the About screen (PT2.3D clone -> PT2 clone) v1.21 - 03.07.2020 - Bugfix: If you were to load a .MOD with samples >65534 bytes in length, the alignment of the sample data would get messed up. Note: Only 65534 bytes will be loaded for such big samples! v1.20 - 23.06.2020 - Song BPM is now more accurate (it used to be slightly off for some BPMs). Please note that every Amiga's system clock is off by a very small fraction. This means that the true PT BPM (based on CIA) differs very slightly from machine to machine, so the PT2 clone's BPM will not precisely match a real Amiga. - Added a delay when using left/right/delete/backspace keys in text edit mode. This makes it harder to do accidents! - Bugfix: MOD2WAV didn't stop rendering even if a F00 pattern command was triggered. - Bugfix: PAT2SMP would sometimes not render the very last song tick v1.19 - 12.06.2020 - Allow loading .WAV samples whose header can have different chunks before the "fmt " chunk. Makes the .WAV loader less picky. v1.18 - 07.06.2020 - Bugfix: Pasting copied sample data to an empty sample didn't work! Also fixed an issue with the sample length not changing when pasting data. - Bugfix: Scopes would never stop showing looped samples after channel muting - Bugfix: The sampling position line in the sampler screen would not behave correctly during "sample swapping". - Bugfix: Left/right/up/down cursor keys should not be repeated in keyrepeat mode (toggled with Caps Lock). - Windows bugfix: The Windows key could get stuck if you held down ALT while pressing it. - Windows bugfix: Num Lock now works ike it should when the program is in focus (yes, this ruins drumpad mode, but it never worked right to begin with). - The "real VU-meter" bars are now sinking a bit faster - Code cleanup v1.17 - 28.05.2020 - Added audio sampling capability. It can be accessed by clicking the new "SAMPLE" button in the SAMPLER screen. Pressing the right mouse button is the same as pressing the [SAMPLE] button, which is handy for easier timing. This is experimental and can contain bugs! Let me know if you find any. - Fixed a bug where clicking to the left of the song/sample name could cause a temporary UI lock up. - Bugfix: After loading a new sample, the sample restore (CTRL+Z) buffer would not be updated. - The scopes, VU-meters and (fake) spectrum analyzer should now be less delayed, and better in sync with the music. Only a slight difference though. - The PAT2SMP HI mode was changed from A-3 finetune +5 (28836.54Hz, period 123) to A-3 finetune +4 (28603.99Hz, period 124). After reading the Amiga Hardware Reference Manual and doing some basic testing, I found out that this rate is not safe for channel #4 on a real Amiga. The absolute minium safe period is period 124 (28603.991Hz, PAL). - Very minor code cleanup/changes v1.16 - 12.05.2020 - Added three new entries to protracker.ini: 1) FULLSCREEN (start in fullscreen mode) 2) PIXELFILTER (smooth out upscaled pixels to make them less grainy) 3) INTEGERSCALING (if set to false, force vertical stretch of image in fullscreen mode while maintaining aspect ratio) - Linux: Fixed the mouse not working with KMSDRM (hopefully) v1.15 - 07.05.2020 - Bugfix: The EFx (Invert Loop) effect didn't work on the whole sample loop, but only on the half of it. - Bugfix: The quadrascope didn't show the volume changes from the 7xy (Tremolo) effect. - Windows bugfix: Certain key modifiers didn't work (bug appeared in v1.13) - The "real VU-meters" mode now acts more like real VU-meters by showing average amplitudes instead of peak amplitudes. This mode can be toggled on/off by pressing ALT+F11 or changing a setting in protracker.ini. - The quadrascope code has been refactored a little bit to be slightly simpler - Some other cosmetic changes to the code (to better match the PT source code, which makes it easier to verify that it's correct). v1.14 - 05.05.2020 - Windows crashfix: When double-clicking .mod files associated with the program, the new temporary program instance would crash before getting terminated. v1.13 - 04.05.2020 - Windows bugfix: Left Amiga key (Win-key) didn't work! - Windows: Removed a broken Num Lock-specific hack. Seems like it didn't work anymore in later SDL2 versions. This means that the drumpad feature is pretty useless... - Bugfix: Saving samples as .IFF would result in broken .IFF files - Bugfix: Don't allow sample modifications in "sample zero" mode - Bugfix: The "numpad 0" key wasn't behaving the way it should - Bugfix: The "numpad enter" key wasn't behaving the way it should if the current sample was set to 16 (0010). - Code cleanup. Moved certain chunks to new files, renamed modEntry struct etc. v1.12 - 29.04.2020 - Fixed a bug where the right loop-pin could sometimes disappear when zoomed in and scrolled all the way to the right. - A much needed code refactoring of data structs. The code now also compiles with GCC 10 (fixed GitHub issue #7). v1.11 - 26.04.2020 - The BLEP synthesis has been improved for slightly less resampling aliasing. aciddose (the writer of the BLEP implementation) is currently working on it to see if it can be further improved, but as for now this should in theory be a little bit better than the old one. - Bugfix: Reset play mode to "Play song" when double-clicking files associated with the PT2 clone. - Bugfix: The MOD2WAV buffer was too small and could cause nasty issues when rendering a song with low BPM values. - MOD2WAV now renders the song at 96kHz, so that the user has more resolution before converting the WAV to the format/frequency of choice. - Don't include high-pass filter and dithering in PAT2SMP - Code cleanup v1.10 - 19.04.2020 - Bugfix: note(s) displayed in SAMPLER (resample note) and Edit Op. screen #4 were wrong. - After a long talk with aciddose I have found out that I did several things wrong in the Amiga audio filtering. I have now removed the filter cutoff tweaking, gotten a slightly improved low-pass/high-pass routine, and also replaced the naive "LED" filter implementation with another one that is slightly more accurate (but still not perfect). v1.09 - 09.04.2020 - Bug fix: "Play pattern" mode didn't work like it should in v1.08 - PATTDOTS mode (protracker.ini) is now even easier on the eye - Overflown arpeggios on -1 finetuned samples now behave exactly like real PT. This is a special case where overflown arpeggios sound very different. - Code cleanup v1.08 - 03.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. - Fixed a bug when exiting from Edit Op. screen #4 ("Sample chord editor") and reopening it. It could mess up the UI in worst case scenarios. - Some other small miscellaneous changes not worth of a mention - Small code cleanup (and also the opposite :-) v1.07 - 18.03.2020 - Linux: Fixed CMakeLists.txt to work on Arch Linux - Windows: The DPI-scaling is now per-monitor aware instead of system aware. Maybe this solves the issue of blurry pixels for some people... - Windows/macOS: SDL was upgraded from 2.0.10 to 2.0.12 v1.06 - 16.02.2020 - Fix: Don't cut off voices when changing the sample length from the GUI - When loading a WAV/AIFF sample that has a frequency above 22kHz, show a big ask dialog with more details about what is being asked. Some users got confused about the old "2X DOWNSAMPLING ?" status text that appeared when loading some samples. - When selecting "Yes" to downsampling a sample before loading it, apply a low-pass filter first to get rid of some potential aliasing after downsampling. This can now be turned off in protracker.ini (SAMPLELOWPASS). I recommend leaving this on, as it might remove quite a bit of aliasing in samples with a lot of high frequencies, like hi-hats and cymbals. However, some sharpness might get lost. If you need more sharpness, try the "BOOST" button in "Edit Op." screen #3. The low-pass filter is only applied to samples that are going to get 2x downsampled during load. You'll get a dialog where you click yes/no on samples that has a frequency higher than 22kHz. - Only filter forwards (not backwards as well) when filtering samples in the FILTERS toolbox in the sample editor. This makes the selected cutoff more correct. - The sample marking in the sample editor now looks slightly nicer (different color on the centerline). v1.05 - 12.02.2020 - The audio dithering has been slightly improved. It was changed from 1.5-bit rectangular to 1-bit triangular. - Bugfix: Don't load sample data after loop end when importing The Ultimate SoundTracker (STK/UST) modules. The data would be one-shot played in PT, which is not how it works in STK/UST. Fixes several modules... - Bugfix: Reset tempo mode to CIA when loading a new module - The module loader code has been cleaned up a little bit v1.04 - 29.01.2020 - Fixed a bug where loading certain .MODs would lead to messed up sample data (so far I have only found one, so it was rare). - Made some small optimizations to the audio channel mixer. The mixing is still bit-exact to the previous version... - Windows 32-bit: This version now requires your CPU to have the SSE2 instruction set, which the audio channel mixer takes good advantage of. 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.03 - 22.01.2020 - Bugfix: The MOD2WAV function would write .wav files with a wrong chunk length. Some .wav loaders didn't like this... - Bugfix: Don't allow toggling scope muting with right mouse button while MOD2WAV is ongoing. v1.02 - 06.01.2020 - The paulaSetLength() function now takes length in words, not bytes. This doesn't really change anything, but it's more correct. - Fixed a very minor bug with VOL up/down button in Edit Op. - Fixed a bug where the scopes could show the wrong volume for the tunetone waveform (sampler screen). - Some code cleanup v1.01 - 19.12.2019 - Hardware mouse ("HWMOUSE" in config) now has the same colors and shape as the original PT cursor. This mode is now the new config default. - MacOS: Pass NDEBUG to clang preprocessor defines, to prevent debug code from being compiled in release mode. v1.00 - 02.12.2019: - This is now the first "stable" release, and it's not in beta anymore - Renamed binary/folder/zip names - This version is otherwise identical with the previous "beta #37" version