MPR.EXE
is a DOS MP3 player program which plays all MP3 files on your
computer (up to 10,000 songs) in random order, with no repeated songs.
Playback may be interrupted and resumed at any time. Play history is
saved in a file and restored each time the program is started. No song
will ever be repeated. Playlists are neither required nor supported.
Target applications are background music generators, automotive embedded
players and automated radio stations.
At this time only Soundblaster 16 and compatible sound cards are supported.
This program is 100% written in assembly and designed to run on
low-end systems. 64Kbps files can be played on a 486DX-50 and 80Kbps files
on a 486DX2-66. Higher bit rates require more computer. 4/586's in the
100 MHz range and Pentium 60's may or may not play the highest bit rate
files. The limits of each marginal computer must be determined empirically.
A 586-133 should play any MP3 with power to spare.
Despite the existence of an old Windoze version, Windoze is not supported, as
it is totally inappropriate for any intended use of this software. Could you
imagine asking Bill to shut down his bloatware before you shut off your car?
The huge DMA buffers and massive decode buffering in the original version of
MPR, that gave antiquated 486 computers sufficient time to access the hard
drive, accidentally allowed it to run in a DOS box under Windoze 95/98.
Ever-increasing numbers of Pentiums on the used computer market, the addition
of more real-time features (VU meters) and the advent of Windoze versions with
no DOS support have changed the design criteria. Now, the emphasis is on
reducing the memory required to run the program so larger MP3 files can be
buffered in memory. Consequently, the DMA block size has been reduced.
Windoze is too busy getting in its own way to virualize everything in the
world and deal with interrupts every 26 ms, so MPR clicks and sputters, just
like Winamp. If you must use Windoze, stick with the old version. The VU
meters don't display properly in Windoze anyway.
A real Windoze version might be created someday. It depends on the interest
level (thus far, zero). Considering that there are hundreds of Windoze MP3
decoders out there already and that the entire MP3 community is hopelessly
mired in playlists, this proposal has very low priority.
ID3 tags are supported if they reside at the head of the file. Artist
(TPE2), Album (TALB) and Title (TIT2) will be displayed if found.
Invocation and options:
Default Soundblaster parameters: Port 220, DMA 5, IRQ 5.
It would be a real good idea to have a viable "BLASTER=" environment string
defined, as these defaults will only work about half the time.
Once operating, <ESC> exits, <N> plays the next song and <P>
pauses. (<H> toggles the songs-played history display in the old
version.)
The MP3 search path can be specified on the command line
(MPR d:\clas\mp3\;e:\rock\mp3\;etc), or defined with an environment string
(MP3PATH=...). In either case, the syntax is exactly like the normal DOS
SET PATH=... If the path is specified on the command line, the file
history file is not loaded or updated.
Command line options (not case sensitive):
-1 Play one song (that is the number: one).
-B Buffer entire song in memory.
-D Delay during startup.
-H Print these options (Not in original version).
-L Play songs in linear order.
-P Abort with LPT1 ACK.
-R Use RAMdisk (Deprecated -- original version only).
-V Set mixer master volume.
Play one song
will play the song or songs (*wildcard) specified on the
command line and exit. This option also selects linear playback
(see below).
Buffer entire song in memory
attempts to allocate a RAM buffer big
enough to contain the largest song in the library and loads each song into
the buffer before play begins. If there is insufficient memory for the
buffer, the option is disabled and songs are spooled from disk. This is
the fastest mode for playback and minimizes disk activity and
communication with the OS.
Delay during startup
will beep and delay 5 seconds before playing the
first song. This is handy for stand-alone or embedded machines that
start up from AUTOEXEC.BAT. The 5-second delay gives the user a chance
to stop playback for maintenance or whatever without wasting a song.
The beep is also a good indicator that the thing booted and is running when
there is no monitor. If this option is selected, there will also be a
beep when the program is terminated.
Help
prints a single line containing the command-line options and exits.
Play songs in linear order
plays songs in the order in which they are
found on the disk. Random playback is disabled and the songs-played
history file is neither loaded nor updated.
Abort with LPT1 ACK
allows for orderly shutdown in a system without a keyboard. A simple push
button switch from ACK (pin 10) to ground (pins 18-25) on printer port 1
can be used to emulate the function of the ESC key.
Use RAMdisk
assumes that the current drive is a RAMdisk. Each file will be
copied from the hard drive to the current drive and played from the current
drive. This is useful for old computers with really slow drives or mobile
systems that need to minimize hard drive access. Be forewarned that there
is no checking whether the file will actually fit on the RAMdisk.
Set mixer master volume
sets the volume to the value specified by a single hex character (0-F)
following the command. To set the volume to 12, the command line option
would be -VC.
The play history is stored in the root directory of drive C: in a file
called PLAYMASK.MSK. This file is updated when the program exits. If the
file is deleted, playback begins from scratch.
Other stuff:
DOS front-end for LAME (3.9K)
. The .ZIP file contains the executable, assembly source and instructions.
This program will use LAME.EXE to encode all .WAV files in the directory
from which it is run. LAME parameters default to "-b256 -ms -h -t",
but can be overridden on the command line. Assembly source is included for
those who wish to change the default parameters.
DOS tagger program (1.6K)
. This program will insert ID3 tags based on the Windoze long
filenames in all files in the directory from which it is run. The
filenames must have the format
Artist - Album - Title.mp3.
Corrections to tags can be made by renaming the bad files and
re-running the program. It will ignore any files with tags that match
their filenames, add tags to files without them and update tags that
do not match their filenames.
DOS MP3 file checker (1.8K)
. This program checks the format and structure of an MP3 file and reports
what it finds. No changes are made to the file. The best use of this
utility is realized when it is added to the right-click menu for .MP3 files
under EXPLORER.EXE.
Sample output:
Incorrect ID3 header length
1st frame negative main_data begin
Extra bytes between frames at 00024568
Last-frame tag corrupt
Time = 5:05
Sample frequency = 44,100
Bitrate: Min = 56 Max = 320 Avg = 269
11,687 frames
56 1
112 3
128 12
160 423
192 1,993
224 1,726
256 1,607
320 5,922
DOS MP3 file fixer (1.7K)
. This program finds and fixes many strange things some encoders write
into MP3 files, many of which preclude proper decoding by MPR.EXE.
Warning: This program writes changes to the
MP3 file. If this is not what you want, don't run the program.
The best use of this utility is realized when it is added to the
right-click menu for .MP3 files under EXPLORER.EXE.
Comments and suggestions welcome:
There are no plans to release the source code for this product. If
significant interest develops, a C-callable frame decoder module may
be offered for a nominal fee.
|