PM123's History of changes
PM123 1.41 (alpha 2)
- Fixed decoder plug-in configuration dialog with respect to adding
custom extended attribute types.
- Fixed setup of last directory in file dialog.
- Fixed performance issue while testing for wildcard matches of
wavplay plug-in.
- Fixed crash while decoding empty .TYPE EAs.
- Work around for Lxlite last modification time problem on samba
shares.
- Option to keep current playlist on load.
- Implemented navigation into playlist item.
- Fixed crash in queue mode and removal of incompletely played
items.
- Fixed handling of alternation lists.
- New icons for alternation lists.
OGG123
- Work around for vorbisfile seekability detection.
PLIST123
- Fixed reading of WarpVision and internet playlists.
- Save playlist options.
- Fixed crash when loading playlists from older PM123 versions.
PM123 1.41 (alpha 1)
- Added playlist plug-in support.
- Switched PM123 engine to 32 bits per sample.
- Added large file support (>2GB).
- Significant speed up when scanning large
playlists as long as you do not use old decoder plug-ins. (more than
8500 files per minute over the network if your disk can keep up with
that)
- Implemented new shuffle algorithm that can deal with
nested
playlists. (Fixes bug #1)
- Added alternation list support for alternative URLs of streaming
servers.
- Retain playing location within a song after player
restart
(for audio books).
- Drag & drop support for PM123 skin files.
- Moved replay gain processing to PM123 core. It now works with all
output plug-ins.
- Access to meta data through pipe interface.
- Switched to dynamic string library with shared storage to save
memory.
- Removed most length restrictions of meta data and reduced memory
footprint of song and playlist objects in PM123.
- Support for memory deduplication to conserve even more memory.
- Reset high decoder thread priority after 20 seconds to prevent
from unresponsive UI on single core CPUs.
- Reasonable resizing of most dialogs.
- Fixed dealing with playlist slices.
- Added several dozens of new test cases.
- Changed plug-in API to use strongly typed user parameters.
(binary compatible)
- Use of B-tree structures for playable object repository for
better scalability with very large playlists.
MPG123
- Rewrote MPG123 plug-in. Now uses libmpg123 1.15.1
- Gap-less playback support for MP3.
- Added support for files > 2GB.
FLAC123
- FLAC decoder is now shipped by default. This decoder supersedes FLACPLAY.DLL.
- Added support for files > 2GB.
PLIST123
- Moved playlist read/write to a separate plug-in.
- Added support for CUE sheets.
FOLDR123
- Moved support for virtual folder playlists to a separate plug-in.
PULSE123
- Added PulseAudio client support, playback and recording.
- Support configuration by asking the PulseAudio server with
introspection API.
OGGPLAY
- Upgrade to libogg 1.3.0 and libvorbis 1.3.3 with some
patches.
- Added support for files > 2GB.
OS2AUDIO
- Moved replay gain processing to PM123 core.
- Joined logarithmic volume control plug-in into os2audio.
WAVPLAY
- Upgrade to libsndfile 1.0.23.
- Added support for files > 2GB.
WAVOUT
- Added time stamp naming scheme.
- Added support for WAV > 2GB.
XIO123
- Removed string length restrictions in http communication and meta
data.
- Added support for files > 2GB.
PM123 1.40 (up to alpha 4)
This is a fork of PM123 1.32.
- Switched code generation to Pentium classic instruction set.
PM123 will no longer run on i486.
- Unified ini file (except for CDDAPLAY).
- Save window positions per object.
- Added a bunch of new commands to the remote interface.
- Implemented alternate slider navigation by pressing the
Alt
key. This allows to seek within whole playlists by using the slider.
- Standard equalizer removed. This one was supported by
mpg123 only, so it makes no sense in the PM123 core.
- Gap-less playback in playlist mode. Subsequent songs are
prefetched before the current song has finally ended. The output and
the filter plug-ins are no longer reinitialized between the songs.
- Navigation across song borders. A seek in playlist mode
will restore the previous song if that changed meanwhile.
- Scanning across song borders. A forward or rewind will no
longer stop at song borders.
- Optionally retain playing position on player exit/restart.
- Added queue mode that automatically discards played items
from the default playlist.
Furthermore you may append dropped or double-clicked items to the
default playlist instead of loading them immediately.
- Playlists, Playlist manager, Bookmarks are now basically
the same thing. This offers plenty much of new features.
- Support for nested playlists. Playlists may be nested
as
deep as you like. This allows structured bookmarks too.
- Properly handling of recursions in nested playlists.
- Support for directories. PM123 no longer needs to expand
the folder content at the moment where a folder is dropped to the
player or a playlist.
- Added song and playlist slicing. A playlist entry may
now
reference only a part of a song or another playlist.
- Added support for bookmarks with current playing position.
- Added support for bookmarks to playlists and playlist items.
- Asynchronous workers for dealing with network timeouts or
large playlists without locking the user interface.
- Configure the name of the remote pipe to control more than
one active player instance.
- Moved the ID3 tag editor to MPG123. Consequently the
related settings are now in the plug-ins configure dialog.
- Decoder plug-ins may extend the Load/Add context menu.
Moved the load track function into the CDDAPLAY plug-in.
- New plug-in interface with much more flexibility to buffer
handling and filter plug-ins.
- The new plug-in manager checks whether the PM123/plug-in
pair is known to work. It can load all old plug-ins except for visual
plug-ins through an virtualization layer.
- Changed the internal data structures to use always 16 bits
per sample to reduce complexity of code and plug-ins.
- Ported resizable file dialog from PM123 1.33.
- Now it is possible to control the wait period in seconds
when a new stream connection is requested. (Port from PM123 1.33).
- Wrap around scroller.
- XIO123: properly handling of TCP/IP receive timeouts.
REALEQ
- Realeq does no longer delay the playback and cut the last
samples. It operates now as virtually zero-phase filter.
- Enabling/disabling the EQ does no longer cause the playback
to jump.
- Changing the FIR order does no longer cause major glitches.
- The maximum FIR order is now 16384, giving very accurate
results. The maximum FFT size is now 32768.
- The MMX and ordinary convolution is finally removed. Both
are outperformed by far by the new FFT convolution. This will cause low
CPU usage even with large FIR orders.
- Save the slider settings by value in REALEQ.INI. Now the
restore do no longer depend on the last loaded file and changes to the
loaded settings are kept after restart.
- Added master gain and mute controls.
- Added group delay equalization.
- Scale FFT plan size and FIR order with the sampling rate.
MPG123
- Implemented ID3 tag editor (was in PM123 core).
- New ID3 tag editor that takes care of ID3V1 and ID3V2 tags.
- Sort Genres by name.
- Fix: continue playing on side info error. (Message:
"Blocktype == 0 and window-switching == 1 not allowed.")
- The decoder now understand Relative Volume Adjustment
(RVA2) field of the ID3v2 tag. Therefore Andreas Schosser normalize
plug-in is not needed anymore. Configure DART Output plug-in and
welcome!
- Removed force 8 bit option.
OGGPLAY
- Update to libvorbis 1.2.2. Fixes problems with some Ogg files.
CDDAPLAY
- Implemented assistant to load CD tracks (was in PM123
core)
- Fixed crash when decoder_trackinfo is called from
separate threads (playlist and main).
OS2REC
- New plug-in to play immediately recorded streams.
ANALYZER
- Added two neat spectroscope display modes which offers a
graphical representation of the time dependent frequency spectrum of
the currently playing music (similar to the spectrum display of audio
editors like Audacity).
- Change the analyzer only by double-click to avoid
accidental switches.
LOGVOLUM
- New plug-in to compensate for the non-logarithmic behavior
of the volume controller of cheap sound devices. (Disabled by default)
PM123 1.32
- Docking of windows became more accurate and powerful.
- Addition of a bookmark is disabled if is not present a
loaded file.
- Added a new option to properties dialog allowing to choose
a font used for display of playing titles. All skinned and non skinned
fonts are scrolled smoothly, therefore the "smooth scroller" plug-in is
removed from PM123 distribution and "-smooth" command line switch is
ignored. The skin now can define a color of the non skinned font. The
SKINUTIL also define these color during the WinAmp skin conversion.
- Integrated last source codes of the Generalized Bitmap Module.
- Previous song in "random mode" does go to the previous song
played, and next song does go back to the same song.
- More there are no messages about missed files at loading
the playlist. Missed files are marked with a special icon and skipped
at use of the playlist.
- The sources now can be compiled via Open Watcom 1.7.
- The sources now can be compiled via GNU C++. Thanks to Dmitry
Froloff.
- Added support of Cyrillic letters (Russian CP866) to the
first default skin font. Thanks to ntim.
- The default skin draws a bit rate digit by digit.
Therefore all possible bit rates now are displayed correctly.
- Enabled the direct switching between fast forward and
rewind. Thanks to Marcel Muller.
- PM123 now accepts URLs dropped from Mozilla or WPS.
- PM123 uses new and powerful i/o engine. The new engine
fully supports HTTP and FTP including a seeking feature.
- The playlist can be sorted by the track number.
- The position of the vertical split bar of playlist and
bookmarks windows is restored after restart.
- Fixed a lot of stuff related to the playlist manager.
- The type of the saved playlist can be chosen in the save
file dialog.
- Added support of the Unicode playlist files (*.M3U8).
- All PM123 parts (playlist, bookmarks, playlist manager and
player) now supports drag and drop operations completely. Also you can
drag and drop records between us.
- Full support of SMP machines.
- PM123 plays smoothly on heavy-loaded systems.
- Now it is possible to edit the meta-information of group
of files selected in the playlist.
- Added a technical information page to the file
information dialog.
- The default skin is slightly improved.
- Used new nice and fully colored icons.
- The skin now can define colors of the playlist and other
PM123 windows. The SKINUTIL also define these colors during the WinAmp
skin conversion.
MPG123
- Improved support of VBR mp3 files having a correct VBR
header. Also improved support of VBR files without such header: timers
and length of a song can be wrong, but there are no jerks of the seek
slider.
- The decoder now correctly skip RIFF headers, ID3v1 and
ID3v2 tags during playing a file.
- The decoder now correctly decode mpeg 2.x layer 3 files
with low sample rate.
- The decoder now correctly decode mono mpeg 1.0 layer 1
files.
- The decoder any more does not eat the end of the played
file.
- Seeking completes correctly when the decoder is close by
the end of a played file.
- Supports ID3v2 tags.
REALEQ
- The mute controls of the left and right channel are
placed correctly.
- Fixed a behavior of sliders at reaching the topmost
position.
Thanks to Marcel Muller for all following:
- Now used FFT convolution algorithm. The FFT convolution
is about 10 times faster than MMX.
- Significantly improved filter kernel design.
- Thread-safe plan size & FIR order changes.
- More aggressive window function.
- Larger FIR size, now up to 12288.
CDDAPLAY
- Now shows correct bit rate and track size at playing a
track.
- Seeking completes correctly when the decoder is close by
the end of a played file.
- The CDDB cache now use the standard file-based form. Anyone
can install the offline version of FreeDB database and use it without
Internet connection.
- The CDDB engine uses PM123 proxy settings.
WAVPLAY
- Now shows correct bit rate at playing a file.
- Seeking completes correctly when the decoder is close by
the end of a played file.
- Now play AIFF (Apple/SGI), AU (Sun/NeXT), CAF (Apple Core
Audio File), IFF (Amiga IFF/SVX8/SV16), MAT4 (GNU Octave 2.0 / Matlab
4.2), MAT5 (GNU Octave 2.1 / Matlab 5.0), PAF (Ensoniq PARIS), PVF
(Portable Voice Format), SD2 (Sound Designer II), SDS (Midi Sample Dump
Standard), SF (Berkeley/IRCAM/CARL), VOC (Creative Labs), W64
(SoundFoundry WAVE 64), XI (FastTracker 2).
- Now can play files from FTP and HTTP servers.
OS2AUDIO
- The output is more accurate and any more does not eat the
head of the played file.
- Can adjust gain of the currently played file according to
the recommended replay gain value (if decoder provide it). See plug-in
configuration dialog and http://www.replaygain.org.
OGGPLAY
- Can play Ogg Vorbis audio files.
- HTTP and FTP Streaming support including SHOUTcast and
icecast.
- Fully supports Ogg Vorbis comment fields.
PM123 1.31
- The Playlist Manager closes a playlist file after its use.
- Improved some remote control commands.
- Selected files now can be removed from the playlist and
deleted from disk.
- Fixed addition of the new playlist to the current
playlist.
- The information about supported types of files delivered
by the decoders is used now by PM123.
- All open/save dialogs have correct list of file types.
- File names with multiple dots (e.g. "test.now.mp3") are
now included in the open/save file dialog list.
- PM123 PDK is included to main program distribution.
- PM123's manual and plug-in developer's guide is converted
to OS/2 native format.
- Help system is implemented.
- PM123 accepts directory as command line parameter.
- Player window now can be moved by left click-dragging.
- Integrated last source codes of the Generalized Bitmap
Module.
- The playlist manager now remembers the font and colors
dropped on it from the font and color palette.
- Now is possible to stop use of the playlist after the
beginning of its use.
- Duplicate items will not be added to the lists of recent
files.
- Playing of a file does not stop if this file is removed
from the playlist and the player is not in a mode of use of this
playlist.
- The playlist window don't closes when using alt-f4 to
close the ID3 tag editor.
- The name of the loaded playlist file is displayed in a
title of the playlist window.
- Added ID3 tag character set conversion.
CDDAPLAY
- The FreeDB online search now can be turned off.
- GUI is not frozen during getting the servers-list.
- If the CD disk is not found in the FreeDB, this negative
hit is cached up to restart of the program.
- Settings of the module do not resetting as a result of
reinstallation of the program.
ANALYZER
- Fixed the minimal value of update frequency and percent
of spectrum display. Zero values caused crash of the program.
- The spectrum analyzer uses new FFT library and works more
accurately.
- Added the new display mode with thick bars and using a
logarithmic scale of frequencies.
MPG123
- Fixed possible crash during playing local files. Thank to
Rafal Szymczak.
- The MP3 decoder does not stop at playing some broken
files.
REALEQ
- New preset are used immediately after loading an equalizer
from a file.
- If the "zero" has been pressed then the current preset
will not be loaded after restart of the program.
PM123 1.30
- The bit rate of the 320 bps is now displayed correctly.
- Fixed some problems with closing and saving of a position
of an equalizer.
- Changed some initial settings.
- The total and time left counters is updated now during of
the delete or addition operations.
- The player is not returned to the first record of the
playlist after "Use this playlist" in case of if any playlist record is
already loaded.
- The fast forward and rewind now can be paused.
- Converting of a WinAmp 2.x skin is made more accurately.
- Now the skin can disable the second font.
- Now small and tiny modes are disabled if the skin does
not support them.
- PM123 now use new and nice default skin.
- Fixed loading of bookmarks of CD tracks.
- The dialog of editing of bookmarks now have new and nice
design.
- Added warnings about overwriting files at their saving.
- PM123 now can save M3U playlists.
- Now it is possible to use relative paths in saved
playlists.
- Added separate associations with a unique icon for each
supported type of files. Use makewps.cmd for creation of these
associations.
- The output is closed now after end of playing.
- The Spectrum Analyzer continues the current show after
loading a new skin.
- Removed the check box of turn off of waiting of the buffer
in os2audio.dll properties as it did not do anything really except
additional bugs.
- The visual plug-in now can be added from the properties
dialog.
- The playlist now allows a user to select one or more
records.
- Fixed a lot of stuff related to the drag'n'drop.
- Fixed a lot of stuff related to the ID3 tag editor.
- A loaded playlist file is played automatically if the
PM123 already played before.
- The rewind and the fast forward buttons now depressed if
the stop button is pressed.
- The size of the player and floating mode now is restored
correctly after restart.
- Fixed screwed font in the PM123 original skin.
- The song name does not converts any more to lowercase
after sorting the playlist on this field.
- Added keyboard accelerators to the player and playlist
menus.
- The playlist now remembers the font and colors dropped on
it from the font and color palette.
- All operations on addition of files to the playlist stops
immediately at clearing the playlist.
- The play mode don't changed anymore without permission to
playlist mode after deleting any file from the playlist.
- Fixed dead lock on addition of directories to the
playlist.
- PM123 now save the current playlist and loaded file
before exit and restore its during startup.
- Fixed crash at recall of playlist files.
- The Playlist Manager now save and restore the status.
- The Files list box on a Save playlist dialog is enabled
now.
- PM123 now understands relative paths of files at loading
playlists.
- The currently played file is marked in the playlist and
is selected also, if it is specified in PM123 properties.
- The sources now can be compiled via VAC++ 3.6.
- Integrated last source codes of the Generalized Bitmap
Module.
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
- 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 bit rate
display in real-time to reflect the current bit rate of VBR MP3s.
- Manual updated thanks to Filip Molcan molcanf@seznam.cz
- 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
- 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
crash less 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
- 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 Song name 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
- 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 bit rate, 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 plug-ins. 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
- Fixed streaming audio by adding two in a row header
checking.
- Implements new pm123 decoder plug-in interface.
- 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 host names 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.
- Fixed MMPM crash when DART underrun occurs.
- Fixed Equalizer mute crash.
- FileInfo (in playlist) was always reporting 0 length
songs.
- 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).
- 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 broken 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.
- oops, broke some MP3s for nothing, it's back all right now
- play 48 at 44 works right now
- 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.
- 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 plug-ins 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 plug-in 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 behavior
- 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
- fixed timing bug between MP123_PLAY and MP123_STOP
- added buffer mode to HTTP123.DLL and in MPG123.DLL.
rewinding 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 song name)
- Added visual plug-ins
- Added graphical equalizer with band mute and preamplifier
- Improved HTTP handling
- Added M3U support in playlist
- Spectrum analyzer, CPU usage and oscilloscope plug-in
- Real Equalizer
MPG123
- 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 plug-ins
- 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 real
time 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 otherwise.
- decoderPlaying extension 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 real time 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
- 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
MPG123
- 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