zTracker fork
category: music [glöplog]
Hi, are there any ztracker users left? I may give you a nice surprise if that's the case :-) A few minutes ago I have released a fork of ztracker, aptly named "zTracker prime" or "zTracker'". As it's name implies, it's a derivate of the original zTracker.
This fork is released as a homage to the original work of Chris Micali. I have been using zTracker nearly on a daily basis for the past 18 years. As the original project has remained untouched since 2002, at some point I started tinkering with the source code, at first to fix bugs and later to change how the program behaves.
Actually the source code has been sitting into github for a few years but I never bothered to upload an updated executable... So here it is :-)
Please be advised that I can't guarantee that this version works better for you than the original. My fork behaves nearly flawlessly for me and I like it better than the original. But in your case this could be a different history. It is a good idea to check the following list of changes to understand what this fork is about.
Program behavior changes:
- Zoom mode enables the program to work in 2x, 3x, 4x... So it's useable again on high resolution screens (fixed at 2x in this release).
- Many shortcuts have been modified to use ALT key instead of Control (selections, etc).
- Channel enable / disable controls work with F keys row instead of the numbers row.
- The first 16 instruments get that MIDI channel assigned instead of defaulting to 0.
- BPM/TPB changes are now applied in real-time while playing a song or pattern.
- Song play view shows more information per note.
- Starts in "Tracker Mode" by default.
- After playing a song or pattern the instrument editor shows used instruments with a small dot '·' on the left side.
- Playing the current row only plays non silenced channels.
- Cursor steps when playing the current note / row with '4' and '8' keys.
- Page Up/Down move the cursor 4 highlighted rows instead of fixed 16, making it useful when working in non 4/4 time measures.
- Default pattern size is 64 instead of 128.
- Program doesn't allow the user to set a resolution lower than 1024x700 and will increase the X, Y or both of them if necessary.
- Play view draws as many channels as it can fit within the horizontal resolution, instead of a fixed number of them.
- Load and Save screens now use all the available space to display their list entries, and have an improved X size.
- File requester didn't show .mid files; now it does.
- Many more.
Fixed bugs:
- Many memory bugs have been fixed (reading from uninitialized variables et al).
- Control + L to load and Control + S to save work again.
- Using F6 to play current pattern now works even if it's not included in the song order list.
- Scroll didn't move when playing individual notes and rows.
- Current pattern being edited didn't display correctly the row numbers if it had a different count than the default.
- Last line remained highlighted when play entered the current pattern then exited to another.
- You could use the numeric keypad '+' to advance the song position, but couldn't use the '-' to rewind it.
- Many, many more.
Removed things:
- Initial information screen has been removed.
- VUMeters can't be enabled. It's been broken forever, and I don't use it - Will reenable if / when it's fixed.
- 8 bit .png files are not supported anymore.
- Comments when exporting .mid files have been removed (I needed them to be as small as possible).
- The weird "Are you crazy" requester has been removed, substituted by just stopping the current song and loading the new one / fixing the bugs that hanged the program.
- Column size can't be changed.
- Full screen mode is disabled for now, because trying to set the weird resolutions possible with a window to full screen just doesn't work. Still, I like to work on full screen, so it's going to be fixed soon.
- There was a (too frequent) crash when loading a song from disk. It's now fixed.
Broken things:
- zt.conf configuration file needs to be edited by hand.
- Full screen mode doesn't work with the weird resolutions you can set on the windowed mode :-)
Other changes:
- The source code has been updated where needed to compile with modern C++.
- External libraries (zlib, libpng, SDL 1.2) are again up to date.
- zlib and libpng are now statically linked instead of using external .dll files.
- The (good old) Visual C++ 6.0 project and solution have been replaced by both Visual Studio 2008 and 2015 versions.
- Parts of the code have been cleaned, re-indented, commented and altered to suit my tastes. I sincerely hope this is not seen as a rude move at all. I needed to do it to understand what I was reading.
- Directory tree has been changed.
- Version number scheme and program name have been changed, too.
Future changes:
- I'm going to make this software work on OSX and Linux at some point.
I'm open to getting feedback and willing to fix bugs if you encounter them, although I can't make promises about when I'll be able to upload a new version; currently my real life is taking a lot of the time I can spend on non-work non-college projects :-)
As a small example, this was created with zTracker':
https://soundcloud.com/m6502/alarm-clock
That's all. I hope this is useful to someone :-)
This fork is released as a homage to the original work of Chris Micali. I have been using zTracker nearly on a daily basis for the past 18 years. As the original project has remained untouched since 2002, at some point I started tinkering with the source code, at first to fix bugs and later to change how the program behaves.
Actually the source code has been sitting into github for a few years but I never bothered to upload an updated executable... So here it is :-)
Please be advised that I can't guarantee that this version works better for you than the original. My fork behaves nearly flawlessly for me and I like it better than the original. But in your case this could be a different history. It is a good idea to check the following list of changes to understand what this fork is about.
Program behavior changes:
- Zoom mode enables the program to work in 2x, 3x, 4x... So it's useable again on high resolution screens (fixed at 2x in this release).
- Many shortcuts have been modified to use ALT key instead of Control (selections, etc).
- Channel enable / disable controls work with F keys row instead of the numbers row.
- The first 16 instruments get that MIDI channel assigned instead of defaulting to 0.
- BPM/TPB changes are now applied in real-time while playing a song or pattern.
- Song play view shows more information per note.
- Starts in "Tracker Mode" by default.
- After playing a song or pattern the instrument editor shows used instruments with a small dot '·' on the left side.
- Playing the current row only plays non silenced channels.
- Cursor steps when playing the current note / row with '4' and '8' keys.
- Page Up/Down move the cursor 4 highlighted rows instead of fixed 16, making it useful when working in non 4/4 time measures.
- Default pattern size is 64 instead of 128.
- Program doesn't allow the user to set a resolution lower than 1024x700 and will increase the X, Y or both of them if necessary.
- Play view draws as many channels as it can fit within the horizontal resolution, instead of a fixed number of them.
- Load and Save screens now use all the available space to display their list entries, and have an improved X size.
- File requester didn't show .mid files; now it does.
- Many more.
Fixed bugs:
- Many memory bugs have been fixed (reading from uninitialized variables et al).
- Control + L to load and Control + S to save work again.
- Using F6 to play current pattern now works even if it's not included in the song order list.
- Scroll didn't move when playing individual notes and rows.
- Current pattern being edited didn't display correctly the row numbers if it had a different count than the default.
- Last line remained highlighted when play entered the current pattern then exited to another.
- You could use the numeric keypad '+' to advance the song position, but couldn't use the '-' to rewind it.
- Many, many more.
Removed things:
- Initial information screen has been removed.
- VUMeters can't be enabled. It's been broken forever, and I don't use it - Will reenable if / when it's fixed.
- 8 bit .png files are not supported anymore.
- Comments when exporting .mid files have been removed (I needed them to be as small as possible).
- The weird "Are you crazy" requester has been removed, substituted by just stopping the current song and loading the new one / fixing the bugs that hanged the program.
- Column size can't be changed.
- Full screen mode is disabled for now, because trying to set the weird resolutions possible with a window to full screen just doesn't work. Still, I like to work on full screen, so it's going to be fixed soon.
- There was a (too frequent) crash when loading a song from disk. It's now fixed.
Broken things:
- zt.conf configuration file needs to be edited by hand.
- Full screen mode doesn't work with the weird resolutions you can set on the windowed mode :-)
Other changes:
- The source code has been updated where needed to compile with modern C++.
- External libraries (zlib, libpng, SDL 1.2) are again up to date.
- zlib and libpng are now statically linked instead of using external .dll files.
- The (good old) Visual C++ 6.0 project and solution have been replaced by both Visual Studio 2008 and 2015 versions.
- Parts of the code have been cleaned, re-indented, commented and altered to suit my tastes. I sincerely hope this is not seen as a rude move at all. I needed to do it to understand what I was reading.
- Directory tree has been changed.
- Version number scheme and program name have been changed, too.
Future changes:
- I'm going to make this software work on OSX and Linux at some point.
I'm open to getting feedback and willing to fix bugs if you encounter them, although I can't make promises about when I'll be able to upload a new version; currently my real life is taking a lot of the time I can spend on non-work non-college projects :-)
As a small example, this was created with zTracker':
https://soundcloud.com/m6502/alarm-clock
That's all. I hope this is useful to someone :-)
Oh, by the way. Here are the links :-)
Executable file (win32): https://github.com/m6502/ztrackerprime/releases/download/20180118/ztracker.20180118.win32.zip
Source code repository: https://github.com/m6502/ztrackerprime
Executable file (win32): https://github.com/m6502/ztrackerprime/releases/download/20180118/ztracker.20180118.win32.zip
Source code repository: https://github.com/m6502/ztrackerprime