summaryrefslogtreecommitdiff
path: root/apps/codecs/dumb/release.txt
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/dumb/release.txt')
-rw-r--r--apps/codecs/dumb/release.txt406
1 files changed, 0 insertions, 406 deletions
diff --git a/apps/codecs/dumb/release.txt b/apps/codecs/dumb/release.txt
deleted file mode 100644
index eff4b8ded8..0000000000
--- a/apps/codecs/dumb/release.txt
+++ /dev/null
@@ -1,406 +0,0 @@
1/* _______ ____ __ ___ ___
2 * \ _ \ \ / \ / \ \ / / ' ' '
3 * | | \ \ | | || | \/ | . .
4 * | | | | | | || ||\ /| |
5 * | | | | | | || || \/ | | ' ' '
6 * | | | | | | || || | | . .
7 * | |_/ / \ \__// || | |
8 * /_______/ynamic \____/niversal /__\ /____\usic /| . . ibliotheque
9 * / \
10 * / . \
11 * release.txt - Release notes for DUMB. / / \ \
12 * | < / \_
13 * | \/ /\ /
14 * \_ / > /
15 * | \ / /
16 * | ' /
17 * \__/
18 */
19
20
21******************************************
22*** DUMB v0.9.2, released 2 April 2003 ***
23******************************************
24
25Yes, there really has been a release. This is not a day-late April fools'
26joke.
27
28DUMB's full name has changed! The old "Dedicated Universal Music
29Bastardisation" was rather silly, and not much more than a forced attempt at
30finding words beginning with D, U, M and B. I spent weeks and weeks browsing
31dictionaries and hopelessly asking others for bright ideas, until the
32brilliant Chris "Kitty Cat" Robinson came up with "Dynamic". I decided to
33keep the U as Universal, since a DUH struct can hold digital music in any
34format. Now all that remained was the B, but it didn't take me long to come
35up with Bibliotheque, which, despite looking French, is indeed considered an
36English word by Oxford English Dictionary Online, to which my university has
37a subscription. So there you have it - the name now makes sense.
38
39The two most significant additions to the project would have to be the new
40thread safety (with an important restriction, detailed in docs/dumb.txt), and
41the new build system. The silly 'makeall' and 'makecore' scripts are gone. If
42you are a GCC user, all you need do now is run 'make' and 'make install', as
43for other projects. You don't even have to run a 'fix' script any more! There
44are some caveats, which are covered in readme.txt. If you use Microsoft
45Visual C++ 6, you no longer need to obtain GCC and GNU Make - there is a
46project file just for you.
47
48Huge thanks go to Steve Terry for testing on Windows XP - about five times -
49and to lillo for testing on BeOS and Mac OS X. Thanks also to X-G for testing
50on a Windows system that has consistently posed problems for DUMB's old
51makefiles.
52
53There was a bug whereby al_poll_duh() would sometimes cause the music to
54resume playing if you called it after al_pause_duh(). Whether this was DUMB's
55fault for misusing Allegro's API, or a bug in Allegro, is unclear, but this
56release makes it work.
57
58In one of my projects, I found that my AL_DUH_PLAYER stopped playing when
59there were lots of other sound effects. In order to fix this, I programmed
60DUMB to set the priority of the stream's voice to 255, the maximum. I also
61added al_duh_set_priority(), so you can set the priority yourself if you need
62to.
63
64The resampling code has undergone a transformation. The bad news is that the
65linear average code is no longer in use. The good news is that where DUMB's
66resamplers used to require three extra samples' worth of memory to be
67allocated and initialised, it now copes with just the sample data. And it
68does a very good job at bouncing off loop points and otherwise hurtling
69around the sample. The resampling code is considerably more complicated, but
70the code that uses the resamplers is considerably simpler - and if you
71noticed a slight click in some bidirectionally looping samples, you'll be
72pleased to know that that click is gone!
73
74I have also devoted some effort to optimisation. It seemed hopeless for a
75while, but then I actually figured out a way of making it faster AND more
76accurate at the same time! DUMB is now quite a bit faster than it was, and it
77mixes not with 16-bit precision, but with 24-bit precision. (It used 32-bit
78integers all along, but the difference is that it now makes use of 256 times
79as much of the integer's range.)
80
81There have been the usual improvements to playback. The last release occurred
82rather too soon after I had fixed the XM effect memories; EAx and EBx, fine
83volume ramps, had been neglected. These are now handled properly.
84
85In previous versions of DUMB, muted channels in IT were actually played with
86surround sound panning (where the right-hand channel is inverted). This has
87been fixed, so muted channels will really be muted now.
88
89There were also some subtle problems with the way DUMB handled New Note
90Actions for IT files. It turned out that, in all releases of DUMB so far,
91pitch, filter and panning envelopes and sample vibrato were not being
92processed for any note that was forced into the background by a new note on
93the same channel! This only affected IT files. Not only has this been fixed,
94but envelope interpolation is much more accurate. Long trailing envelope-
95driven fade-outs sound a lot better now!
96
97Since panning and filter envelopes are more precise, extra fields have been
98added to the DUMB_IT_CHANNEL_STATE struct, used by
99dumb_it_sr_get_channel_state(). These fields hold the 'decimal' parts of the
100pan and filter cut-off. See dumb.txt for details.
101
102Mxx (set channel volume) now correctly only modifies the last note played on
103the channel, not any previous notes that have been forced into the background
104by New Note Actions, and filter effect processing is now closer to what
105Impulse Tracker does.
106
107The XM loader was slightly flawed and could crash on files containing samples
108with out-of-range loop points. One such file was given to me. This has been
109fixed.
110
111Finally, the legal stuff. Julien Cugniere has been added to the list of
112copyright owners. He deserves it, for all the work he did on the XM support!
113And the licence has been changed. You are no longer required to include a
114link to DUMB in a project that uses DUMB; the reasons for this relaxation are
115explained in licence.txt. However, the request is still there ...
116
117As usual, enjoy!
118
119
120**********************************************
121*** DUMB v0.9.1, released 19 December 2002 ***
122**********************************************
123
124Hi again! Lots to say this time, so I shall cut right to the chase.
125
126DUMB now supports Impulse Tracker's low-pass resonant filters! Huge thanks go
127to Jeffrey Lim, author of Impulse Tracker, for giving me what information he
128still had regarding the algorithm; to cut a long story short, modifying
129ModPlug Tracker's source code (which is in the Public Domain) led to an
130algorithm whose output matched Impulse Tracker's perfectly.
131
132Please note that ModPlug Tracker's filters as they stand do not match Impulse
133Tracker's, and I have no interest in supporting ModPlug Tracker's variant
134(especially not the integer rounding problems). Please see docs/modplug.txt,
135new in this release, for details.
136
137Thanks also go to Fatso Huuskonen for motivating me to add filter support,
138and providing me with several great IT files to test it with!
139
140The other important feature added for this release is click removal. Up until
141now, DUMB has generated clicks when cutting notes, starting samples in the
142middle, and so on. This version of DUMB will remove any such clicks. Note
143that DUMB does not use volume ramps to accomplish this; the algorithm will
144not take the bite out of the music!
145
146In other news, DUMB now supports sample vibrato for IT files, and instrument
147vibrato for XM files. A slight bug in New Note Action handling for IT files
148has been fixed; Note Fade will not break the sustain loops of the sample and
149envelope, as it did before. Tremor handling (Ixy) had a strange bug in it,
150which has been fixed.
151
152Support for XM files has been greatly enhanced. The XM envelope handling new
153in the last release contained a huge bug, resulting in notes seeming not to
154stop when they should; this has been fixed. Some XM files crashed DUMB, while
155others failed to load; these problems have been solved. Effect memories now
156work properly for XM and MOD files, to the best of my knowledge. Some other
157differences between IT and XM have been accounted for, most notably the
158Retrigger Note effects, Rxy and E9x.
159
160DUMB's sound quality and accuracy are not the only areas that have been
161enhanced. The API has been expanded, at last. You can now detect when a
162module loops, or make it play through just once. You can ask DUMB to inform
163you every time it generates some samples; this is useful for visualisation.
164For IT files, you can intercept the MIDI messages generated by Zxx macros,
165enabling you to synchronise your game with the music to some extent. (There
166is no such method for XM, S3M or MOD files yet; sorry. Also note that the
167function will be called before you actually hear the sound; I cannot improve
168this until DUMB has its own sound drivers, which won't be for a while.) You
169can query the current order and row. Finally, operations like changing the
170speed and tempo are now possible, and you can query the playback state on
171each channel.
172
173Some parts of DUMB's API have been deprecated. Simple programs that use
174Allegro will be unaffected, but if you get some compiler warnings or errors,
175please review docs/deprec.txt. This file explains why those parts of the API
176were deprecated, and tells you how to adapt your code; the changes you need
177to make are straightforward. Sorry for the inconvenience.
178
179For various reasons, I have made DUMB's makefiles use different compiler
180flags depending on your GCC version (unless you are using MSVC). There is no
181elegant way of getting the makefiles to detect when GCC is upgraded. If you
182upgrade GCC, you should execute 'make clean' in order to make DUMB detect the
183GCC version again. Otherwise you may get some annoying error messages. (It is
184wise to do this in any case, so that all the object files are built with the
185same GCC version.)
186
187DUMB's example players have been unified into a single player called
188'dumbplay'. The player has been enhanced to display messages when the music
189loops, and when XM and MOD files freeze (effect F00; more information on this
190in docs/howto.txt).
191
192Finally, as noted on DUMB's website, the release notes from the last release
193were inaccurate. It has been verified that DUMBOGG v0.5 does still work with
194that release, and still works with this release. The esoteric DUMBOGG v0.6
195has not been created yet, since DUMBOGG v0.5 still works.
196
197Please scroll down and read through the indented paragraphs in the notes for
198the last release; they are relevant for this release too.
199
200That's all folks! Until next time.
201
202
203*******************************************
204*** DUMB v0.9, released 16 October 2002 ***
205*******************************************
206
207MOD support is here! DUMB now supports all four of the common module formats.
208As usual, there have also been some improvements to the way modules are
209played back. Most notably, handling of tone portamento in IT files has been
210improved a lot, and XM envelopes are now processed correctly.
211
212The other major change is that DUMB now does a dummy run through each module
213on loading. It stores the playback state at thirty-second intervals. It stops
214when the module first loops, and then stores the playback time. This results
215in a slightly longer load time and a greater memory overhead, but seeking is
216faster (to any point before the module first loops) and the length is
217calculated! duh_get_length() will return this and is now documented in
218docs/howto.txt and docs/dumb.txt.
219
220DUMB's build process has been changed to use 'mingw' wherever it used
221'mingw32' before; some directories have been renamed, and the 'fix' command
222you had to run for MinGW has been changed from 'fix mingw32' to 'fix mingw'.
223
224Last time, I directed you to scroll down and read the notes from a past
225release, but ignore this point, and that point applies to something else, and
226so on. Did anyone do so? Well, if you're reading this at all, you probably
227did. Nevertheless, this time I shall be much less confusing and restate any
228relevant information. So the least you can do is read it!
229
230- If your program ever aborts with exit code 37 while loading an IT file,
231 PLEASE LET ME KNOW! The IT file in question has a stereo compressed sample
232 in it, and the format is unspecified for this case (Impulse Tracker itself
233 doesn't use stereo samples at all). I will need the IT file in question,
234 and any information you can give me about how the IT file was created (e.g.
235 what program). (If you don't get to see an exit code, let me know anyway.)
236
237- If your program ever outputs a line resembling "Inst 01 Env: 0,64 8,32
238 15,48" to stderr while loading an IT file, PLEASE LET ME KNOW! You have an
239 old IT file (saved by an Impulse Tracker version older than 2.00), and
240 support for such files is STILL untested.
241
242- Not all parts of DUMB's API are documented yet. You will find some
243 functions in dumb.h which are not listed in docs/dumb.txt; the reason is
244 that these functions still need work and will probably change. If you
245 really, really want to use them, talk to me first (IRC EFnet #dumb is a
246 good place for this; see readme.txt for details on using IRC). I intend to
247 finalise and document the whole of DUMB's API for Version 1.0.
248
249There have been some changes to the naming conventions in DUMB's undocumented
250API. DUMBOGG v0.5 will not work with this and subsequent releases of DUMB;
251please upgrade to DUMBOGG v0.6. These changes should not break anything in
252your own code, since you didn't use those parts of the API, did you ;)
253
254There is still a great deal of work to be done before DUMB's API can be
255finalised, and thus it will be a while before DUMB v1.0 comes out. It should
256be worth the wait. In the meantime, there will be 0.9.x releases with
257additional functionality, improved playback, and possibly support for some
258extra file formats.
259
260Finally I should like to offer an apology; there is a strong possibility that
261some of DUMB's official API will change in the near future. There will not be
262any drastic changes, and the corresponding changes to your source code will
263be simple enough. If I didn't make these changes, DUMB's API would start to
264become limited, or messy, or both, so it's for the better. I apologise in
265advance for this.
266
267Now scroll down and read the notes for the first r... oh wait, we already did
268that. I guess that's it then. You can stop reading now.
269
270Right after you've read this.
271
272And this.
273
274Off you go.
275
276Bye.
277
278
279********************************************
280*** DUMB v0.8.1, released 11 August 2002 ***
281********************************************
282
283This is a minor release that fixes a few bugs. One of these bugs, however,
284was pretty serious. dumb_register_dat_xm() was never coded! It was prototyped
285in aldumb.h, so code would compile, but there would be an unresolved symbol
286at the linking stage. This has been fixed.
287
288Platforms other than Unix did not have a working 'make veryclean' target;
289this has been fixed. In addition, the makefiles now use 'xcopy' instead of
290'copy', since on some systems GNU Make seems to have trouble calling commands
291built in to the shell.
292
293Contrary to the errata that was on the DUMB website, the makeall.sh and
294makecore.sh scripts actually DID install in /usr. This has now been
295corrected, and regardless of whether you use these scripts or call make
296directly, the files will now be installed to /usr/local by default.
297
298The XM loader used to treat stereo samples as mono samples with the data for
299the right channel positioned after the data for the left channel. This
300generally resulted in an unwanted echo effect. This has been fixed.
301
302When playing XM files, specifying an invalid instrument would cause an old
303note on that channel to come back (roughly speaking). Fast Tracker 2 does not
304exhibit this behaviour. This has been fixed.
305
306The GCC makefiles used -mpentium, which is deprecated in gcc 3.x. This was
307generating warnings, and has now been fixed.
308
309In XM files, the length of a sample is stored in bytes. DUMB was assuming
310that the length of a 16-bit sample would be even. I had two XM files where
311this was not the case, and DUMB was unable to load them. This has been fixed.
312
313In order to accommodate the extra part of the version number,
314DUMB_REVISION_VERSION has been added. DUMB_VERSION has also been added in
315order to facilitate checking if the version of DUMB installed is sufficient.
316See docs/dumb.txt for details.
317
318As a last-minute fix, the XM "Break to row" effect is now loaded properly. It
319was necessary to convert from binary-coded decimal to hexadecimal (those who
320have experience with Fast Tracker 2 will know what I mean). In short, this
321means the effect will now work properly when breaking to row 10 or greater.
322
323DUMB v0.8 had faulty release date constants; DUMB_MONTH and DUMB_DAY were
324swapped! For this reason, DUMB_DATE should not be compared against any date
325in 2002. This note has been added to docs/dumb.txt and also to dumb.h.
326
327Please scroll to the end and read the release notes for the first version,
328DUMB v0.7. Most of them apply equally to this release. However, the
329non-portable code was rewritten for DUMB v0.8, so that point does not apply.
330The point about length not being calculated also applies to XM files.
331
332Enjoy :)
333
334
335****************************************
336*** DUMB v0.8, released 14 June 2002 ***
337****************************************
338
339Welcome to the second release of DUMB!
340
341In addition to these notes, please read below the release notes for the
342previous version, DUMB v0.7. Most of them apply equally to this release.
343However, the non-portable code has been rewritten; DUMB should now port to
344big-endian platforms.
345
346The main improvement in this release of DUMB is the support for XM files.
347Enormous thanks go to Julien Cugniere for working on this while I had to
348revise for my exams!
349
350There was a mistake in the makefiles in the last release. The debugging
351Allegro interface library was mistakenly named libaldmbd.a instead of
352libaldmd.a, meaning you had to compile with -laldmbd, contrary to what the
353docs said. Apologies to everyone who lost sleep trying to work out what was
354wrong! The reason for using libaldmd.a is to maintain compatibility with
355plain DOS, where filenames are limited to eight characters (plus a three-
356letter extension). The makefiles have now been changed to match the
357information in the docs, so you may have to alter your project files
358accordingly.
359
360The example programs were faulty, and crashed on Windows if they were unable
361to load the file. It was also difficult to work out how to exit them (you had
362to click the taskbar button that didn't have a window, then press a key).
363They have been improved in both these respects.
364
365I have now added a docs/faq.txt file (Frequently Asked Questions), which is
366based on problems and misconceptions people have had with the first release.
367Please refer to it before contacting me with problems.
368
369Thanks to networm for touching up the Unix makefile and writing the
370instructions on using it.
371
372Incidentally, today (Friday 14 June) is the Robinson College May Ball at
373Cambridge Uni. God knows why it's called a May Ball if it's in June. I'm not
374going myself (72 GBP, and I'd have to wear a suit, ugh), but with all the
375noise outside I shall enjoy pumping up the speakers tonight!
376
377
378****************************************
379*** DUMB v0.7, released 2 March 2002 ***
380****************************************
381
382This is the first release of DUMB, and parts of the library are not
383crystallised. Don't let this put you off! Provided you don't try to use any
384features that aren't documented in docs/dumb.txt, the library should be rock
385solid and you should be able to upgrade more or less without problems.
386
387Here are some notes on this release:
388
389- There is some non-portable code in this release of DUMB. It is likely that
390 the library will fail to load IT files with compressed samples on
391 big-endian machines such as the Apple Macintosh.
392
393- If your program ever aborts with exit code 37 while loading an IT file,
394 PLEASE LET ME KNOW! The IT file in question has a stereo compressed sample
395 in it, and the format is unspecified for this case (Impulse Tracker itself
396 doesn't use stereo samples at all). I will need the IT file in question,
397 and any information you can give me about how the IT file was created (e.g.
398 what program). (If you don't get to see an exit code, let me know anyway.)
399
400- If your program ever outputs a line resembling "Inst 01 Env: 0,64 8,32
401 15,48" to stderr while loading an IT file, PLEASE LET ME KNOW! You have an
402 old IT file (saved by an Impulse Tracker version older than 2.00), and
403 support for such files is untested.
404
405- The length of IT and S3M files is not currently calculated. It is just set
406 to ten minutes.