2
|
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
|