comparison docs/changes.txt @ 2:687659b135f0

Initial entry of mikmod into the CVS tree.
author darius
date Fri, 23 Jan 1998 16:05:05 +0000
parents
children
comparison
equal deleted inserted replaced
1:d4366a861859 2:687659b135f0
1 --> MikMod Sound Libraries Version 3.0
2 -> Updates and Changes Text - August 20st, 1997
3
4
5 Updates to MikMod 3.0 Public from Beta Release 03.
6 ==================================================
7
8 I warn you now: There are a LOT of changes in this version. :-)
9
10
11 -/- Soundcard Drivers:
12
13 - The Soundscape and WSS soundcard drivers were effectively disabled.
14 They should work now.
15
16 - There is now a Gravis Ultrasound software mixer. To use the old
17 hardware-only one, register 'drv_gus2' in the place of 'drv_gus'.
18 The drv_gus driver now supports BOTH software and hardware mixing
19 at the same time!
20
21 - Fixed some small stereo bugs in the software mixer [VIRTCH.C].
22 Stereo would get skewed in rare circumstances.
23
24 - Added Dolby Surround Sound to the software mixer.
25
26 - Added real reverb to the software mixer.
27
28 - Added a second software mixer [VIRTCH2.C] that is geared toward
29 high-quality output at the cost of speed. This mixer is by default
30 used by the RAW and WAV to-disk drivers.
31
32 - Added a WAV out driver. This generates standard RIFF-WAVE format
33 files as the name MUSIC.WAV.
34
35
36 -/- Functions and API:
37
38 - Big Yay! There is nicely written and formatted documentation!
39 Check out 'docs/mikmod.doc' for the MS Word 2.0 or 'docs/mikmod.txt'
40 for the std text versions of the documentation. Note that the docs
41 are still in the process of being written and there are most likely
42 a handful of inaccuracies and missing topics (to be fixed soon).
43
44 - Big Yay! You can now change driver settings on the FLY!
45
46 Changes to md_mixfreq, md_device, md_dmabufsize, and md_mode after
47 mikmod has been initialized will have no effect on replay. To have
48 any new settings take effect, call MikMod_Reset(), which will reset
49 the driver to use
50 the new settings.
51
52 Also, note that the following flags of md_mode will take effect im-
53 midiately no matter what:
54 DMODE_SURROUND, DMODE_REVERSE,
55 and DMODE_INTERP (when it is supported :).
56
57 - md_dmabufsize is in MILLISECONDS now (and this time it will stay :).
58 The new default value is 50 milliseconds, which comes out to about the
59 same buffer size as the old default of 8192 bytes.
60
61 NOTE: To achieve the maximum size buffer, use a value of 4000 or more.
62 That will guaruntee that the largest DMA buffer is always used.
63
64 - MD_SetNumChannels has been renamed to MikMod_SetNumVoices and has sev-
65 eral other changes:
66
67 - A value of -1 for either parameter (music or sndfx) will keep the
68 current setting.
69
70 - It can now be called at any time. If it is called while playback is
71 active, there will be a brief skip in playback and the new settings
72 will be active.
73
74 - ML_RegisterLoader() and MD_RegisterDriver(), although still supported,
75 should be replaced with:
76
77 MikMod_RegisterLoader(load_format);
78 MikMod_RegisterDriver(drv_sound);
79
80 NOTE: The '&' (address-of) preceeding the loader/driver should not be
81 used with these procedures.
82
83 - Also added the functions:
84
85 MikMod_RegisterAllLoaders();
86 MikMod_RegisterAllDrivers();
87
88 These are defined in MDREG.C and MLREG.C, and can only support drivers
89 that are distributed with MikMod or that I am aware of. If you are a
90 driver developer, simply register your driver by hand as you did be-
91 fore.
92
93 - A new naming convention is now being used. This system should be quite
94 a bit more intuitive for the avaerage MikMod user. Note that for this
95 version, and probably the next few updates, the old API will still be
96 useable (#define macros in MIKMOD.H). These will be removed in the
97 near future, however.
98
99 The [hopefully] complete list of function name changes are as follows:
100
101 Old New
102
103 MD_RegisterPlayer(x) MikMod_RegisterPlayer(x)
104 MD_Init MikMod_Init
105 MD_Exit MikMod_Exit
106 MD_Update MikMod_Update
107 ML_Free(x) MikMod_FreeSong(x)
108 MD_SetNumChannels(x,y) MikMod_SetNumVoices(x,y)
109 MD_SetNumVoices(x,y) MikMod_SetNumVoices(x,y)
110 MD_PlayStart MikMod_EnableOutput
111 MD_PlayStop MikMod_DisableOutput
112
113 MD_VoiceSetVolume(x,y) Voice_SetVolume(x,y)
114 MD_VoiceSetFrequency(x,y) Voice_SetFrequency(x,y)
115 MD_VoiceSetPanning(x,y) Voice_SetPanning(x,y)
116 MD_VoicePlay(x,y,z) Voice_Play(x,y,z)
117 MD_VoiceStop(x) Voice_Stop(x)
118 MD_VoiceReleaseSustain(x) Voice_ReleaseSustain(x)
119 MD_VoiceStopped(x) Voice_Stopped(x)
120 MD_VoiceGetPosition(x) Voice_GetPosition(x)
121 MD_VoiceRealVolume(x) Voice_RealVolume(x)
122
123 ML_LoadFN(x,y) MikMod_LoadSong(x,y)
124 ML_LoadFP(x,y) MikMod_LoadSongFP(x,y)
125
126 MP_HandleTick Player_HandleTick
127 MP_PlayStart(x) Player_Start(x)
128 MP_PlayStop Player_Stop
129
130
131 - A new array of procedures have been added that affect the current playing
132 song (as opposed to the old MP_ functions, which required a UNIMOD handle).
133 The functions are [see the MikMod docs for descriptions]:
134
135 void Player_Start(UNIMOD *mf);
136 BOOL Player_Active(void);
137 void Player_Stop(void);
138 void Player_TogglePause(void);
139 void Player_NextPosition(void);
140 void Player_PrevPosition(void);
141 void Player_SetPosition(UWORD pos);
142 void Player_Mute(SLONG arg1, ...);
143 void Player_UnMute(SLONG arg1, ...);
144 void Player_ToggleMute(SLONG arg1, ...);
145 BOOL Player_Muted(int chan);
146 void Player_HandleTick(void);
147
148
149 - Note to beta testers: The following files, if existing, should be de-
150 leted (they are residue from older betas):
151
152 pt_share.c
153 pt_play.c
154 mp_chart.c
155
156 Actually, I suggest you remove any old versions of mikmod completely
157 before installing this one.
158
159 - If no soundcard is found, MikMod will automatically default to the
160 No-Sound driver. This fixes crashes caused when no soundcard was
161 present.
162
163
164 -/- Loader:
165
166 - The 15-instrument module loader has been adapted to support Ultimate
167 SoundTracker modules (very old :), and general 15-instrument support
168 and detection has been improved as well.
169
170 - The UniMod Module Loader (load_uni) has been reinstated. See MIKCVT.C
171 for the conversion program that you can use to change any supported
172 format into a UniMod module.
173
174 - The MED loader has been fixed (although it is still very non-func-
175 tional).
176
177 - The 669 loader has been fixed up a tiny bit.
178
179 - A title loading command has been added, for those making module players
180 who want to add the song titles to directory listings:
181
182 CHAR *MikMod_LoadSongTitle(CHAR *filename);
183
184 Returns a malloc'ed string containing the title of the song, or NULL
185 if the song was not able to be opened or no title was present.
186
187
188 -/- Player:
189
190 - ImpulseTracker sample vibrato support has been improved. Linear mode
191 sample vibratos are now supported perfectly, but modules in Amiga mode
192 will not sound exactly correct (but close).
193
194 NOTE: This does NOT affect standard effects vibratos, which are correct
195 whether in Linear or Amiga (logrithmic) mode.
196
197 - A small handful of modules with rare envelope sustain / loop setups
198 would confuse mikmod and end up with silent samples.
199
200 - Note Delays were not being implimented properly.
201
202 - a note delay would distort the sample that had been playing before it.
203
204 - a note off or note cut triggered with a note delay too effect im-
205 midiately, rather than after the delay had expired.
206
207 - A 'bug' in ImpulseTracker's Sample Offset (Oxx) has been fixed. The
208 IT documentation wrongly reported that offsets past the end of a sample
209 would not be played (they are, duh).
210
211 - An IT Retrig (Qxx) indescrepency - Qx0 is the same as Qx1 [std Pro-
212 Tracker and ST3 simply ignore Qx0 commands]. Fixed.
213
214 - Fixed an IT/S3M bug where Qxx would mess up any pitch slide commands
215 immidiately following it that had a data part of 00 (ie, D00).
216
217 - Overall NNA has been optimized and improved in many ways.
218
219
220 ---------------
221 Updates to Build 03 of MikMod 3.0 over Build 02.
222
223 -/- General:
224
225 - The volume scale for song volume has been redone to 0->128 instead of
226 0->100.
227
228 - You can also control song volume via "md_musicvolume", which is also
229 on a scale of 0->128.
230
231 - When registering loaders or drivers, you no longer put them in reverse
232 order.
233
234 - ML_LoadFN() has been modified. It now accepts two parameters, the
235 filename of the song, and the maximum number of channels allowed to be
236 allocated. See the MIKMOD.C example for more details.
237
238 - Sound Effects support has been added. See MIKMOD.TXT for complete
239 details on how to fully utilize MikMod's sound effects routines.
240
241
242 - Additions to the MIKMOD.C example file:
243
244 - F1 through F10 now set volumes of 10 through 100.
245
246 - Songs can be paused and resumed via pressing 'P'
247
248 - Added panning separation control via the command line option
249 '/pansep xx' where x is a value from 0 to 100% (100% being full
250 stereo). [default = 100%]
251
252 - Added reverse stereo panning option (/revpan).
253
254 - Added volume control via F1 (10%) thru F10 (100%).
255
256 - Maximum allowed mixer channels can be set with the '/c xxx' option.
257 The max value is 255 channels, the minimum is 2. This will affect
258 ALL song formats. [default = 64]
259
260
261 -/- Player:
262
263 - ImpulseTracker (IT) support is nearly completed. New note actions are
264 now supported in full.
265
266 - IT Linear slide functions are now fully functional, and greatly op-
267 timized for both speed and size.
268
269 - IT and XM KeyOff / KeyFade effects should be supported correctly now.
270
271 - Several IT panning bugs have been fixed.
272
273 - There is no longer a need to call MD_PlayStart() or MP_PlayStop() if
274 no sound effects channels have been specified - they will automatic-
275 ally be called by MP_PlayStart() and MP_PlayStop()
276
277 - New function: MP_TogglePause(UNIMOD *mf);
278 Pauses or unpauses a song using MP_PlayStart and MP_PlayStop
279
280 - Channel muting is now availble via the functions:
281 MP_Mute();
282 MP_UnMute();
283 MP_ToggleMute();
284
285
286 -/- Loaders:
287
288 - Many IT modules that would not load before will now load.
289
290 - Support for scaling samples to fit into availible memory (for use on
291 hardware mixer cards, but optional for software mixing as well).
292
293 - Sample Loader functions have been separated from MDRIVER.C into a new
294 source file, SLOADER.C.
295
296 - XM loader bug fixed that caused a small handful of XMs to crash.
297 [thanks to Urban Meuller]
298
299
300 -/- Software Mixer:
301
302 - Support for reverb and stereo delay have been added, but are not yet
303 availible in assembly mixer form (C mixer only, see VIRTCH.C).
304
305 - VIRTCH.C can be compiled as a 16 bit sample mixer. This about 50%
306 slower than the 8 bit sample mixer on Intel machines, and requires
307 twice as much memory for samples (not yet availible in assembly
308 mixer form).
309
310 [See VIRTCH.C for information on how to recompile to support these
311 options]
312
313 - Reverse Stereo is available for all soundcards.
314 Set "md_mode |= DMODE_REVERSE;"
315
316 - Dolby Surround Sound features are planned for but not yet supported.
317 To enable surround (for future upgrades of MikMod):
318 Set "md_mode |= DMODE_SURROUND;"
319
320
321 ---------------
322 Updates to Build 02 of MikMod 3.0 over Build 01.
323
324 - SLOADER has been renamed back to MLOADER.
325
326 - Error messaging has been worked back to the old style of returning a
327 string and no error code.
328
329 - All references to strings have been defined as UBYTE instead of char.
330 (is this a problem for anyone?)
331
332 - SB/AWE32 drivers have been added.
333 (thanks to Steffen Rusitschka)
334
335 - Windows Sound System [WSS] support has been added.
336 (thanks to Mario Koeppen)
337
338 However, for the driver to detect the card, the following environment
339 variable must be set: set WSS=A[port] I[irq] D[dma]
340
341 - Several older module loaders have been reinstated (thanks to Dimitry
342 Boldyrev): FAR, 669, MED, and DSM. These loaders most likely have
343 some bugs to be worked out.
344
345 - A new version of the "BigMultiply" function has been made, that is both
346 big-endian friendly and C based. It uses the FPU to do the 64-bit mul-
347 tiply, and is only used on non-Watcom compilers.
348
349 - A bunch of IT replated replay bugs weeded out.
350
351 - IT and S3M loaders have been optimized to act like other players' load-
352 ers that detect the REAL number of channels used. One wonders whatever
353 happened to a simple "numchn" variable in a module format rather than
354 pre-processing all pattern data to figure out what is used and what is
355 not.
356
357 - The GUS drivers have been split apart - there were both VTIMER and GUS
358 timer based drivers. The VTIMER one is for timing-critical DOS appli-
359 cations, while the GUS timer is exellent for programs that will be run
360 from a Windows95 dos-box.
361