
PM123.EXE
=========

Beta 1

    - First public release

Beta 2

    - Added keyboard shortcuts:
        Left/Right = Rewind/Fast Forward
        Enter = Play/Stop
        5 (on numeric keypad) = Pause
        Up/Down = Next/Previous song
        Alt F4 = Quit
        +/- = Increase/Decrease volume

       (every option underlined in menu can be access directly by
        pressing Alt and the underlined key, even outside the menu)

    - Added skin support
    - Fixed shuffle
    - Fixed RIFF headered and/or broken MP3 support
    - Added seek slider (grab seek slider to move within MP3)
    - Fixed control button errors
    - Enhanced/fixed tag editor
    - WarpAMP playlist loading

    Plus various bug fixes...

1.0

    - Improved skin handling (making it possible to make PM123 look
      almost 1:1 with WinAmp)
    - Improved palette handling
    - Fixed WarpAMP playlist loading
    - Fixed drag'n'drop playlist reorganizing
    - Changed GBM.DLL to GBM123.DLL because people might have other
      non-compatible GBM.DLLs in their LIBPATH.
    - Added 82 more genres, including WinAmp genre extensions
    - PM123 can now take `advantage' of full window dragging in Warp 4
    - Drag'n'dropping a directory presents a menu where you can
      select recursive or non-recursive adding
    - Properties dialogs refined
    - Added 'auto play on playlist use'
    - Added selectable scrolling setting
    - Added 'Edit ID3 tag' to main menu
    - Added PM123 Skin Utility with WinAmp skin conversion and
      skin bundling
    - Playlist file adding moved to threads
    - Multiple directory drop
    - Main window accepts multiple files and/or directories
    - PM123 remote control via \PIPE\PM123 (even over the network)
    - Added frequency and mode to playlist info field, and to
      main display (click on the songname)
    - Added visual plugins
    - Added graphical equalizer with band mute and preamplifier
    - Improved HTTP handling
    - Added M3U support in playlist
    - Spectrum analyzer, CPU usage and oscilloscope plugin
    - Real Equalizer

    Plus those regular bug fixes...

mpg123.dll in pm123 1.0
=======================

- decoderFileInfo can now be called more than once at the same time
- kludged the jump to command to trash the first buffer (until I figure out
  more on the digital audio processing and where it keeps the buffer)
- enlarged filename length from ~512 to ~1024, allows for bigger URL I guess.
- now compiled with VAC++, works better with DLLs than EMX
- RxDecoderError now works
- decoderError now reports non-critical errors
- decoderError now queues error messages, empty it, or you'll memory leak
- added filter plugins
- added possibility to change the decoder's band gain (there are only 32
  linear bands, at the moment, this means at a sample rate of 44100, ~689Hz
  per band = 44100/2/32) they suck BTW
- added decoderPlayingSamples, to catch a few samples realtime from the
  OS/2 DART audio system to display real time stuff like an oscilloscope or
  a spectrum analyzer.  Note, it will get a buffer length in bytes, you have
  to calculate how many of them you need according to the bitspersample and
  channels.
- decoderFileInfo now reports 0 on success and some error code otherwize.
- decoderPlaying extention as decoderStatus
- new kludge that plays 48kHz PCM at 44.1kHz.  This is really ugly, you
  don't hear a big difference, but you're better off converting it.  If you
  are wondering why I'm not converting it realtime 1. more CPU time needed
  *OR* 2. sounds real bad (aliasing and company)
- HTTP module now in HTTP.DLL

MPG123.DLL in pm123 beta 2
==========================

- decoderTime(PLAYEDSECS) now shows the position being played, not decoded.
- when buffers are trashed for rew and ffwd, the mpeg stream file position
  is brought to the file position that the decoder was at when it filled
  the currently playing audio buffer.
- the decoderTime(TOTALSECS) now reports something until all audio buffers
  are played.
- max buffers locked to 200 and min to 5. these are 16KB buffers, and they
  seem like absolute limits anyway.
- fix crash when there was an MCI error when starting playing and pm123
  already played something before (trying to free memory it didn't allocate)
- the first buffer is trashed to prevent the playing of the last buffer of
  the previous stream (I can't figure out what's going on, help me!!!)
  Whatever snaps, crackles and pops left are due to your MPEG streams
  or your sound card.
- new decoderFileInfo().  allows program that need to check validity or
  specs of an mpeg stream with mpg123
- stop now unpauses the stream before closing.
- opening http streams should work better now.
- much better rewind and fast forward (makes jumptosecs work a lot better too)
- reporting errors should be more reliable
- http routines now report usable error messages
- http routines now check for "Content-Length" to determine total time
- seeking and timer routines now use the file position instead of keeping
  track of the frame numbers.  makes the decoder faster and more consistent
  with the total time.
- added REXX support ... hum

MPG123.DLL in pm123 beta 1
==========================

- initial release

--

mpg123.dll  POSSIBLE upcoming in the future
==========================

- NS/2 plugin
- Continous playback (by predecoding? This is going to be pretty complicated.)
- MMOS/2 MP3 I/O Procedure

