Dec 142017
.MOD file player for Windows.
File WMPRO.ZIP from The Programmer’s Corner in
Category Windows 3.X Files
.MOD file player for Windows.
File Name File Size Zip Size Zip Type
WMPRO.EXE 205824 60014 deflated
WMPRO.WRI 21888 8469 deflated
BWCC.DLL 130224 42872 deflated

Download File WMPRO.ZIP Here

Contents of the WMPRO.WRI file

1BWinMod PRO
An MS-Windows MOD file player.
v 0.022
Copyright (c) 1992 DweebSoft
Written by James Holderness


WinMod PRO is a MOD file player for Windows using the multimedia waveform audio services. It requires Windows version 3.1, and some sort of soundcard that has an asynchronous waveform driver. Synchronous drivers like the PC speaker and Adlib drivers are not really suited for MOD file playing (as implemented in this program), although if you play around with the settings described in the System Options section below, you may be able to get them to work (sortof).

2.Supported formats

WinMod PRO should be able to play noisetracker, soundtracker, protracker and screamtracker files. It is also able to play modules compressed with the Windows COMPRESS utility. When scanning a directory, it only searches for files with MOD, NST and STM extensions, or their compressed forms (MO_, NS_ and ST_).

Of the various effects used in the different module formats, WinMod PRO supports all the noisetracker/soundtracker effects (I think). Of the protracker effects, it doesn't support loop invert, and only handles the normal sine wave, square wave and ramp wave settings for vibrato and tremolo but should do everything else. As far as screamtracker effects go, you're lucky if anything works at all - it "handles" the first ten, but whether it handles them correctly or not is another question.


First make a directory, (.e.g C:\WINMOD), and copy all the files that came in the the archive into that directory. The only files required for WinMod PRO to work are WINMOD.EXE and BWCC.DLL, although you'll probably want to keep this document for reference. If you already have a more recent copy of BWCC.DLL somewhere in your path, then you can delete the copy included with WinMod PRO if you wish - otherwise just leave it in the WINMOD directory.

Having installed WinMod PRO, you now need to tell Windows how to find and execute it. There are two ways that this can be done.

Program item: The most obvious method is to add it to one of the group windows in the Program Manager, and launch it from there. To do this, select the File|New menu and choose the Program item option. For the Description, type WinMod PRO, for the Command Line, type in the full path to the WINMOD.EXE file, and for the Working Directory, enter the path of the directory containing your modules. You can ignore the other options for the moment. Once you have done this, you should see a new icon for WinMod PRO.

Extension association: The second method, is to associate it with the various files extensions used by mod files for use within the File Manager. To do this, first run the Registration Info Editor - this can be done by selecting the File|Run menu, and entering the filename REGEDIT.EXE. From there, select the Edit|Add menu, and enter the following details: for the Identifier, enter something like MODFILE; for the File Type, enter MOD File; leave the Action option on Open; for the Command, enter the full path to the WINMOD.EXE file followed by %1 (e.g. D:\WINMOD\WINMOD.EXE %1); disable the Uses DDE box (remove the cross); and leave the rest blank.

So far, all you have done is create a new file type - MOD File. Now you have to associate the various file extensions with that type. To do this, startup the File Manager, and select the File|Associate menu. For the Files with Extension option, enter MOD, and then select MOD File from the Associate with list. Do the same for the extensions NST, STM, MO_, NS_, and ST_. Now whenever you double click on a file with one of the above mentioned extensions, WinMod PRO will automatically startup, and play that file.

4.Playing modules

Having installed WinMod PRO, there are now a number of ways in which you can play your modules. The first method, explained above, is to play the module from within the File Manager. This can be done either by double-clicking on the filename of the module, or pressing when the filename is highlighted. If another module is already playing, it will be terminated and the new module will begin playing.

The next method, (also involving the File Manager), is the drag-and-drop method. To do this, first start up WinMod PRO, and minimize it - this can be done automatically by checking the Run Minimized option in the properties box in the Program Manager. Now that you have the icon sitting at the bottom of the screen, you can drag a file from the File Manager and drop it onto the icon and WinMod PRO will begin playing that module. If a module is already playing when you drop another file onto the icon, the currently playing module will terminate, and the new one will begin.

To drag a file, depress the left mouse button with the cursor over the file you wish to play. Then move the cursor (still keeping the button depressed) towards the WinMod PRO icon - the file will be dragged along. Once the cursor is over the icon, you can release the mouse button, thereby dropping the file onto the icon, and causing it to play. You can also select multiple files, and drag them all onto the icon at once. They will be played one after the other until they are all finished. Be sure to set the Break Loop option (explained below) otherwise certain modules may never terminate.

