Skip to content

Latest commit

 

History

History
123 lines (59 loc) · 5.77 KB

README.md

File metadata and controls

123 lines (59 loc) · 5.77 KB

zTracker'

zTracker was a Win32 only MIDI tracker / sequencer modeled after Impulse Tracker / Scream Tracker.

zTracker' is, as it's name implies, a derivate of 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.

I don't know if there are any zTracker users remaining out there, but as I'm preparing to try a big overhaul of this software that could potentially end as a whole new program, this is released with the hope that someone can find it useful.

Please be advised that I can't guarantee this version works better for you than the original

Everyone does have his own tastes, routines and circumstances. zTracker' 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 to understand what this fork is about.

There's also the possibility that I misunderstood how something worked and "fixing" it I broke it, or that I have changed the way something works that could have been activated by just pressing a key. Who knows?

So, what's new / different from the original zTracker? Here's a somewhat complete (but not really complete) list of the most important changes:

Program behavior changes:

  • Zoom mode enables the program to work in 2x, 3x, 4x... So it's useable again on high resolution screens.

  • 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 memory bugs have been fixed (reading from uninitialized variables et al).

  • Many more.

Fixed bugs:

  • 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.

  • 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.

This is a nearly complete list of changes from the original program. It is not perfect though, because it's been a lot of years since I started playing with the source code. I can't be sure if I really documented ALL the changes I performed. In fact, I know that, at least, I forgot to write one of them, so there can be more!

I'm open to your feedback. I love this software and I will try to fix all the bugs I could have introduced with my changes, plus the bugs from the 2002 version I didn't catch. Please, don't hesitate to contact me about this matter!