MPXPLAY Audio Player v1.46 by PDSoft

If You find a bug, first of all read the 'known bugs' section below, 
if the bug isn't there, please write it to me with these informations:
-your hardware (CPU,RAM,Soundcard)
-your operating system (DOS,Win95/98)
-your command line options (i.e. mpxplay.exe -pva -cf -@ playlist.m3u)
-description (what did you do, and what did the program do, when you found it)
 (i.e. keyboard operations)

I never can test the program totally. Sometimes a modification caues a new bug.
If a function doesn't work properly (but it worked in the previous version(s)),
please write it to me...

Known bugs and limits:
- OGG : sometimes freeze, some buffer clear bugs (at seeking)
- MPC : - only Streamversion 7 is implemented/supported
        - seeking problems (sometimes the seeking fails, and the playing stops or skips to the next song)
- AC3 : I still work on it ... (I'm not satisfied with the sound quality)
- CDW : 
 - doesn't work on every CD-ROMs (only on those, witch can ripp (grab) audio tracks)
 - the door open/close also doesn't work on every drives
 - there's no sync buffer -> possible read bugs (clicks & pops)
 - doesn't work under WIN95/98
 - problems with mixed mode CDs (data+audio)
- mixer:
 - the program may crash, if there is too much difference between 
   the input (file) and output (soundcard) freq (infreq*3<outfreq)
- soundcard routines:
 - soundcard IRQ works below 8 only (3-7) (set the IRQ to 5, then it will work)
 - MIDAS: - uses more CPU (requires Pentium?)
          - -bp,-bl,-ddma options dont't work
 - ESS,WSS,MIDAS plays only in active window under WIN95/98 (SB16,GUS in background too)
- crossfade: 
 - cannot do between files with different freqency (i.e.: 22khz->44khz) or channel number (stereo->mono)
 - sometimes doesn't work (i.e. at fullbuffer (-bl) and at large prebuffer (-bbn 500))
 - increased volume + limiter = non-linear fade-out and fade-in
- drive scan (-ds or *.*\*.*) on substed drives under Win9x
- FILE: Mpxplay can't play very short files in some cases (shorter than 0.5 sec)
- -cl and -cm work at mp3 files only
- program doesn't support MPEG 2.0 and 2.5 (16,22,24,8,11,12khz) in Layer II (MP2)
- -idl + 'J'

- the SBpro compatible cards: 
   - sound with 8 bits & 22khz only (bad quality)
   - use more CPU (freq conversion 44->22khz)
- maximum number of playlist entries is: 
  in normal mode: 1024 (left side,directory browser), 9999 (right side,playlist)
  in doombox mode: 9999 (left side/playlist), 1024 (right side/doombox queue)
  (max. playlist size: 40*9999 = 400kbyte)


Plans (don't request them):
- configurable LCD display & support for 4 lines display
- support of more soundcards (maybe other Mpxplay users also could help in this)
- Win9x and Linux versions (far plans)

Additional informations:

-LCD-DISPLAY:
 -you can configure the LCD in the MPXPLAY.INI (LCDlptport,LCDtype,LCDlines,LCDrows)
 -enable the LCD with the LCDlines variable (1 or 2 supported only)
 -only LCDtype 1 and 4 are tested (sould work)
 -you can find more hardware and software infos on my homepage
 -software routines are not finished yet (under construction)

-SOUND CARD SETTINGS:
 The program usually can autodetect the card if you don't set the environment 
 variable, and it sets the master and voice mixer channels to 90% (if it's bellow 40%), 
 but it's better (faster starting), if You do this before start the program.
 Use an environment variable to configure the PORT,IRQ and DMA values.
 (of course you must change the port, irq & dma numbers to your configuration)

 1. SB16: SET BLASTER=A220 I5 D1 H5 (port,irq,dma,highdma)

 2. ESS : SET BLASTER=A220 I5 D1 H5

 3. WSS : SET ULTRA16=530,1,5,0,0   (port,dma,irq,cardtype,dma2)

 4. GUS : SET ULTRASND=240,5,5,5,5  (port,dma1,dma2,irq1,irq2)

 5.SBpro: SET BLASTER=A220 I5 D1 T4 (port,irq,dma,cardtype)

 (the ESS and WSS cards don't use IRQ, correct setting of IRQ is not required)

 If the playing starts, but it runs very fast (4x-10x faster) or
 it plays a short block of music, after that it stops,
 then your DMA (or the IRQ) value is incorrect.
 Try the -sct option, maybe it shows the correct value(s).

 Mpxplay detects the 0,1,3,5,6,7 DMA channels only, if you use a different one,
 you must configure it manually (with the environment variable).

-PLAYLIST usage:
 -you can create a playlist:
  - under DOS with the  DIR /B/ON *.MP3 > PLAYLIST.M3U  command
  - with Mpxplay: MPXPLAY.EXE d:\*.*\*.* -@s playlist.m3u
              or: MPXPLAY.EXE -ds c -@s playlist.m3u
              or: MPXPLAY.EXE -ds c -@s playlist.m3u *.mp3

 -EXTENDED PLAYLIST (faster file info loading -> program starts playing faster):

  -create: MPXPLAY.EXE -@sx EXTLIST.MXU PLAYLIST.M3U
       or: MPXPLAY.EXE -@sx EXTLIST.MXU d:\*.*\*.*

  -use (load): MPXPLAY.EXE EXTLIST.MXU
           or: MPXPLAY.EXE -ig EXTLIST.MXU PLAYLIST.M3U

  - You can use sub-list(s) in extended playlist on this way:
    (you have to write these lines manually into the mxu list)
    ('' '' ''chars are ascii 176,177,178)
   -M3U sub-list:
     D:\AUDIOMP3\PLAYLIST.M3U[sub-list]00000000
   -MXU sub-list:
     D:\AUDIOMP3\EXTLIST.MXU[sub-list]00000000

 -Edit (modify) ID3 TAGS in MP3 files:
  make a text file with this form (max.12 chars filename+2space+artist:title):

filenam1.MP3  artist1:title1
filenam2.MP3  artist2:title2
filenam3.MP3  artist3:title3

  name it to !FILES and run my program with these options:

  MPXPLAY.EXE -iw !FILES -@ playlist.m3u

  (the listfile is same like playlist file, but with artist & title)
  and the program will append this ID3 info(s) (artist & title) 
  to the end of mp3 file(s).

-FRAMES: Mpxplay handles the files in frames. 1 frame usually 4608 pcm bytes.
         (1 sec = ca. 38 frames)

-CD-WAV : the cd-wav support is not a simple audio CD player, this is
 a real time Digital Audio Copy (it reads the cda sectors and writes them to
 the sound card), because of this you can use crossfade, speed control,
 auto volume correction and surround on audio CDs! (recommended to use -bp)

-USING MPXPLAY 
 - WITHOUT HARDDISK: I haven't tested it, try -db option
 - WITHOUT VGA CARD: I also haven't tested it, try -f0 option

-LESS CPU USAGE: the program uses less cpu time without spectrum analiser, 
 volume correction, surround, soundlimit and volume meter
 use this for slow CPUs: mpxplay.exe -sl 0 -ddma -f0 -v -bl -bni -@ playlist.m3u

-SOUNDLIMIT: cuts (don't write to the output) the signal below 
 "soundlimit" it doesn't play (only decode) while, and it finishes the play 
 (exit or step to next song in playlist) in last 400 frame when volume is 
 bellow or equal to soundlimit.
 Set it to 50 for disco, 10 for classical music, 1 to cut at 'digital noise'
 and 0 to disable soundlimit checking.

-VERBOSE: in verbose mode (-v) you get more informations (header info:layer,bitrate,etc.,
 ,ID3tag info:artist,title,year,...)(use it for -f0,-ff or -fl)

-TEST MODE: in test mode (-t) the program write the output nowhere 
 and you can test the speed of your computer and my program.
 You get the the results in the end of running.
 Index value must be above 100% to play properly audio (MP3) files.

-DISPLAYMODE configuration in mpxplay.ini:
 (default: 126=64+32+16+8+4+2; -fl: 2; -fl -v: 6=2+4; -fe -fs : 14=8+4+2)
(bit)(add the number to Displaymode variable)
       0 no display
 0.   +1 only frame counter is displayed (use it with -f0 (0) & -v (+4) only)
 1.   +2 timepos is displayed
 2.   +4 id3info & header are displayed (verbose mode)
 3.   +8 use fullscreen
 4.  +16 fullscreen editor disabled
 5.  +32 spectrum analiser enabled
 6.  +64 use (change display to) 50 lines mode (else use the initial resolution)

-DESKTOPMODE configuration (default: 1+2+8+16+32+64+128+256+512=1019):
 0.     +1  show song position line (....)
 1.     +2  show playlist position line (....)
 2.     +4  reserved (not used)
 3.     +8  show playlist editor elevator ()
 4.    +16  vertical editor sides (else horizontal)
 5.    +32  show filename with fullpath at the top of the editor
 6.    +64  show fulltime (in bottom right corner)
 7.   +128  show songtimes in editor
 8.   +256  show songnumbers in editor
 9.   +512  show drive letters in editor

10.  +1024  always show filenames in editor (with artist:title)
11.  +2048  follow browser (via mouse) in editor
12.  +4096  shift playlist entry up or down by mouse (drag & move) (otherwise scroll editorside)



-I have an Intel PII processor, and I can optimize for that cpu only

Speed test results:
(test: mpxplay.exe -t -ff -sl 0 file.mp3 ; play: mpxplay.exe -fl -bl file.mp3)

 On Intel Celeron 300A (4.5*66.6) with PC100 SDRAM and ASUS BX mainboard

  MPXPLAY 1.46:     MP3: index:2635%  CPU:4%    (128kbit,MsStereo)
                    MP2: index:3358%  CPU:3%    (256kbit,Stereo)
                    OGG: index:1043%  CPU:8-10% (128kbit,Stereo)(depends on the used encoder version too)

    DOSAMP 0.8:     MP3:  CPU:9.1%
                    MP2:  CPU:8.8%

  XTC-PLAY 0.97c:   MP3:  CPU:10-11%
		    MP2:  CPU: 9-10%

Speed comparsion of different computers with different versions of Mpxplay
(index values of MP3 speed tests)

    CPU: 486DX2 AMDDX4 AMD5x86 Pentium PPRO  PII
    Mhz:   66    100     133     100   200   300

ver 1.46                                     2635
ver 1.45                                     2589
ver 1.44                                     2635
ver 1.43                               1750  2620
ver 1.42               175.8   423.3   1639  2502
ver 1.41               174.4   411.8   1619  2489
ver 1.40  93.3  134.1  173.7   418.3   1636  2485
ver 1.39  89.9  125.0  163.4   383.4   1504  2298
ver 1.38  89.1  123.7    -     376.7   1499  2284
ver 1.37  84.3  117.9    -       -     1410  2166
ver 1.36  84.3  117.3  162.0   339.8   1401  2156
ver 1.35  85.6  119.9  156.9   342.2   1369  2074
ver 1.34  84.0    -    155.0   326.3   1283  2033
ver 1.33  84.5  118.4  155.2   327.3   1275  2024
ver 1.32  84.7  118.8  154.8   329.3   1279  2024
ver 1.31        119.0  152.6   329.5   1365  2104
ver 1.30        118.3  152.7   326.2   1275  2009
ver 1.29        117.1  151.7   302.6   1106  1729
ver 1.28        115.7    -       -     1170  1786
ver 1.27          -      -       -      -    asm bug
ver 1.26        111.1  142.5   277.5   1000  1530
ver 1.25        110.7  142.7   280.4   1049  1617
ver 1.24        108.8  141.0   277.5   1037  1588
ver 1.21               138.8   269.8   1010  1542
ver 1.20               137.0   263.8    980  1477
ver 1.10               137.7   265.6    968  1458
ver 1.00               137.7   263.9    973  1462
ver 0.07               139.0   275.5   1002  1531
ver 0.06               139.2   276.0   1003  1530
ver 0.05               134.3   247.9    823  1154
ver 0.04               134.3   246.7    823  1158
ver 0.03               134.3   247.4    828  1173
original:                                     819