The easiest method, though, is to start the module from within WinMod PRO itself. To do this, select the File|Open menu and select the module(s) you wish to play from the displayed list. The nicest thing about this method, is that the actual name of the module is displayed along with its file name. Once you have finished your selection, just press to begin playing.


The Options menu enables you to configure WinMod PRO to fit your particular needs. Theses settings will automatically be saved to a file called WINMOD.CFG in the same directory as the file WINMOD.EXE. If you delete this file, the default settings will be used the next time WinMod PRO is run.

Most of these options will take effect almost immediately, but changes to the System Options won't be noticeable if a module is already playing - you will have to reset the module, and start playing again.


Sample rate: This is the number of samples outputted(?) per second, and affects the quality of the sound. The higher the value, the better the quality, but the more processor time used. Also note that if a module has poor quality samples, setting this value higher will make very little difference. I usually set it to 10000, but you can go as low as about 4000 (really low quality), but not much higher than 20000 (depending on the speed of your computer).

Playback rate: This value should usually be set the same as the Sample rate (in fact changing the Sample rate, will automatically set this to the same value). However, by setting this value higher or lower than the Sample rate, you can cause a module to be played back faster or slower than it should be. Note that changing this value will also effect the pitch of the module. Have no idea why I added this option.

Buffer size: When WinMod PRO is playing a module, it first calculates a buffer full of information, and then outputs that buffer. While the buffer is being played, it can then begin calculating the information to fill up the next buffer. This entry specifies the size of that buffer. If the buffer is too small, the system will have finished playing it before the next buffer could be filled. However, if it is too big, the whole system will come to a halt for a noticeable period of time each time the buffer is refilled. A setting of 8000 seems to work fine with a 10000 Sample rate.

Number of buffers: Having a number of buffers solves the above mentioned problems to a certain extent. It gives the impression of there being a big buffer, but since only one of them is filled at a time, the time delay while the filling takes place is not as noticeable. Unfortunately there is a limit on the number of buffers that the system will handle (eight), and more buffers obviously also take up more memory.

Interrupt mode: Once a buffer has been played, Windows will signal the program to tell it to begin playing the next buffer and refilling the now free buffer. However, because Windows is not a true multitasking system, that signal can be delayed by a process that is doing some time-consuming operation - you usually see the hour-glass cursor at this time. Having a large number of buffers solves this problem to a certain extent, but not all of the time. Interrupt mode gets around this, by processing the signal, no matter what else is going on. Ideally this option should always be enabled, but if it causes problems with your system for some reason or other, it can be disabled.


Volume slide: Apparently certain older modules used the volume slide effect differently to how it is currently implemented, so they don't sound quite right. The solution to this problem is to disable the volume slide effect, but only for those specific modules, since most modern modules will require it to be implemented properly. The only module that I know of that requires this option disabled is Run-the-gauntlet.

Tempo changes: Although the speed effect is only defined for speeds less than 32, certain soundtracker/noisetracker modules set it to values out of that range. Normally this wouldn't be a problem, since the value would be rounded down to 31, but the protracker format interprets values greater than 31 as tempo settings and thus cause these modules to play at the wrong speed. If you have any modules with this problem (e.g. Klisje-paa-klisje, I think), you should disable this effect before playing them.


Loop module: Enabling this option will cause all modules to continue looping from the beginning until manually stopped.

Break on repeat: Since certain modules will loop even if the Loop module option is not set, this option can be used to stop those modules as soon as they begin repeating. It is advisable to set this option when playing a group of modules, otherwise the end of the group may never be reached if some module in the middle keeps repeating.

Fade speed: When a module stops playing because of the Break on repeat option, it doesn't stop straight away, but instead the volume is faded until there is no sound. This option allows you to specify the speed at which the volume fade occurs - 1 is the slowest, and 64 the fastest (stops instantaneously).

Auto play: When a single module is selected via the File|Open menu, the module will only be loaded - you must select the Module|Play menu to begin playing it. If this option is set, though, the module will begin playing as soon as it is loaded. Note, however, that if a group of files is selected, or the module is started using any of the other methods (drag-and-drop, etc), it will be played automatically regardless of this setting.

Group repeat: When you select a group of modules, they will normally each be played only once. If this option is enabled, though, the group will be repeated over and over again. To stop the group repeating, you can either disable this option (while they are playing) and wait for the group to finish; or select the File|Close menu, in which case all playing will stop immediately.

