Mercurial > ~darius > hgwebdir.cgi > mikmod
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 |