OK, kids! Here's the history of DES-Tracker, throughout its many versions and bug fixes, including notes on this version you now have (v1.4). My usenet address is still dschebek@outb.wimsey.bc.ca. I'm hoping it won't change again anytime soon... :) ENHANCEMENTS AND BUG FIXES FOR DESTRACKER LIBRARY V1.4 ====================================================== This release features two new functions that should come in quite handy for those of you who are writing players/scopes on top of DES-Tracker. The first function is called "AddStatusSignal" and the other is called "RemStatusSignal". These two functions allow you to pass a signal bit to the DES-Tracker library. Then you can Wait() for that signal. The library will signal you automatically whenever the play status changes (ie, pauses, continues, starts playing, stops playing, module is loaded or unloaded). The other routine (RemStatusSignal) removes the signal bit from the library's signal queue. Any number of tasks can be waiting on the library at the same time. Also, you can call either of these two routines regardless of whether you own the library or not! So even a simple scope display can use it, even though there might be another player running that has a lock on the library! Kewlies. :) See the LibFuncs.DOC file for more information on these two new functions. ENHANCEMENTS AND BUG FIXES FOR DESTRACKER LIBRARY V1.3 ====================================================== This release is only minor. It fixes a bug that causes the player to slightly misinterpret an extended Protracker command. Plus I added a new feature: - A bug was fixed in the "Sample Offset" command that caused the player to "greatly exaggerate" the desired offset in the sample. This has been fixed. Now the Maruku Buranu mods play correctly (as will other Protracker modules). - The PSC0 construct had a reserved byte field in it, which has now been given a legitimate meaning. It now holds the default number of iterations for playing the song. This was added so that you could set the number of iterations for a song, save it back to disk, and then simply play it from DTC and have it play for the correct number of iterations. Bear in mind, though, that DTC does not fade the song out automatically. It just starts it playing. Also, since the number of iterations is now part of the PSC0 construct, the number of iterations are now set automatically by DES-Tracker whenever it loads a song that contains a PSC0 construct. If the song doesn't have a PSC0 construct attached to it, then the number of iterations are set to 0 when the song is loaded. For more information on the PSC0 contruct, see the file "DTLib.ReadMe". - I modified the JukeBox.rexx program somewhat to allow for the number of iterations now stored in a module's PSC0 construct (if the module has one). ENHANCEMENTS AND BUG FIXES FOR DESTRACKER LIBRARY V1.2 ====================================================== - This release of DES-Tracker includes the absolutely brand-spanking newest release of req.library (v2.7). DES-Tracker is currently the only source of this of req.library v2.7 at the moment, so spread it around! :) - A new flags field had to be defined for the library's base structure. The upshot of this is the old LScope program will not work properly with the new library. you will need the new one (v1.2) included in this version of DES-Tracker. Also, any programs you may have written that read the library base structure directly will have to be recompiled with the new includes provided in this release as well. Sorry for the inconvenience. - DES-Tracker sometimes missed notes that it was supposed to play. This has been fixed. It was a problem with both the "Note Delay" command and the "Retrigger Note" command. - A tiny little debugging remnant was left behind in the library code itself that did a longword write to location $0. This has been removed. (Colin Fox found this one, 'cause he's got Enforcer and I'm still running on a 1 meg Amiga 500 with a lowly 68000). :( This bug was found to be "mostly harmless". - An actual bug (!) was discovered in the DTC program, appearing in the form of an Enforcer hit. The bug caused a byte to be written to location 0. This has been fixed. Again, "mostly harmless" (unless you're using DES-Tracker with Director II). Thanks to Dave Knox for leading me on the warpath to find this one, and to Colin Fox who used Enforcer to help me track it down and throttle it. - A serious Enforcer hit was discovered in LScope. This has been fixed. - The library had a problem with mods that referenced undefined instruments (also referred to as "blank" instruments). Although I disagree with the idea of references to undefined instruments, I added support for this anomaly by creating a *real* blank sample in memory, and using it whenever an instrument is referenced that does not exist. - If the LoadModule function encountered a file that was missing instruments, it would abort with an "insufficient memory" error, which is wrong. Now, if such a file is loaded, it will abort with a "missing instrument(s)" error. - The library did *not* like Protracker's interpretation of the tempo command (ie, interpreting tempos greater than 31 as "BPM" tempos. DES-Tracker now understands these tempos and interprets them properly (to the best of my knowledge). I think that this BPM idea for the tempo command should win an award for the most stupid idea in the world of trackers. First off, there's no such thing as a "beat" in a tracker module, and secondly, the author of Protracker should have MADE THE BPM TEMPO STUFF AS A SEPARATE TRACKER COMMAND!! Goodness, I'm ranting again... Anyways, if you play a Protracker song that uses these BPM tempos, you will notice the fine tempo now changes as a result to create the correct tempo. Also, notice that it doesn't matter what timing mode you're in (ie, 50 or 60Hz). the correct fine tempo will be calculated taking the current timing mode into account. - Some songs do not "use" BPM timing, ie, they want tempos greater than 31 to be interpreted as normal tempo values. Therefore, the library now has an extra function called "SetTempoInt" (ARexx equivalent: DES_TempoInterp). This allows you to specify whether a loaded module will have its tempo commands interpreted as normal tempos in the range 1..255 or normal tempos in the range 1..31 with tempos 32..255 treated as "BPM" tempos. The default setting is BPM tempos enabled. This flag is saved with the module in the "PSC0" construct appended to the end of the song so that DES-Tracker will know how to interpret that song's tempo from now on. - The DTC program has been modified to accept multiple commands in a single invocation (eg, "DTC mf1 lm in:HamsterDance sm out:HamsterDance", not including the quotes of course. This will load up the song called HamsterDance (in either Noisetracker 2.0 or Soundtracker v2.6 format) from the in: directory and save it back to disk in Noisetracker v2.0 format in the directory called out: ). It should be noted that filenames that have spaces in them should be enclosed in double quotes (ie, "in:Hamster Dance"). - The DTC program has had an extra command added to it called "LP", which means "Load & Play module". You use it just like you'd use the "LM" command ("Load Module"). It will automatically start the song playing as soon as it's loaded. - The DTC program has had another command added to it called "TI", which means "set Tempo Interpretation". "DTC TI 0" enables BPM tempo interpretation, and "DTC TI 1" disables it. - The JukeBox.rexx program was modified. A better shuffling algorithm was added. This isn't terribly important, though. :) --- End of History.TXT ---