PM123 Main Page
PM123's History
===============
PM123 1.21
----------
- The playlist will now open back automatically if PM123 is closed with
the playlist window left opened.
- Added the "window docking" feature to the playlist window as well as to
"Slider 123" (see the extras in the source code package). Can be
adapted to windows from plug-ins or other processes too.
PM123 1.2
---------
- PM123 is now free software! It is released under a BSD-style license.
The OS/2 market is no longer viable, but thanks to all who paid to make
PM123 what it is today, and now have fun playing with the code.
If however you would like us to do work on PM123 under a contract,
please do contact us.
- Fixed the "New Age" problem where the "New Age" music style could not be
used in ID3 tags.
- Added CDDB support to CDDAPLAY.DLL.
- A MikMod DLL was created by Kevin Langman http://go.to/langman .
- PM123 no longer crashes when receiving invalid commands through the pipe
such as "echo *status > \pipe\pm123".
- Included "querysong.c", a sample on how to read information from
pm123's pipe in C. Also applies to any other languages.
- Updated the ID3 tag genre list to 148 genres.
- Include a "Plug-in" entry in the main pop-up menu, allowing easy
access to the plug-ins' configuration dialog. A check mark indicates
that the plug-in is enabled or active.
- The entry field in "Load URL" dialog is now selected by default.
- The timer display is now updated every 100 ms instead of 500 ms, so
the seconds should not "skip" anymore.
- Fixed a possible crash when an error occurs in wavout.dll.
- Fixed crashing skinutil.exe when displaying help screen.
mpg123.dll 1.20 in pm123 1.2:
- Added MMX support to use with slow energy conservative CPUs.
- Will now load some corrupted VBR files properly.
PM123 1.1 beta 4
----------------
- Fixed crash when using "add" pipe command.
- Load Plug-in file dialog showed "pm123.exe*.dll" instead of "*.dll"
- Path with no trailing backslash would not work with wavout.dll
- I hope I fixed all crash in os2audio.dll ...
- Fixed a few minor bugs in playlist playback and reduced delays
- Added "don't make PM123 wait on buffer" in os2audio settings.
Makes for less delays between songs in playlist, but synchronization
is all screwed up... use at your own risk. Might be improved in the
future if I come up with any magic ideas.
- Timing problem with "*status" return values from \\PIPE\PM123 fixed!
- "*status" would only work when a song is playing.
- Fix crash and other problems when moving entries in playlist.
- Added support for WM_CHANGEBR to update the bitrate display in real-time
to reflect the current bitrate of VBR MP3s.
- Manual updated thanks to Filip Molcan
- Filenames longer than 100 characters can now be loaded properly.
- Fixed a bug in playlist recursive add where PM123 would not read
some directories at all (giving errors like "can't read x:\dir1\dir1")
- Increased stack size to prevent crash in DOSCALL1.DLL during recursive add.
mpg123.dll 1.14 in pm123 1.1 beta 4:
- Fixed some non-MP3 files being recognized as MP3.
- Fixed more floating point crashes (any left?) due to corrupted MP3.
- Fixed a buffer overload crash that would sometimes happen.
- Added support for WM_CHANGEBR
- Enhanced MP3 detection mechanism. Once more less non-MP3 are identified
as MP3 files..
PM123 1.1 beta 3
----------------
- fixed unjustified "could not load some bitmap" errors from loading skins.
- wavplay.dll would play part of the last buffer twice.
- fixed another possible crash in os2audio.dll, should be crashless now.
- Everything now compiled with VAC++ 3.08 (instead of GCC/EMX)!!!
Gone are the weird PMSHELL hanging stack overflow problems related to
thread issues with EMX.
- Skins now load their analyzer .dat file from their respective directory.
- Equalized sound was not updated when loading .EQ file.
- All INI files are now saved in pm123.exe directory, including analyzer.ini
and scroller.ini. **DELETE OLD ANALYZER.INI**
- ID3 Tag Editor no longer crashes in PMCTLS.DLL, it updates the main
window info display, and the year is now loaded properly.
- Mutes and Preamp were not restored properly in the EQ.
- RealEQ updated to 1.20 -> now you can save your settings in .REQ files.
- Fixed possible crash when unloading skins.
- Fixed possible crash when loading skins missing their .pak bundle.
- Horizontal volume bar did not draw properly when using +/- keys to set
volume.
- A crash could occur at the end of a playback with specana_dobands()
(analyzer.dll uses it)
- Playlist Manager now indicates "no statistics" when there is none.
- Playlist Manager now opens to the Playlist directory when adding playlists.
- Filenames with a ';' can now be loaded in playlists. An encoding scheme
a la URL using % is now automatically so all filenames containing
the wildest characters you can imagine coming from your server will load
properly.
mpg123.dll 1.11 in pm123 1.1 beta 3:
- HTTP content length was not always found from some HTTP servers. fixed in
http123.dll 1.04
PM123 1.1 beta 2
----------------
- Song information from the decoder is now loaded in playlist.
- Server name and genre are now loaded in playlist.
- Streaming title is up and running!
- Fixed possible crash on corrupted playlists.
- Reduced flickering when resizing and moving playlist, playlist manager
and other windows.
- Implemented bookmark system! Bookmarks are loaded in the main menu
directly, making them easy to use.
- Root directories can now be loaded from the file dialog kludge.
- Loaded directories using the file dialog kludge are now saved.
- Defaults and Undo do not double plug-ins entries anymore,
although they still do not do anything useful for plug-ins.
- Added "Save stream" in main menu to save data on disk before it is
decoded.
- Comments from songs are now loaded in the main window.
- Fixed inconsistency problem when stopping song in playlist and
pressing play again.
- Fixed tracking problems for plug-ins configure dialog.
- Added new wavout.dll plug-in.
- Different output plug-ins can now be activated.
- Increased stack size.
- Trying to open various dialogs now get focus when they are already opened.
- Fixed loading Songname in playlist.
- Fixed loading/playing songs using the pipe.
- Fixed annoying crash in OS2AUDIO.DLL.
- Fixed analyzer first and last band (although they don't really show)
- Changed pm123.ini format, now uses safe OS/2 INI APIs.
***DELETE YOUR OLD INI FILE!!***
- Last .EQ file loaded are now reloaded on startup.
- Changed .EQ file format. Now saves the gain in floating point value,
instead of system dependent pixel slider values.
- It is now possible to open more than one instance of the PM123
process. Pipes created by the new processes will be \pipe\pm123_2
and \pipe\pm123pl_2, and successive instances will increment that
number in their pipe names.
- Visual plug-ins with cx or cy smaller or equal to 0 will no longer
be deinit and reinit when changing main window size (tiny, small, normal).
- Load Track dialog now keeps in memory last drive used and automatically
refreshes.
- CD Tracks can now be loaded in the playlist.
- analyzer.dll does not crash anymore if DIVE cannot be allocated.
- Playlist entry emphasis is no longer changed on each entry added
to the playlist.
- "*volume" pipe command now also returns the current volume.
- fixed +/- keyboard volume hotkeys
- relative paths to plug-ins in skins are now relative to pm123.exe
mpg123.dll 1.10 in pm123 1.1 beta 2:
- Implemented title streaming code, and code for "Save stream".
- SHOUTcast and icecast server information now passed on to pm123 with
decoder_fileinfo().
- Fixed problem with calculation of average bitrate, and of seeking, for
VBR MP3s.
- Increased first MPEG header from 10K to 128K. I hope this is enough
for all MP3s with bitmaps (yes images geez) before the MP3 itself.
- Should not crash on corrupted Xing VBR headers anymore.
- Read ahead buffer thread now runs at critical priority, so no more skip
when read ahead buffer is activated.
PM123 1.1 beta 1
----------------
- Fixed file with spaces in pipe commands.
- execmode -sp executed on pm123.exe so it now runs in Warp Server 4 SMP
- Patched notebook loading problem with Default display settings.
- Adjusted equalizer dialog frequencies to correspond with new mpg123 values.
- Fixed auto-play on load when another stream is playing.
- Implemented new decoder, filter and output plugins. For this beta,
very little plug-ins are fully functional.
- Playback of playlist does not close the output plug-in between playback
of the entries anymore.
- "Use this playlist" and next/previous now loads the ID3 Tag.
- "Default display" now works everywhere.
- Playlist now continues playing after selecting a song from the playlist.
- Drag and drop from the playlist to main window now works properly.
- Random button does random playback again, not sorting. Random is
also much faster than it was in beta 2. Use "Random" in the Sort submenu
if you want to do playlist shuffling.
- Repeat and Random playback state are now reloaded after launch.
- Fixed random crash when adding with recurse, I hope...
- Repeat now works in all conditions.
- Adding to a playlist before the current loaded song now updates its index.
- Deleting from a playlist before the current loaded song now also updates
its index.
- Directories can now be added from the "Add to list" file dialog.
This is basically a hack in the file dialog. Unless you manually type
the path, the directory will have to be selected in the directory listbox
AND it must be the current directory listed in the file listbox AND
the filename entry field must be empty, or "*" or the default "*.*".
- HUGE playlist (~900 songs and more) are now able to load.
- pm123 doesn't crash when loading playlist from the command line
for an already opened instance. This includes .m3u since they are
now loaded as playlists.
- Fixed problem when loading playlist and a song from the unloaded
playlist was already playing.
- Deleting entries from a playlist doesn't auto-use use it anymore.
- Sorting by size and time is now much faster.
- Loading entries from the playlist now actually loads the right entry,
not just the one with the same exact filename. but this basically
makes it faster...
- Added support for WinAmp style .pls playlist files including SHOUTcast.
Titles for SHOUTcast servers are loaded from the .pls so you see all
the neat stuff like the load of the servers when you load the playlist.
- Fixed problem loading HTTP URLs with no path like on SHOUTcast.
- Included procedure in netscape.html to properly configure pm123 as a
Netscape Navigator helper application.
- Fixed memory leak when removing entries from the playlist.
- Streaming buffer now works properly and continues playing buffered
stream even if read operations are stalled.
- Broken HTTP connections are now properly canceled and closed on stop.
- Added workaround for timing problem in DART for setting volume right
after the device is opened.
- HTTP URL with no filename like SHOUTcast now show the complete host
instead of interpreting it as a filename. Title streaming is on its
way...
mpg123.dll 1.09 in pm123 1.1 beta 1:
- Fixed streaming audio by adding two in a row header checking.
- Implements new pm123 decoder plug-in interface.
mpg123.dll 1.08:
- Fixed floating point exception crashes. Let me know if you can
still reproduce any SYS3183.
- Fixed problem with MP3 EQ range calculation with low frequency
overflowing table and screwing up memory when MPEG 2.5 Layer III files
were played.
- Added support for virtual hostnames in HTTP123.DLL
- In HTTP123.DLL, fixed seeking (and also loading) problems and glitches,
especially with slow media (like CD-ROMs) and big read buffers. But be
wise, Read Ahead buffering produces an unnecessary overhead on fast
media.
- Added mp3->wav decoder. Command line utility only for now.
- For developers, added a play status semaphore. It can be used to sleep
instead of DosSleep() with the advantage of knowing exactly when the
player stops.
mpg123.dll 1.07:
- Fixed MMPM crash when DART underrun occurs.
- Fixed Equalizer mute crash.
- FileInfo (in playlist) was always reporting 0 length songs.
mpg123.dll 1.06:
- Fixed possible infinite loop in read ahead header.
- Added support for Xing Variable Bitrate MP3s.
- Added auto-repause kludge so that when MMOS/2 gives access back to the
sound device, the bug in MMOS/2 doesn't unpause mpg123.
- Added new 10 bands ISO normal frequency equalizer for MP3s *only*. The
interface (which also needs to be fixed) will not be updated until
Taneli has more time on his hands, but here are the bands. Also note
that the decibel calculation was wrong before (way too loud):
31.5 Hz
63.0 Hz
125 Hz
250 Hz
500 Hz
1.00 kHz
2.00 kHz
4.00 kHz
8.00 kHz
16.0 KHz
mpg123.dll 1.05:
- 12kHz MPEG 2.5 Layer 3 files now play.
- Added fix for new Xing encoded MP3s from mpg123 0.59q
- Added read ahead header check. This should make ALL valid MP3s even
with borked headers work, and should not identify anything else than
MPEG audio files as MPEG audio files such as bitmaps lying around in
your MP3 directories.
- Added fix for Aurora from dink.
mpg123.dll 1.04:
- oops, broke some MP3s for nothing, it's back all right now
- play 48 at 44 works right now
mpg123.dll 1.03:
- found some Audio MPEG Header documentation. Should now work with any
MP3s other players or decoders play, if not, please contact me. I've
also fixed 8000Hz MP3 support, cool.
- patched possible divide by zero when loading corrupted files.
mpg123.dll 1.02:
- implemented workaround for bad GUS driver DART buffer timing (it jumps by
250 ms step once in a while instead of incrementing for each buffer).
Makes decoderPlayingSamples() work correctly on GUS.
- finally found the proper buffers to flush. no more first buffer trash
kludge and now any snap crackle and pop are REALLY only coming from your
sound card alone (check the visual plugins if you don't believe me)
- faster seek by boosting priority (oops, forgot this initially :)
- audio engine now fills empty buffers with 128 value instead of 0 for 8
bit playback (removes the clicks, but it still sounds like shit :).
PM123 1.01
----------
- Fixed bug in WinAmp skin loading that caused PM123 to crash
- Fixed a WinAmp skin seek slider glitch - please reconvert
your seek slider problematic skins
- You don't have to add ".lst" when saving a playlist anymore
- Spectrum analyzer plugin revised:
- Added falloff
- Made analyzer area droppable
- Frequency chop allows you to drop unused frequencies
- More efficient spectral leakage reduce method
- Added a warning if some bitmaps of a skin were not found
- Added read ahead buffering in streaming audio
- HTTP.DLL renamed to HTTP123.DLL
- Fixed Warp 3 glitches in fonts
- Fixed a crash in playlist sort
- Added a new settings (and a new settings page):
- Play 48 kHz as 44 kHz
- Streaming audio settings
- Default display mode (filename, ID3 tag, information)
- Fixed font bug in older skins
- Fixed a bug in the Unregistered window which caused it to hover
above all windows
- Fixed bug when pressing Alt-F4 in the main window
- Fixed Recall-menu behaviour
- Added a new "smooth scroller" with DBCS and national character support,
which can be activated by starting PM123 with the "-smooth" switch
- Improved 256-color support
- Shift-click Play/Stop button while playing to fade out and stop playing
mpg123.dll in pm123 1.01:
- fixed timing bug between MP123_PLAY and MP123_STOP
- added buffer mode to HTTP123.DLL and in MPG123.DLL. rewing and fast
forward will give a quirk in buffer mode sometimes.
PM123 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
PM123 pre 1.0 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...
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
PM123 pre 1.0 Beta 1
--------------------
- First public release
MPG123.DLL in pm123 beta 1:
- initial release
realeq.dll
==========
1.0 - Initial release
1.01 - Some bug fixes (??)
1.1 - Implemented MMX !!! Wow, this really kicks arse...
- Now using the Hamming window instead of von Hann.
- Now using the ISO R10 standard serie.
- Changed when calculations are made, snappier GUI, and doesn't make
noise when adjusting the EQ anymore.
1.11 - MMX check box was not restored
1.20 - Equalizer Settings can now be saved in seperate .REQ files.
- Removed unused variables from memory,
might be faster on small L1 cache CPUs (ie.: not AMD CPUs)
- Corrected imprecision reading slider values.
Last Modified: September 24, 2003 19:39:14 EDT.