Stereo: If you have an output device that supports stereo, you can play your modules in stereo by enabling this option. Note, however, that certain modules don't sound that hot in stereo, and stereo is also quite a bit more processor intensive. If your device doesn't handle stereo, you probably won't hear anything with this option enabled.

Volume control: If you have an output device that supports volume control, you should be able to change the output volume using the volume slide-bar. However, since I have received reports that the volume control could be causing problems with the SoundBlaster PRO, I have disabled it by default. If you wish to try out the volume control, you should enable this option.


The main place that problems are likely to crop up is in the implementation of the effects. I know very little about the screamtracker effects, so it is quite possible that they are all wrong. I have also been finding subtle mistakes in my interpretation of many of the other effects as I've been developing this program, so its quite likely that there are many more mistakes there too.

The position/pattern info seems to lag a bit behind the actual mod. This is also the reason why restarting after a pause starts a bit back from where you actually paused. Unfortunately, there is not much I can do about this at the moment - you'll just have to deal with it.

The stereo and volume control routines are dubious at best. I don't have access to a device that supports such features, but managed to get a friend of a friend (on the other side of the country) to try things out on their SoundBlaster PRO. The stereo seemed to work fine in that the right tracks came out the right speakers, but the volume seemed to fluctuate randomly.

Now this could have been a problem with the driver, it could have been a problem with my stereo routines, it could have been a problem with the volume control (hence the option to disable volume control), or it could have been something totally different. Until I have easy access to a SoundBlaster PRO, and a bit more time, you're just going to have to live with it as it is.

It is also quite possible that this player will cause your system to hang from time to time. If this is likely to cause you much distress, then I suggest you not use it while you are involved in anything critical - or at least until you are confident that it works with your system.


I do not guarantee that this program is bug free and will function perfectly or that it will do anything at all for that matter. I can also not be held responsible for anything it may do that you didn't want it to do. This includes hanging Windows, formatting your hard drive, exploding your monitor, or anything else you can come up with. If you think you might want to use it, you do so at your own risk.

8.Revision history

0.01This was my very first attempt. It just barely worked - full of bugs. Gave it to a friend to try out.
0.01First real version. Was probably suitable for release, but was only given to one person to try out (different person this time).
0.02Corrected bugs reported in v0.01 and added a few things suggested. This was meant to be released, but the u/l to failed.
0.022Various bits and pieces added since v0.02 - mainly the position/pattern info, and improving the accuracy of the pause. Still a beta, but fairly stable I think.

9.Extensions and improvements

Initially this whole program was written in C++, so it was VERY slow. Later on I rewrote the main loop in assembly which has made quite a difference. There is still quite a bit more that can be rewritten in assembly, but I'm not sure that it will be that much of an improvement.

Although WinMod PRO supports quite a few module formats, I would like to improve on the screamtracker implementation, and also look into some of the other module formats like MED for example. Unfortunately I have no information on any of the other file formats at the moment.

I would also like to add a few graphic features like volume bars or something - not sure how feasible that is though.

If you have any other suggestions or bug reports, please feel free to leave me a message at one of the addresses listed below.


Programmed by: James Holderness
Copyright: DweebSoft 1992
Email address: [email protected] (probably not for long after 11/92)
Fido address: James Holderness @ 5:7102/112
Snail mail: 74 Simonstown Rd, Fish Hoek, 7975 R.S.A.
Bulletin board: If you're in the R.S.A. or like long distance phone calls, try out Connectix BBS (031-2669992). My user id is Dweeb.
News groups: I also read and from time to time, but don't count on me seeing anything there - especially after 11/92.

Any product or brand names mentioned in this document are trademarks or registered trademarks of their respective holders.


At the moment, since I have no way of handling the problems involved with registrations, I am distributing this program as postware. This means that if you like it and are going to continue using it, a postcard at the above snail mail address would be very much appreciated. However, I reserve the right to release future versions as shareware, commercial or whatever.

get a friend of a friend (on the other side of the country) to try things out on their SoundBlaster PRO. The stereo seemed towsqmkhfb`][XVH

]ZX$x,[email protected]_gfdb_]ZXxvsB
XX<"##X#X$5$5&5&5R XT X#X"<"<&&X&XA'5C'5(5(5)5)5#X"<"<)+X+X-X-X].X_.X/X/X#X"<"5k>5>5>5T?5#X"<"5T?5#X"<"<@BXB5B5{@[email protected]@5>5T?5#X"<"

 December 14, 2017  Add comments

Leave a Reply