Help us keep the list up to date and submit new video software here.



Try DVDFab Video Downloader and download streaming video from Netflix and other sites! Download free trial !


Software Home »


Complete Version history / Release notes / Changelog for WACUP


Preview Version: 1.0.20.7170
Released: 22 February 2021

Added the ability to determine if WACUP only shows in the System Media Transport Control (SMTC) integration on appropriate Windows 10 installs when it's not the active program (this is also now the default behaviour due to feedback related to the OS provided action overlapping too much of the WACUP instance when working with it at the time)
Added a 'Windows 10' preferences page so it's easier to disable the options related to the Windows 10 Integration plug-in if appropriate (this also adds an option to disable the SMTC feature in the plug-in though completely disabling the plug-in is the preferred option via the General Purpose plug-in preferences page)
Adding the currently stored skin into the crash report log file so it's easier for me to see if it's using an obviously known 'bad' skin (e.g. a modern skin that keeps throwing divide by zero errors)
Added an option on the 'General' preferences page to control how the main right-click bookmark menus are handled when clicked with respect to playing, enqueuing or enqueue & playing as you may need
Added support for the 'browser next / previous' actions (e.g. those found on a mouse with additional buttons) to be handled by the hotkeys plug-ins which can be useful for moving forward / backwards in the main playlist or controlling the volume or any other available hotkey actions (note: this may not work consistently as a global hotkey depending on what other programs are possibly handling these actions)
Added an option on the new 'Shuffle' preferences page for controlling restoring the shuffle table between sessions for those not happy with this deviation from what Winamp did (it is enabled by default as minimising repeating plays of playlist items until the playlist has completed naturally is better & resolves a long standing complaint that Winamp would repeat files since there was no cross-session info)
Added initial support for natural sorting of string values (which relates to numbers within a string being interpreted as a sequence rather than their character value) such as within playlist titles or local library results to better match user expectations & the supported versions of Windows (if none of that makes sense, it should make values with both text + numbers in them sort in an expected manner)
Added additional hooking of the last.fm AudioScrobbler plug-in to minimise the potential for it sending messages to the main WACUP window for information to cause a deadlock / crash as seems to occur for some
Added a $StrBetween(,,) ATF method so it's a bit simpler to extract parts from a string if there's known start & end characters (e.g. $StrBetween('title [other info]','[',']') would provide 'other info' otherwise it'll return that there's no string)
Added compatibility improvements for the Volume Logic output plug-in so it should now be usable with WACUP (this involved making sure it's own loading of the other output plug-ins allowed them to be initialised correctly, by re-mapping the read / write of its settings out of the program folder & into the settings folder making it portable compatible, overriding the preferences handling so that the output plug-ins offering unicode descriptions now show as expected instead of just the first letter & a filename)
Added initial support for the Streaming Source plug-in to connect 'natively' as a Icecast source (this will need some testing & is only aimed at Icecast v2.4+ servers)
Added initial support for the Streaming Source plug-in to connect 'natively' as a SHOUTcast 2/Ultravox 2.1 source (this will need some testing & doesn't currently support sending in-stream artwork)

Changed some of the plug-in initialisation handling to better contend with (mostly older) plug-ins having issues & failing on loading which then causes WACUP to crash on loading
Changed the crash reporter to better report .NET runtime crashes (e.g. win10shell)
Changed some of the error handling in the Not So Asio output plug-in to try to minimise the crashes which keep occuring with it (am not expecting this to help but it's an attempt)
Changed how the older IPC_FORMAT_TITLE API is handled in relation to older plug-ins trying to use it to try to reduce the crashes seen related due to them passing incomplete data
Changed to not send 'ispodcast' to the input plug-ins as this is causing issues for some of the input plug-ins in relation to how it first accesses the file & cause a crash (this value is only meant to be sent to the local library plug-in & this change should resolve some of the odd crashes being experienced)
Changed how the shared metadata service treats 'streammetadata' in relation to how the input plug-ins are then directly queried
Changed how the internal ATF processing is done to reduce duplicate metadata queries being made to the shared metadata service &/or the input plug-ins depending on what is supported (this is primarily to reduce the amount of additional processing done as well as reducing the calls to the input plug-ins on fallback which for some can be slow to respond &/or cause stability issues based on some crash reports)
Changed the Audio CD, Archive Playback & Playlist Seperator input plug-ins to no longer rely upon subclassing the main WACUP window to do some of their integration (e.g. live menu updating)
Changed the Global Hotkeys & Taskbar Integration (Win7shell) plug-in to now no longer rely upon subclassing the main WACUP window due to the WACUP core calling it as needed for some of the required messages
Changed the Repeater & Undo plug-ins to lower the number of specific messages it's attempting to handle when subclassing the main WACUP window (still a bit more to do to be able to remove the subclass)
Changed the Format Converter plug-in to now no longer rely upon subclassing the main WACUP window for the handling of the API messages it implements
Changed the Bookmarks, Exporter & History, replacement Local Library & Playlists library plug-ins to no longer rely upon subclassing the main WACUP window to do some of their integration (e.g. detecting file changes)
Changed the default classic skin window positions with a new install to better show off some of the WACUP additions whilst reducing initial positioning overlaps based on recent feedback
Changed the /RESETCLASSICSKINPOS command-line option to also reset the double-size option to off
Changed the /RESETCLASSICSKINPOS & /REPAIR command-line options to then restart WACUP once the action has been completed (based on feedback received restarting is expected)
Changed the installer to better handle scenarios when the WACUP core dll cannot be updated (still not determine why this is happening for some) so it will fail gracefully sooner in the update process
Changed the IPC_GET_HMENU api to now also provide the menus for the main player button context menus (i.e. right-click menu on the play button)
Changed the majority of the WM_WA_IPC API messages that the Modern Skin engine (gen_ff.dll) sends to now be processed directly without going to the main window handler to see if it'll help resolve some of the weirder ui interaction issues (e.g. accessing menus triggering stack overflow crashes & possibly the embedding of the generically skinned windows causing random crashes for some setups more than others)
Changed the installer to check for ReactOS to prevent those inquisitive enough to try to do it from hitting the issues that are present (mostly due to it supporting a Windows XP level of API but WACUP relies upon a number of required Vista & newer APIs)
Changed more of the WACUP specific plug-ins & also parts of the core to move away from SendMessage(..) based API calls for direct usage where possible whilst still offering support for the SendMessage APIs
Changed the installer checks to better handle updating from an old 2019 era WACUP preview build to the current late 2020 / early 2021 builds so it's not re-extracting the Winamp installer when not required
Changed how the main right-click & windows (modern skin specific) menus are handled with the 'media library' entry to hopefully avoid some reported instances of the menu item appearing at the top of the menu (this should also gracefully get out of the way if the legacy media library plug-in is being used to avoid duplicate menu items)
Changed how the artwork cache is handled between sessions to now attempt to maintain it which depending on the usage can improve the initial loading experience to reduce some artwork related aspects being slow to initially render
Changed the podcast plug-in to automatically hide the info are with in the podcast library view & the the view layout options on it's related preferences page when running under WINE (this is to help avoid some stability issues seen with this feature on WINE related to the embedded browser mode used for the info pane)
Changed the handling of crash reports from WINE installs to make them easier to detect from those from Windows installs
Changed the shuffle related options on the 'Playlist' preferences page to now be on their own preferences page as a child of the 'Playlist' node
Changed the installer to help complete the transition away from using the Nullsoft DirectSound & WaveOut output plug-ins over to the WACUP equivalents of Not So Direct & Not So Wavey (the prior 68x0 builds only removed the Nullsoft plug-ins if they were not found to be the currently used output plug-in whereas this change will remove them & set the active output plug-in to the appropriate equivalent)
Changed the initialisation order of the Taskbar Integration (Win7shell) plug-in to minimise a tangible delay experienced when the plug-in is enabled (nothing revolutionary on the time saved but the delay was enough to be noticeable when looking for it at around 20-30ms on my development install)
Changed how visualisation plug-ins are handled to better ensure that high resolution timers (needed to ensure a more consistent frame rate) are used when one (or more) is running
Changed the library history plug-in to better cache some of the values it displays to avoid repeat processing for a small performance improvement with the responsiveness of the view
Changed the 'vorbis comment tag' tab (for FLAC & Vorbis files) on the alt+3 dialog to now sort the metadata to better match with the 'raw metadata' tab
Changed video playback handling to possibly improve the reported performance issues with it lagging (video in general is a pain & I need to re-do my initial attempt as it sucks)
Changed the 'update all' menu action on the 'downloads' library node causing the ui to be blocked when triggered & the podcast feeds haven't yet been loaded / viewed
Changed a number of UI blocking messageboxes to used timed ones if there's an issue when using Milkdrop & the plug-in attempts to report the issue (if not responded to in a timely manner it can trigger a crash)
Changed the error reporter to query the OS to determine if there's likely to be an active internet connection before continuing to attempt to auto-submit / email the crash report
Changed how the File Info (Alt+3) dialog attempts to deal with read-only files so its more obvious that editing of the metadata on the file is not going to be possible
Changed some aspects with how video in MP4 containers are handled to minimise some of the delays in actions reacting which might be contributing to some odd deadlocks (this may also improve seeking but there's more to do on this as it's still far from ideal)
Changed the $SubStr(,,) ATF method to support a negative offset so it can be used to work from the end of the string instead of working from the start with a positive / zero value
Changed how the ReplayGain processing deals with read-only files to now skip attempting to process them which is the better way to know that the calculated values won't be saved before wasting processing the file first
Changed the handling of the core ATF formatting string to allow for line breaks in the user edited version & effectively removed the size limit on the length of the string for a dynamically handled string
Changed how WACUP reacts to being run after a crash if there is a known newer version available to download by now waiting for user interaction with the update dialog instead of doing it normally & often allowing more crash reports to occur in quick succession as is the case for some (this might be annoying but so is trying to deal with large batches of crash reports from the same user despite an update existing which fixes the issue happening)
Changed the Shuffle diagnostics preference tab to now update when changes are detected instead of having to manually toggle away from the view & back to it
Changed how the the first item to be played from the current shuffle table is selected after it has been initially created to act more like Winamp (the prior preview build had temporarily been defaulting to the first playlist item in all situations which this change now attempts to pick a random item - so it could entirely keep picking the same item as is the joys of randomness)
Changed the Not So Direct output plug-in to attempt to live update its volume control settings when changed instead of waiting for starting playback of a playlist item
Changed the crash report collection dialog to stay around for a few seconds after the collection succeeds to help prompt about contacting to provide more information as well as making the email address into a clickable link

Fixed the probable cause of a deadlock seen in a crash report related to the Not So Direct output plug-in
Fixed the probable cause of a deadlock seen in a crash report related to the Not So Wavey output plug-in
Fixed the crash reporter not recognising running on Windows 8 with the OS compatiblity mode being enabled
Fixed the probable cause of a crash on opening the output plug-in preferences page (if this still happens then it's most likely an issue related to the atsurround output plug-in)
Fixed the probable cause of a crash within the NDE handling seen in a number of crash reports over the past two builds due to possible corruption / incomplete loading of the file
Fixed the replacement local library plug-in sometimes incorrectly handling updating the current view cache when removing items from the view
Fixed the initial processing of urls by the Streaming Url Processor (e.g. YouTube playlist links) causing WACUP to be unresponsive & sometimes triggering the crash reporter (it now should keep the program in a more responsive manner along with altering the playlist entry to indicate that something is happening compared to before)
Fixed the installer not removing the existing Win7Shell & Win10Shell plug-ins when updating which could cause post-update related failures due to internal api mis-matches
Fixed the probable cause of a crash within the settings cache when trying to read in some of the settings
Fixed the internet radio plug-in not always waiting for the first run download to complete before its quit() has completed which could cause a crash if the download was still in progress for some setups
Fixed a conflict with how the generically skin windows are handled vs the overall window positions & always on top mode under a classic skin that has been causing a hang with some setups
Fixed a number of issues which meant the MP4 Demuxer plug-in wasn't as thread safe as it should have been (this is behind a lot of the crashes seen with the 68x0 preview builds)
Fixed the probable causes of some hangs experienced related to their playback threads not relenquishing correctly
Fixed a massive regression in the performance when accessing MP4 based files especially those with artwork to show
Fixed a crash when trying to read in all items from an ini file section (this was seen with the Audio Capture plug-in)
Fixed placement of the built-in window positioning on loading to minimise the chance of them going off-screen if something went wrong during the prior instance so they should re-appear on the primary monitor
Fixed shift + left/right when playback is paused (along with shift + click on the previous & next buttons) not changing the current playback position as expected (under classic skins the seekbar won't update but this is something that'll be resolved when I take over the drawing of the classic main window & is currently due to a disconnect between the Winamp core & what WACUP is doing for playback handling)
Fixed an issue introduced before the 68xx installers which was sometimes preventing a sensible install path being set when checking to use the portable install type
Fixed a timing issue that could cause the Streaming Url Processor plug-in to crash on exit if it was processing an url request at the time
Fixed a timing issue that could prevent the History plug-in from being able to save the current playback position for the resume option when a file is intentionally stopped including it being paused
Fixed a regression preventing VGM files going to the VGM input plug-in instead of the vgmstream input plug-in (the fun of inconsistent / unofficial namings of files to do with video game based formats)
Fixed the tooltip in the Waveform Seeker window causing the window to be brought to the top & overlapping other windows
Fixed a crash on playback if the played history database (or any of the NDE based database files) has become corrupted thought it won't help to recover any data which may have been in the database file(s)
Fixed a performance regression with Milkdrop that's existed for over a year which has been preventing it from running at the desired frame rate (if the hardware can do it) or just running 10-20% below the specified frame rate irrespective of hardware capabilities
Fixed a number of small incompatibilities with some of the older plug-ins that are trying to be used to either gracefully fail (since they expect Winamp specific code layouts for things) or just because they send an invalid response (which also applies to when being used under a plain Winamp install)
Fixed the current main playlist edit item not being correctly scrolled into view during loading
Fixed the media library window when using the replacement media library core getting closed if WACUP is closed in a minimised state when using a classic skin (modern skins might still be funky but the modern skin engine also doesn't support starting minimised correctly)
Fixed a crash & a parameter validation issue during live editing of the ATF $decode(..) method which should now ensure the final parameter is provided
Fixed the current working directory not being correctly restored between sessions (& also reduced the memory overhead for the value when WACUP is running)
Fixed a visual regression with Milkdrop introduced when reducing some of the processing done which was not needed
Fixed the video window right-click menu not showing the correct one when using the simple window mode
Fixed some quirks with the selection tracking mode in the classic artwork & lyrics windows where it'd either show the wrong information briefly or completely (as per the lyrics plug-in) or trigger an update that would make the artwork aspect flicker due to it being removed & then re-drawn at a later time (more noticeable at times during loading where it could appear & disappear a few times)
Fixed the installer not always installing the supporting library for the MP4 Demuxer input plug-in when creating a minimal WACUP install
Fixed the reproducible issues with the video support being disabled & causing the classic skin main window not react after a first install / clearing out of the relevant settings
Fixed the reproducible causes of the Not So Wavey output plug-in sometimes deadlocking either on track change or if WACUP is set to resumes playback on start-up
Fixed disabling the info area in the podcast library view not immediately being hidden without manually resizing the library view
Fixed the lyrics window not setting the 'no lyrics found' message correctly when selection tracking & no lyrics could be found
Fixed some crashes seen in relation to the Get/Put ATF methods due to incorrect parameter validation
Fixed stopping an already paused SID (Commodore 64 Music File) taking a few seconds to respond to the request
Fixed the cause of the WASAPI output plug-in not allowing the main window vis to run due to an incorrect value provided when the output is being opened & that success of that is reported to the WACUP core
Fixed the possible cause of a crash seen in some setups when adding items related to local files into the main playlist
Fixed the about window getting hidden behind the main window of modern skins
Fixed the Waveform Decoder (in_wave.dll) plug-in not loading due to a missing dependency (mpg123.dll) against libsndfile.dll due to the installer not correctly handling that specific install type (if the OpenMPT Module Decoder or vgmstream input plug-ins were also being installed then this wasn't an issue - installers can be a pain to get done correctly at times if you forget about the dll dependencies)
Fixed the Ctrl+Alt+End global hotkey not working as expected (the default actions is to stop but it was toggling next on stop) due to the side effects of a workaround related to classic skin windowshading
Fixed the edit playlist entry dialog to focus & pre-select the text in the new entry field on opening instead of focusing the browse button
Fixed editing the 'comment' field in FLAC & Vorbis files when there's already a 'description' field not seeming to update the field on save
Fixed the 'comment' handling from ID3v2 tags to only provide the basic COMM field instead of returning any COMM field if there's not the basic one (this better aligns with user expectations & in_mp3's handling)
Fixed the shift+e batch metadata editing dialog in the main playlist editor crashing when trying to apply changes due to a number of issues in some of input plug-ins as well as how the local library plug-ins were accepting the strings to be applied (at least I hope this is fixed as my tests no longer crash but I'm not 100% certain for those that have been experiencing this issue for a number of the recent builds)
Fixed the probable causes of some quirks related to the shuffle table being incorrectly maintained between sessions when it's not meant to be (there is still some more refinement to follow including changing it to not default to the first item when a new playlist is created)
Fixed a possible deadlock in the NotSoDirect output plug-in
Fixed the wrong dll name being used when registering for elevation
Fixed a number of issues when manually adding metadata on files (e.g. FLAC or Ogg Vorbis) via the 'Vorbis Comment Tag' tab on the File Info (Alt+3) dialog (this could manifest as a crash, not saving the changes or removing existing metadata for the newly added key pair)
Fixed some visual issues with the ReplayGain processing dialog when using the replacement Media Library Core
Fixed the 'streamtype' metadata query to work correctly on forced https -> http stream urls so that the info pane of the Bento skins will show the current url information as http-only streams
Fixed the error reporter dialog not showing the desired version if auto-posting but emailing is enabled doesn't work (assuming the emailing error code is actually correct & not faking success)
Fixed a crash when using the IfStr* ATF methods due to incomplete parameter validation (side-effect from the VS2017 changes a while back)
Fixed a crash with the FLAC input plug-in & a legacy metadata query where the data provided was not being correctly validated
Fixed the $SubStr(,,) ATF method not working as expected due to an issue with the parameter validation (would either output the whole string or no string)
Fixed directory paths in playlists not being expanded out as expected to be the files within that directory (this is a regression related to dropping more of the hooks into the Winamp core for all WACUP handling)
Fixed viewing the agent's tooltip when WACUP is running either showing clipped / corrupted text or triggering a crash (this has been an issue for a lot longer than it should ever have been :'( )
Fixed the taskbar text & a few other things when using the 'Advance to next on stop' action not being updated to reflect the file that has now been set as the current file (which was showing ok elsewhere)
Fixed drag+drop from the Bookmarks library view with multiple items selected causing a crash &/or weirdnes after attempting to complete the drop action
Fixed a handle leak when the Streaming Source plug-in is trying to make a reconnection & is not able to complete / resolve the action (this is an interim fix with a non-Jnetlib based solution to follow)
Fixed the hybrid volume mode setting with the Not So Direct output plug-in sometimes using the logarithmic volume mode (this is the likely cause of a bug report that the hybrid volume was too low vs Winamp)
Fixed a divide by zero issue crash affecting some modern skins when playing a stream due to a length api compatibility issue (the fun of positive & negative numbers)
Fixed ATF error messages not showing the correct skin (issue from merging things some time back)
Fixed the custom taskbar preview not reacting when using the 'Advance to next on stop' action not being updated to reflect the file that has now been set as the current playlist item
Fixed some of the submenus on the main right-click menu (e.g. skins) not being populated &/or updated as expected when the menu is first opened from a generic skinned window frame
Fixed some more crashes related to ATF input handling issues with some of the lesser used methods
Fixed the start / double-click action on the Visualisation preferences page not always working when using the single visualisation plug-in mode
Fixed unchecking the "Recycle permanently deleted files" option not always working as expected if the General preferences page hasn't been viewed first
Fixed a number of issues across multiple components related to the handling of RSN files (RAR SNES audio archives) causing failure to parse them or to break playback via an endless loop

Removed the now no longer required crash fix patches related to the Nullsoft DirectSound & WaveOut output plug-ins
Removed a number of dll exports from the WACUP core dll which are no longer applicable / needed to export giving a 2KB size reduction

Updated cacert.pem to latest (19 Jan 2021)
Updated libcurl (libcurl.dll) to 7.75.0 (3 Feb 2021)
Updated libebur128 (ml_rg.dll) to 1.2.5 (2 Feb 2021)
Updated libjpeg-turbo (image.w5s) to 2.1 Beta 1 (25 Nov 2020) + latest Git commit up to 21 Jan 2021
Updated libopenmpt (in_mod.dll) to 0.5.5.14111 (31 Jan 2021)
Updated libnghttp2 (libcurl.dll) to 1.43.0 (2 Feb 2021)
Updated libsidplayfp (in_sidious.dll) to 2.0.5 (24 Oct 2020)
Updated libsndfile (libsndfile.dll) to 1.0.31 (24 Jan 2021)
Updated minizip-ng formerly called minizip (zlib.dll) to 3.0.0 (24 Jan 2021)
Updated Monkey's Audio (in_ape.dll) to 6.12 (15 Feb 2021)
Updated mpg123 (mpg123.dll) to 1.26.4 (24 Dec 2020)
Updated OpenSSL (libcurl.dll) to 1.1.1j (16 Feb 2021)
Updated Patreon list (8 Feb 2021)
Updated rapidjson to the latest Git commit from 6 Jan 2021
Updated taglib (tag.dll) to 1.12.0 beta 2 (23 Jan 2021)
Updated unrar (unrar.dll) to 6.0.3 (1 Dec 2020)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 17 Feb 2021
Updated WavPack (in_wv.dll) to 5.4.0 (10 Jan 2021)
Updated zlib-ng (zlib.dll) to latest re-based update (29 Jan 2021)


Preview Version: 1.0.18.6840
Released: 31 December 2020

Everything that was done as part of build 6800 since this is the first preview build since build 5864 that will be reported via the auto-updater (there's almost 300 changes in the 6800 changelog so I'll keep this one smaller for those who already updated to it :) )

Added an approximation of the Nullsoft DirectSound output plug-in hybrid volume control mode to Not So Direct (this provides a lesser form of the logarithmic mode so the differential between off & full volume is less whilst still providing more control at lower volume levels as the logarithmic mode does)
Added an option to the Waveform Seeker plug-in to allow for clearing the waveform cache on successful close (this might be useful for some who don't like a lot of small cache files in their settings folder)
Added a temporary solution when using the new media library core with the album art filters in the views from the 5.666 provided local library & portables plug-ins to not show a blank space where the contents should be but instead a helpful little message not to worry that what's expected isn't showing (the replacement local library plug-in will be getting support in the new year so the old plug-in can be dropped sooner rather than later)

Changed to no longer install the Nullsoft DirectSound (out_ds.dll) & WaveOut (out_wave.dll) output plug-ins with the WACUP provided versions instead the preferred options to use with Not So Direct now the default output plug-in unless that has been changed to a different output plug-in by the user (this change will also remove those Nullsoft plug-ins if they weren't explicitly set to be used before updating)
Changed how the IPC_HOOK_TITLESW api is handled when using the legacy media library plug-in (gen_ml.dll) to directly go to the respective media library library plug-in (ml_local.dll or ml_ll.dll) to save having to go through the main window proceedure & related subclassing (this mirrors what the replacement media library core does & is done to help resolve some of the odder recursive related metadata issues)
Changed some more of the apis to offer a direct non-SendMessage(..) based version to help reduce some of the main window activity which is showing as being an issue within some of the crash report issues

Fixed a crash seen when using the add/open folder action due to a main window related deadlock
Fixed the probable cause of an initial loading failure related to the main window creation hooking
Fixed crashes seen when libflac.dll cannot be loaded when attempting to play FLAC files
Fixed some crashes seen within the NDE handling due to incomplete parameter handling
Fixed MP4 based files being incorrectly opened for metadata when 'streammetadata' is being queried
Fixed an issue with the SNESAmp wrapper causing a self recursion within the IsOurFile(..) override
Fixed the probable cause of the Audio Capture plug-in causing a deadlock on playback stop for some
Fixed the handling with some input plug-ins when destroying the object used by the transcoding api
Fixed the probable cause of a crash seen when enqueuing some files within a local library view
Fixed the IPC_HOOK_TITLESW optimisation when using the replacement media library core not always sending the message to the correct library plug-in (sometimes it's possible for non media library plug-ins to be seen before the actual media library plug-ins are then loaded)
Fixed some of the media library plug-in messages not being correctly dispatched to them when using the replacement media library core
Fixed the probable causes of some of the less obvious issues in the crash reports received against the prior build
Fixed the probable cause of changing focus away from WACUP & then coming back to it when using a classic skin only having one window show unless you then manually minimise & restore the running WACUP instance
Fixed the classic main window windowshade toggling workaround fix (needed for preventing an instant crash in the Winamp core) not always allowing the action buttons to respond to the first mouse click if the window expands downwards (the workaround is mainly there to help with the window expanding upwards & the toggle incorrectly triggering the action buttons)
Fixed the titlebar of the generic classic skinned windows not always updating when the window is being resized (side effect of removing some duplicate processing which was masking this in the remaining code)
Fixed the skinned about & preference windows when smooth resizing is turned off under a classic skin not maintaining the expected fixed width for these specific windows
Fixed the probable cause of the replacement local library plug-in sometimes crashing when it's providing the current library view & is requested to do a self update
Fixed the import button on the library playlists view not showing the menu due to it not having been updated to find the correct part of the parent menu to be shown
Fixed using the cancel button after starting an import on the add / open folder dialog (related to the main playlist editor) not actually doing that & the found file(s) still being added (sometimes much later)
Fixed a crash related to trying to find the plug-in to handle GBS playlist items (this has been an on-going issue over a number of builds which I'm hoping to finally have resolved with this change)
Fixed the skinned groupbox header text not clearing the prior text if what's set is smaller than what was previously being drawn (skinning windows controls is frustrating to do at times I tell thee!)
Fixed the probable cause of a random deadlock experienced when trying to stop playback with Ogg Vorbis files
Fixed the alt+3 dialog reporting a failure to save metadata for any file type where the input plug-in handling the format doesn't have custom tabs added to the dialog (e.g. mp4)

Updated Monkey's Audio (in_ape.dll) to 5.70 (26 Dec 2020)
Updated Patreon list (27 Dec 2020)



Preview Version: 1.0.18.6800
Released: 23 December 2020

Added the first testable implementation of the replacement Media Library Core (aka gen_ml2) which can be enabled via the Media Library preferences page for easier toggling between it & the legacy Media Library plug-in (gen_ml) to aid in testing (this is now integrated into the WACUP core & when enabled offers a simple disable the Media Library mode for those who don't want this feature without having to mess around & find the appropriate plug-in to disable)
Added the first testable implementation of a replacement shared skinning api which is used via the Skinned Prefererences option & also with the new Media Library Core (this resolves one massive issue I've had with Winamp since generically skinned windows were added in that you had to have the media library plug-in present to be able to use it which often people don't want & that meant either un-skinned dialogs or manually doing the skinning)
Added an initial Intro Play mode to the Playback preferences page to allow for only playing a specified duration of a playlist entry before automatically going to the next as well as how much fadeout will be applied (aka WACUP's gen_intro implementation)
Added some extra error handling related to mp4 video playback decoding failures seen in some of the recent crash reports (rather than crashing it'll hopefully abort playback now)
Added some extra checks to some of the input plug-ins which delay loading their supporting library dll to avoid some of the recent crash reports where the library dlls cannot be found for some reason (still not sure what is going on with these setups as the installer should have correctly installed things but better to be more cautious & self-disable plug-ins if there's an issue than allowing them to crash!)
Added additional options for the Now Playing current artwork saving support to give more control over the saved artwork (e.g. unmodified, kept to the specified size limit or always sized to the size limit whether it's larger or smaller than the set limit)
Added a /RESETCLASSICSKINPOS command-line option (also used by the /REPAIR mode) which will attempt to reset all of the known classic skin window positions back to their defaults (e.g. if going from modern skin to classic skin has messed up / lost windows offscreen & you need a quicker way to get them back than for example using the likes of winspy++ to force them back into view)
Added options in the Library Playlists plug-in to make it easier to import library playlists from another Winamp / WACUP install & have it maintain the displayed filename (which doesn't happen if you just add the folder via the more generic folder / file import option)
Added support to import direct Google Podcast Feed urls (this covers urls using podcasts.google.com/feed/ - if you find others then please let me know so I can look into what's needed to support them)
Added a psuedo debug mode to the Playback -> Equaliser preferences tab for inspecting what is currently set (this is mostly to help with starting to replace the Winamp equaliser handling code for WACUP's)
Added a 'Silence Detection' preferences tab on the root Playback preferences node which is an integrated version of my Silence Detector DSP plug-in (dsp_silence_detect.dll) & allows for doing certain actions based on a configurable amount of digital silence being detected (e.g. restarting the current playlist item if you're listening to a stream & the internet connection drops)
Added some new hookable notification messages for the repeat & shuffle modes being changed to help simplify detecting such changes (for plug-ins updated to detect these messages)
Added transcoding api support to the OpenMPT Module Decoder plug-in which opens up mod files being rendered by the Waveform Seeker plug-in as well as now being a supported format in the Format Converter
Added preference options on the Playback preferences page to specify the fadeout duration for the Intro Play & normal 'Stop with fadeout' option (no more being fixed at around 4 to 5 seconds like Winamp)
Added a preference option on the Advanced preferences page to allow for only showing the genres from the genres.txt file in the native file editing dialogs without it showing the predefined list of genres
Added support to the Streaming Source & Server plug-ins for sending / receiving the next expected title
Added support for showing the now & next playing on the basic Streaming Server status page
Added an option to the OpenMPT Module Decoder plug-in to control how modules with sub-songs are handled (this defaults to treating modules with sub-songs as one big file with disabling the option going back to the older behaviour in only playing the first sub-song - better support for sub-songs will follow!)
Added the currently available visualisation plug-ins onto the visualisation submenus so it's easier to quickly switch or disable using a visualisation without having to go into the preferences
Added the ability to set an older Winamp logo via the Discord now playing support as well as making it easier to enter a custom app_id if you want to use your own thing (within the limitations in the WACUP forum thread)
Added the ability for the visualisation plug-ins to now be handled by Crystal Classic skins (classic skin window transparency) via some additions to the WACUP core making it possible to detect generic skinned windows not created on the main UI thread (blah blah blah this makes things more consistently handled :) )
Added a /NOPATHSINI option to the installer for those really wanting to get a pre-5.1x style handling of the WACUP settings with new installs (don't do this on an existing install as you will regret it) so it's not within a sub-folder within the main program file (weird legacy request ;) )
Added a compatibility mode for the MAD input plug-in (in_mad.dll) so it can be used in a portable manner without needing to run as an administrator due to it trying to read / save it's settings from the OS registry (it'll now redirect them to be read from an in_mad.ini from the WACUP settings folder)
Added an initial test release of the Not So Wavey replacement WaveOut | MME output plug-in which unlike Winamp's WaveOut (out_wave) plug-in it will by default alter the output volume / pan directly on the audio without a discernable lag (unlike out_wave's alternate volume mode which was only ever as responsive to such changes as the length of the output buffer) instead of altering the WACUP process volume
Added IPC_ENQUEUE/IPC_ENQUEUEW APIs to make it a bit simpler to just add an entry to the main playlist when none of the other information is known / needed (this is an in-process API to complement the existing WM_COPYDATA's IPC_ENQUEUEFILE/IPC_ENQUEUEFILEW handling)
Added play/enqueue/enqueue & play/sendto support on the podcast view channel list to complement the episode list options
Added a 'remove duplicates' action onto the root playlists view right-click menu so it's easier to run the action on multiple playlists
Added a generic solution for dealing with the api that the modern skin engine attempted to use only with the Nullsoft DirectSound output plug-in for offering in-skin cross-fading support (this now opens up subject to plug-in support more output plug-ins being able to be used with this modern skin feature as well as removing the messagebox that is shown when using other plug-ins that don't support this)
Added support for using the transparency within splash.png images to allow for non-rectangular loading splash screen images to be used
Added a helper mode on the placeholder 'Last.fm Scrobbler' preferences page for installing the Legacy Last.fm Desktop App & associated Winamp plug-in (too many have reported trying to do this & don't notice that it's put the plug-in into the default Winamp install location & not WACUP's plug-in folder which this additional handling should help resolve if the mode on the preference page is used!)
Added skinning of the tooltips associated with the native windows including the generically skinned window frames for a more consistent skinned experience
Added the ability to make WACUP use a user specified copy of the youtube-dl instead of relying upon WACUP to manage things (for those using shared file handling)
Added reporting of the main thread stack size on the misc diagnostics preferences (this is to help with debugging some of the crash issues being experienced)
Added the ability to 'shift + click' on the visualisation sub-menu to open the plug-in's configuration (if provided as well as not having to set it as active)
Added experimental support for running multiple visualisation plug-ins at the same time (see the notes when enabling the mode via the visualisation sub-menu on more about this - the visualisation plug-in preferences page intentionally doesn't allow for mananging this new mode for this iteration of the feature whilst it's being tested)
Added support for double-clicking on the classic skin playlist editor action buttons to replicate what Winamp does whilst WACUP keeps using standard OS menus
Added the SNESAmp plug-in (for SPC playback support) as an option during installation to hopefully resolve some of the installation issues that have been recently reported with the plug-in
Added reporting of the main stack usage in the crash reports to try to better help diagnose some issues
Added support within the skinned edit controls when using the replacement media library core for Control + Backspace to act as a clear edit control shortcut (instead of it not doing anything useful in adding a random square control character)

Changed the Milkdrop desktop mode handling to use a method that will work on Windows 8 & newer without it requiring additional dlls nor it having the flickering issue that's plagued this feature for years due to Windows changes (note: this change kills the mode on Windows 7 installs - I'm still looking for a nicer solution that's not affected by 32-bit vs 64-bit Windows versions as the prior solution was)
Changed the WACUP core dll to now be a VS2017 compile which was the last thing being built as part of the WACUP provided files with the older VS2008 compiler (hopefully I've caught any issues that exist from mis-matched compiler quirks that can occur)
Changed the installer to download the default modern skins if selected instead of always shipping them within the installer &/or patching copies from the 5.666 installer (this gives an ~20% saving on the main WACUP installer whilst reducing the overall download requirement for subsequent updates as the modern skins provided aren't going to be updated every build so I'll save everyone & myself some bandwidth)
Changed how the 'Stop with fadeout' option works compared to Winamp's behaviour to try not to cause the UI lock-up whilst the fadeout is in-progress
Changed how the Podcast feed updates are handled to reduce the idle resources used for a small memory reduction (it also makes crash reports a bit cleaner for me so win-win)
Changed the Playback Tracking -> Now Playing preference tab to now have the artwork logging related options (as introduced in build 5864) to now be on their own Current Artwork to better accomodate the additional feature options related to it
Changed how the DirectX 9.0c requirement by Milkdrop is handled to now be done when Milkdrop is started instead of relying on the installer to generically do this (i.e. it now won't install a minimal version of the older DirectX 9.0c runtime unless it's actually needed as some would prefer based on feedback received which should improve the initial installation time & resolve a number of false positive issues related to running the DirectX runtime during install)
Changed how the Streaming Source DSP plug-in determines the LAME encoder dll it uses to avoid older versions being used which can & will cause crashes
Changed how some of the metadata requests are being handled to hopefully minimise some of the potential locking issue seen in the crash reports & user feedback
Changed (temporarily) how background titles for main playlist entries are read for UNC based paths to lessen the likely of a title being generated for unavailable shares (more will be done to improve this so it doesn't cause the UI to lock-up for a while if the UNC location cannot be resolved)
Changed the Streaming Source plug-in to use less resources when there are no active streams
Changed how the library playlists view works when there are no playlists to make it more obvious what can be done to create or import playlists to be shown within it
Changed (again) the name of the SNESAmp wrapper plug-in as the SNESAmp plug-in installer generically removes any in_snes* filenames which can remove the WACUP wrapper
Changed more of the standard Winamp APIs to now be handled via WACUP code (this also includes deprecating ones that show no obvious sign of being actively used)
Changed the Next On Stop plug-in to now be directly part of the WACUP core which should also resolve some of the quirks with it & reduces the overhead (e.g. 2 few subclasses & a 12KB size reduction from not being a separate plug-in)
Changed how the clasic skin main window is 'hidden' vs how Winamp handles it to try & avoid it overlapping onto other monitors depending on their orientation (e.g. one above another was more likely to have parts of the window showing on the monitor below it which wasn't the expected behaviour)
Changed how the current playback position is obtained & also provided via the APIs to try to reduce any duplicate processing (this change will hopefully also resolve some of the deadlocks that have been happening from the crash reports)
Changed the video window & support to not be created if there are no compatible input plug-ins present reporting video playback support on start-up
Changed the icon provided by the original Winamp process to now be the WACUP icon as per a user request to make things more consistent in the task manager & volume mixer for WACUP
Changed where the original Winamp notification area icons are stored / accessed from to be part of the shared resources dll & related changes to support this (e.g. with the agent mode)
Changed how the notification area icons are loaded to work better on higher resolution setups (this means that the higher resolution version of the icon can be used instead of it picking the smallest & the OS upscaling which makes the icon look blurrier than it should be)
Changed the skins menu (all 3 instances of it) to now be completely managed via WACUP code instead of relying on the Winamp core & then having the partially integrated Skin Mananger plug-in re-processing the menu items from Winamp (this should make the skins menu a bit quicker to load as well as removing some of the hooking that was needed which provides a small reduction in overall message processing)
Changed some more of the menu actions to be handled via WACUP code along with fixing some missing / incomplete handling found during testing
Changed some of the menu handling to de-duplicate things between the 'main' & the 'modern' menu resources where the same sub-menus were duplicated to instead be done in a shared manner (slightly less resources & all of that)
Changed some of the integration of the Three Mode Repeat plug-in in preparation for it being merged into the WACUP core (which will be completed when the main window drawing is taken over!)
Changed some more of the discord related handling to try to fix a locking related issue seen with some setups where either an update is blocking &/or something has gone wonky with the connection to the client
Changed pressing space in the main playlist editor when configured to scroll the current playlist item into view to now also flash the playlist item if the corresponding Playlist preferences option is enabled
Changed the installer for new installs to set MDS as a supported file type against the MIDI (in_midi.dll) input plug-in
Changed how some aspects of installation are handled with leveraging the WACUP core to now better behave when updating an existing install
Changed the visualisation menu items for start/stop & configure to only be enabled if there's a valid visualisation plug-in to use
Changed how the bookmark menus are handled to better handle the library bookmarks plug-in not being installed (this is so something will be possible even if the full experience & some of the menu items are disabled due to the plug-in not being installed / enabled)
Changed to use less of the main window procedure handling from the Winamp core to better help with some of the locking issues with the recent builds as well as leaving (hopefully) just the main window drawing & the actual skin change handling under the Winamp core with everything else routing directly through the WACUP core now (aka another step closer to dropping the need for the Winamp core, yipee)
Changed how classic skins handled starting minimised (prior state or when forced via the loading shortcut properties) to do a better job in not having the windows show up until WACUP is restored to see it (there's still going to be cases where this isn't 100% such as from 3rd party plug-ins & also the legacy library window for the moment but it's still better compared to letting the Winamp core handle things)
Changed how adding or editing a podcast feed is done to better deal with slow web responses when trying to access the feed information so it now shouldn't be causing WACUP to lock-up / trigger the OS hung process handling
Changed how a number of the shared dlls are built to remove more unused code within them for almost 200KB of file size saving (not a lot in the grand scheme of things but every little helps)
Changed some of the API message handling to improve compatibility with some plug-ins along with trying to resolve some of the weirder crash reports seen over the past few months
Changed the Yule Log Twitter support to now use a non-deprecated libcurl api (which also helps to reduce the compiled libcurl size by a few KB)
Changed to use just the modern detours library instead of the previous hybrid compile with both the modern & a legacy version required for the skinned preferences scrollbar handling (this change may help with some of the conflicting weirdness experienced with the library scrollbar skinning though more needs to be done when it comes to skinned scrollbars)
Changed how some of the extraction works with the installer to better fit in with the compiler related changes & the sharing of the common runtime files
Changed to not load the specific old version of the AudioScrobbler plug-in that comes with the ml_ipod plug-in since it'll fail on all supported Windows releases due to a framework bug in the old plug-in
Changed to use a different way of handling the option for disabling always on top when a fullscreen application is detected instead of using the appbar based method from the Winamp core (this option with Winamp has been a source of odd bug reports for years so by using a Vista+ era api instead of a Win9x era api will work better along with not having a monitoring window running all of the time when not required)
Changed how the classic artwork window deals with the rating control (if visible) to reduce the rate of metadata re-querying that's done (e.g. when moving the mouse over the window)
Changed a lot of the internal WACUP core handling to now use more of the internal methods instead of the SendMessage(..) based ones that were needed before taking over the API handling (this provides a small performance boost by reducing how many messages have to be processed via the main window & in-turn any of the subclass procedures hooked on to the main window's)
Changed the WACUP general purpose plug-in API to now support a limited 'messageproc' callback solution (similar to the media library plug-ins) which helps remove a 3rd of the main window subclassing done by the WACUP provided plug-ins along with reducing the overhead involved with main window subclassing (this may make things feel a bit snappier depending on the setup as there's less things touching all of the messages going through the main window)
Changed how the generic skinned windows are created to effectively halve the time taken to create the raw window with my testing (for me this is a reduction from ~6ms to ~3ms which applied across all of the default WACUP windows is an ~20ms saving - this may not seem like a lot but any reduction is welcome though mileage will vary)
Changed it so if a plug-in has been disabled & a close is initiated that the restart message from the preferences will not be shown
Changed a number of things in preparation for replacing the Media Library core plug-in (gen_ml.dll) with an integrated WACUP replacement (this has been a long time coming but it should be worth it!)
Changed how the OpenMPT Decoder plug-in (in_mod.dll) is built to workaround a weird extreme slowness seen when initially loading the plug-in compared to all other plug-ins & supporting dlls due to a cache that's initialised when libopenmpt is being initialised
Changed the scrollbar in the main playlist editor to match the OS related scaling seen with the media library scrollbars for a more consistent visual look
Changed the handling of the 'Media Library uses same font as Playlist Editor' & 'Use freeform scrollbars when available' from the Media Library 'Appearances' preference tab to always be done without the need for these options (this just makes things simpler going forward though if you're using the legacy Media Library core plug-in then they may still be present but hopefully shouldn't be having an effect)
Changed how the 'dead' Radionomy stream urls from SHOUTcast tunein urls are handled to better ensure they'll not be added into the main playlist editor (based on a request from Discord)
Changed how the settings cache & Milkdrop plug-in work to reduce the number of cache misses when trying to process reads related to milk2_msg.ini (this makes Milkdrop a bit quicker to load)
Changed the output plug-in preference page to now manage the active output plug-in based on a dropdown listing the enabled output plug-ins instead of basing it on the selection in the output plug-in list (this is based on repeated issues with users changing the selection & not realising that will change the active output plug-in despite the note at the top of the preference page)
Changed the plug-in preference page lists to better sort the listed plug-ins to favour the active plug-ins at the top which should be less confusing compared to the mis-matched active vs disabled vs failed to load
Changed how the internet radio view is drawn so that the genre tree now has it's expand/collapse elements automatically upscaled based on the font size being used in the view (this was much needed as the clickable area in the original non-scaled mode was hard to see at times depending on screen resolution & your eye sight & the skin being used)
Changed the Skinned Prefererences handling to use the new shared skinning api which was helpful in resolve a lot of the visual issues that existed with both the new code & in comparison to the prior implementation (note: there are still a number of visual issues remaining which will be resolved in later builds)
Changed the Playlist File Remover plug-in to better ensure it's only hooking the main & playlist editor windows if it's preference option has been enabled (this is a small change to resolve some quirks)
Changed the Internet Radio view to exclusively use the new shared skinning code to resolve skinning menus not working when run under the legacy Media Library plug-in (this is only a temporary change)
Changed the installer to support using customised skins & visualisation plug-in folders (if set by the user) when updating a prior Winamp/WACUP install
Changed the installer to make downloading the curated Milkdrop2 presets to now be skipped by unchecking the item via the install customisation page
Changed the Windows Taskbar preview handling to be exclusively handled by WACUP's version of Win7Shell instead of a hybrid with the Winamp core depending on which taskbar handling mode was enabled in the preferences
Changed how Win7Shell works to now make Windows do the drawing when using a classic skin for a better experience (using a modern skin uses the existing method which sucks due to the modern skin engine)
Changed how the classic skin video window is handled when being resized & a video is playing which previously would flicker much more &/or not show the window frame until resizing completes (this needs more work as it's far from ideal but it should be better for now compared to how it was before this change)
Changed the un-skinned preferences window to also report the current WACUP version as part of the title as another way to quickly determine the WACUP version used
Changed the quality dropdown text on the MP3 encoder configuration dialog to remove the '--alt preset ' prefix so it's easier to read through the quality settings
Changed the handling of recently played items in the taskbar jumplist when the Win7Shell based implementation is enabled to try to workaround a random crash affecting some
Changed the crash reporter to better report Delphi runtime crashes (e.g. vis_mux)
Changed a number of small things try to minimise the likely causes of the stack overflow crashing issues being seen by some users
Changed how the Win7Shell plug-in works to hopefully detect when it doesn't need to be rendering the preview (this is will likely need some adjustment as Windows doesn't provide an easy way to know when it should stop which for modern skins can cause performance of the program to degrade once the preview or alt+tab or win+tab has triggered the preview rendering)
Changed a number of internal plug-in calls to avoid hitting the main window proceedure where it makes sense
Changed the Streaming Url Processor to try & better deal with weirdness seen when processing some JSON responses
Changed how the Patreon list on the About WACUP credits tab is handled so it can obtain a newer version without a specific WACUP update (which better matches with the 'About | Updates -> Patrons' preferences tab)
Changed how shuffle is handled to better ensure the first played item after a cleared playlist (e.g. using 'play' in the local library views) will be set as the first item in the shuffle table so it makes more sense when moving forward / backwards
Changed the menus within the skinned preferences window (treeview right-click & close button menus) to intentionally be un-skinned temporarily until the replacement skin support gets menu support
Changed how the updater & new build reporting works so that newer builds will be shown but they won't be automatically downloaded (if enabled to do so) unless the build is marked as suitable (this should resolve false issues reported with new beta builds not showing up via the preferences whilst allowing them to be held back until known to be generally ok for more to install)

Fixed a compatibility issue related to the local library (ml_local) plug-in & how some IPC_HOOK_TITLESW messages are sent which could cause a crash to occur for some
Fixed the probable cause of a library history view updating related crash
Fixed a modern skin loading crash due to a conflict with a patched method
Fixed an issue seen with trying to determine a file types extension that could cause a crash to occur
Fixed a crash seen due to recursively loading a folder returned from a shortcut lnk file
Fixed the prebuffer value for Not So Direct not being correctly read in on loading if it's been changed
Fixed a crash on closing when one of the WACUP output plug-ins with an integrated preference page is the current page when the preferences window is open
Fixed the library history plug-in sometimes trying to handle playback stopping events even if it's set to off via the preferences (a missing logic check)
Fixed some internal path based checks within some of the plug-ins not being as robust as needed
Fixed an issue with the Podcast preferences page that could sometimes prevent the update interval from being changed
Fixed an issue with the artwork resizing api where it might not generate the image at the specified limit & instead always output as a 600x600 image
Fixed the duration of playlist items added into the main playlist editor when dragging a folder onto it being read when not required to be read due to the current playlist title reading settings (e.g. when set to only read them on playback) which should improve the loading time for large folders compared to the prior build & removes some duplicate processing that was going in on the default title reading mode
Fixed the Not So Direct output plug-in sometimes causing a crash on closing if there's been a playback related issue earlier on during the running instance
Fixed the Not So Direct output plug-in not correctly handling higher audio channel counts (e.g. 7.1) & also some weirder arrangements as expected (e.g. when using the Matrix Mixer output plug-in which will likely be added to WACUP in the not too distant future)
Fixed a number of issues reported & seen with the classic skin smooth resizing mode where the window being resized / moved would not snap or snap in an expected manner to the other windows
Fixed Discord Rich Text Presence updates failing if the main title line is generated as a single character string (changes made will not ensure this is at least 2 characters long to work)
Fixed a main playlist editor painting issue where the background for the dead space wouldn't be correctly drawn at specific sizes due to how the area vs number of playlist items is calculated
Fixed issues with processing UTF-8 encoded lyrics data that could cause a crash / hang or gibberish to be displayed
Fixed the internal lyrics api not reporting the correct generated length of the lyrics string to display which could appear as an ellipse / random characters in the lyrics window
Fixed the possible cause of the Streaming Source plug-in causing a deadlock on early starting of the stream whilst the preferences page is currently being viewed
Fixed a number of causes of invalid parameter related crashes from the submitted crash reports
Fixed some of the slowness with scrolling actions with the Lyrics window by resolving a caching issue (more needs to be done as certain artwork & lyrics combinations are still far too slow / use too much CPU on updating the window contents)
Fixed a crash when loading the Streaming Source DSP plug-in if the LAME encoder dll cannot be found (this also adjusts some of the handling so it'll not cause a deadlock when then trying to start the stream)
Fixed the inner contents of the skinned about window not always showing due to not being set to always be visible
Fixed the probable cause of a compatibility issue between some of the visualisation plug-ins & modern skins on loading where the visible / active state of the visualisation plug-in is changed by the skin (still not 100% sure that the changes for this won't break anything else)
Fixed the probable cause of an issue seen with some crash reports where plug-in loading tries to load an invalid instance from the internal plug-in list (still not 100% sure about this as I've not been able to replicate this very occassional issue seen within the crash reports)
Fixed the probable cause of toggling the time remaining & mini-vis modes in the classic skin main window not being correctly preserved across instances
Fixed where possible the random filename generation methods sometimes incorrectly creating an empty .tmp file (e.g. would more likely occur with library playlists)
Fixed the probable cause of the podcasts view sometimes locking up on loading despite earlier attempts to avoid this
Fixed long tooltips in the Podcasts & Download views not being correctly clipped to avoid junk characters after the added ellipse
Fixed some higher bitrate files not starting to be played as expected when using NotSoASIO due to a lower than needed internal buffer
Fixed some more of the reproducible issues when trying to use NotSoASIO which would cause playback failure or crashes (it's still unstable but that seems to be more audio driver related from what I can test)
Fixed the possible cause of a hang on closing seen (likely related to the HTTP POST support & connection issues)
Fixed the close button tooltip on the generic classic skinned windows not being correctly positioned in double-size mode
Fixed the close button tooltip on the classic skinnned video window not being shown when using the non-dedicated window
Fixed a window sizing issue with Milkdrop & some modern skins where the outer window can be resized to be too small which would cause Milkdrop to self-close making it hard to resize the window to show
Fixed DSP & Visualisation plug-ins which have been hard-blocked in the WACUP core still showing as loadable via the respective preferences page
Fixed an occassional issue where M4A / MP4 based files will not always play despite the input plug-in being available & the file does exist
Fixed the 'formatinformation' metadata not being queried correctly with it often showing the generic value instead of the per plug-in details
Fixed a skin loading / changing related crash issue (seen with the rescinded beta build 5984 but might have been going on with older builds)
Fixed trying to set the taskbar text causing a crash when running in a super reduced install where a minimum number of plug-ins are enabled
Fixed some more quirks with the classic skin window snapping for windows snapped on the left & top edges which weren't snapping on the bottom & right edges with other windows
Fixed changing the pinned taskbar icon to use the Winamp icon not showing the correct icon when WACUP is not running (toggling the icon preference option is needed to apply this or re-pin WACUP as needed)
Fixed the library smart view export menu items conflicting with the menu ids of other actions & either causing an attempted smart view export &/or blocking the intended action (a better fix will come when the media library core is replaced with the WACUP provided version)
Fixed the IPC_OPEN_URL handling not working in all scenarios
Fixed an issue seen with some of the ML_IPC_GETTREE calls when the downloads node was set as a child of the podcast node in the library window where the results would stop after the podcast node (not sure how long its been doing this but correctly setting the podcast node to indicate it has children fixes this API response)
Fixed a lock-up that can occur when toggling classic skin double-size mode & WACUP trying to apply the new window position to a generic skinned window that was not created on the main UI thread (e.g. with Milkdrop)
Fixed the reproducible issues with toggling classic skin double-size mode so that all supported skinned windows should now maintain their relative positioning
Fixed the reproducible issues with classic skin window placement going wrong when doing classic -> modern -> close wacup -> modern -> classic (there is likely to be more that need fixing but it generally requires the plug-in to be fixed to avoid saving / restoring invalid window positions)
Fixed the library history view sometimes appearing to show corrupted text due to an issue with the persistence of the strings as part of the internal cache
Fixed issues with %length_seconds% within ATF string not being populated as expected (was a number of issues between the different ways of getting metadata)
Fixed some compatibility issues related to metadata reading not trying to query the input plug-ins if the shared metadata reading service returned no result
Fixed some of the crash on close issues experienced when certain DSP &/or visualisation plug-ins are active (this relates to accessing memory after unload)
Fixed the Streaming Source plug-in crashing on close due to its activity checking thread not being checked for having been correctly stopped before exiting
Fixed the Winamp version number showing on the taskbar button & in Task Manager when initially loaded which makes things look cleaner & more consistent :)
Fixed the Big Clock window not updating as expected to the current playback position or user interactions with the window when playback is currently paused
Fixed the Three Mode Repeat plug-in not correctly loading the PNG version of the repeatone.bmp image file if it exists for showing a more appropriate repeat button when manual advance is also enabled
Fixed Streaming Source title updates sometimes getting incorrectly clipped in a way that can cause DNAS servers to reject the title update
Fixed Streaming Source not setting the currently playing information if WACUP is already playing prior to this plug-in makes a connection
Fixed Intro Play not stopping playback for the last playlist entry if repeat is disabled when there's nothing else expected to be played
Fixed a crash seen when starting playback or querying the %playcount% ATF value with a corrupted library history database
Fixed (by replacing Winamp's handling) using the Numpad+1 / Numpad+3 to go back/forward by 10 playlist entries being slow
Fixed a conflict with TortoiseGit where it would prevent some of the VS2017 runtime files within the WACUP program folder from being removed on uninstall
Fixed a potential crash that could occur during install due to a combination of dll loading order related weirdness
Fixed the classic Nullsoft easter egg not working due to some of the recent changes to handle more of the actions from the Winamp core
Fixed the OpenMPT Decoder preferences not showing the actual gain & stereo separation values (missed when doing a code merge some time back it seems :( )
Fixed the 'Generate HTML playlist' option not trying to automatically open the generated HTML file in the default browser (my IPC_OPEN_URL was incomplete)
Fixed WMA metadata sometimes having the last character incorrectly clipped off due to a prior taglib related change & how the BOM in some strings are used
Fixed the classic skin video window not showing the deactivated state when switching to a generic skinned window that was not created on the main ui thread (e.g. skinned visualisation windows)
Fixed enabling visualisation or DSP plug-ins & then allowing WACUP to restart to enable the plug-ins not then having it as the expected active plug-in (assuming the input selection wasn't then changed)
Fixed a crash related to loading corrupted NDE databases (note: there still be issues & depending on the corruption a large amount of the database may no longer be accessible but this is better than a full process crash & further potential data corruption)
Fixed the probable cause of the remaining message processing stack overflow crashes seen over the 1.0.14 beta builds (which hopefully the fix applied won't break anything else)
Fixed the Discord now playing not always showing the correct status if playback is restored in a paused state
Fixed the Discord now playing mode causing the odd hangs / crashes that have been seen when the feature is enabled due to multiple threads being generated which would then cause a block on the stopping mode (thanks to Dr Flay for trying out things which finally generated crash reports that actually helped to figure out what was going on at last since this has been an issue for some for many months)
Fixed a number of internal issues when attempting to build the WACUP core using the VS2017 compiler including some weirdness with some of the preference entries showing garbled text
Fixed a metadata handling issue with the PSF player plug-in
Fixed the possible cause of some of the weirder modern skin engine related start/stopping deadlock issues seen from the crash reports
Fixed the probable cause of trying to restart a visualisation plug-in too fast causing an error to be thrown or a running visualisation plug-in preventing closing with a modern skin from completing correctly
Fixed a number of cases where I was not cleaning up locally set accelerator tables which could cause a slow memory leak in some specific scenarios if the window related to it wasn't correctly created / destroyed (the fun things you find when trying to replace API interfaces from the inside-out!)
Fixed stopping the current visualisation plug-in sometimes being a lot slower than would be liked (which could appear as modern skins acting a bit oddly for a few seconds) as well as it causing an unnecessary delay on the overall WACUP closing time
Fixed some of the Milkdrop stats output re-querying strings that won't change for a small boost in overall fps
Fixed the probable cause of some hang crashes experienced when playing YouTube videos over an unstable connection & a track change is then attempted but cannot complete
Fixed some more instances of configuration settings being saved when there's been no actual change in the settings (this may help with some Milkdrop window position quirks)
Fixed the probable cause of a deadlock experienced with a ml_ll library import when handling a file using the legacy metadata handling mode whilst also attempting to start playback with a modern skin
Fixed a number of drawing issues with the skinned up/down control (mostly due to weirdness with how the hover state was being handled)
Fixed the classic ml_ipod plug-in not able to load due to a supporting dll failure as a result of a security related feature of WACUP
Fixed an issue with the installer where one of the NSIS plug-ins might not be removed prior to the installer cleaning up after itself (the temp folder would be removed after a restart but this helps to better ensure it'll be removed completely there & then)
Fixed the Milkdrop window when going into fullscreen mode (not when using the fake fullscreen mode) often shows the edge of the window to be used before the rendering has begun
Fixed the current installer not removing older copies of the WACUP installer from it's updates folder (if any exist) from the self-update support (depending on how the installer is run the current installer may still be left in the updates folder)
Fixed the Waveform Wrapper plug-in not correctly handing off some WAV files with MP3 data in them which could cause brief blips in the audio output
Fixed Milkdrop sometimes hanging / going slower a few seconds after WACUP is loaded & the information about the current song is being displayed via the F3 toggle (most probably don't even know that option exists but it helped to more consistently replicate a loading bottle-neck on loading along with the option to show the current frame rate - I now get an almost instant 50-60FPS compared to low 20FPS before)
Fixed the Alt+3 stream info dialog for HTTPS streams handled via the in_mp3 plug-in not showing the current stream information due to a force HTTPS -> HTTP remapping to allow the in_mp3 to even work
Fixed the replacement local library plug-in not correctly handling importing some files where some of the basic expected metadata is missing which would incorrectly cause the basic guessing to be used
Fixed some of the initial slowness on loading when the classic artwork window is enabled (there's still a lot more to do related to this in general as the Winamp core drawing the main window is now hindering things but this change helps a bit at least to my eyes with a fully loaded classic skin)
Fixed the preference options on the library nodes not always working or opening to the wrong item
Fixed a compatibility issue with some older plug-ins that use the IPC_FORMAT_TITLE api (e.g. ml_dlna)
Fixed a crash with the Streaming Source plug-in when trying to process a really long playlist file path
Fixed some slowness with the initial loading of the library playlists view as well as it not auto-scrolling the selected playlist into view
Fixed the internet radio view list flickering when any form of resizing is being done to the view (a side effect of how the tree was drawn)
Fixed the second information line on the discord status sometimes showing gibberish
Fixed 'bitrate' not being correctly returned via ATF / local library imports due to a typo causing the fallback mode to be used (i.e. guesses based on the file size)
Fixed some cases of newly added items into the replacement media library not always triggering an appropriate local library view update to allow those items to be seen without manually refreshing the view
Fixed some PSF sets failing to load with the WACUP provided decoder plug-in due to some issues when the plug-in was being re-compiled & ported to build under a newer compiler to the original plug-in
Fixed converting a high bitrate / samplerate file from FLAC to OGG Vorbis generating an incomplete / broken output file (silly issue from not having a large enough temporary working buffer to use)
Fixed the format converter not always handling some encoding errors as expected causing it to remain in the processing loop
Fixed WAV files other than 16-bit not always being reported correctly via the transcoding api (is likely there's more issues with the likes of 24-bit & higher that needs to be resolved in later builds)
Fixed a number of issues with the Opus encoder so it'll now better deal with different input bit depths vs what it wants to use natively which reduces the chances of a file conversion to Opus failing
Fixed the probable cause of the Milkdrop plug-in sometimes not seeming to re-use it's prior settings on loading due to a contention access issue with the settings cache (hopefully this won't break anything else)
Fixed some quirks with the taskbar / process title text not being set as expected when the main playlist editor is empty or when scrolling is not enabled with the ' *** ' part being incorrectly added
Fixed some visual issues with the podcasts library view depending on the skinning engine & other aspects
Fixed the restoring of the shuffle table between sessions not working due to lessening the requirements on using the Winamp core & some of the hook methods that were being used now no longer get run
Fixed saving the shuffle table between sessions not correctly truncating the file (this didn't affect the behaviour but could cause the file to potentially keep growing in size depending on the maximume main playlist editor size reached)
Fixed some sizing / display issues with the about dialog when first opened (some of these issues may still occur when the skinned version is being used)
Fixed some of the modern skin information being incorrectly clipped in the 'Skins' information panel
Fixed a slow closing of WACUP if the Internet Radio view is the current library view as well as making switching to other library views not take so long
Fixed the select search (F6) & forced view refresh (F8) actions not working in the Internet Radio view
Fixed a number of causes for random crashes when loading & unloading the podcast library view when the info pane was enabled (numerous things going on including optimisations that are no longer required)
Fixed a layout issue with the channel list when the info pane is disabled for the podcast library view
Fixed the unresponsive prompt sometimes appearing when it should not have been shown
Fixed the installer not ensuring a 'Skins' folder is always created even if none of the modern skins WACUP offers were selected to be installed (this could cause issues elsewhere or when the user wants to install their own skins later on)
Fixed the second stage of setup on a first install of WACUP incorrectly showing the skin selection dialog if none of the modern skins were selected to be installed
Fixed the history plug-in not handling pausing & then resuming playback which could then cause an item to be counted as a new play depending on the mode settings
Fixed the replacement local library plug-in sometimes double incrementing the playcount provided from the history plug-in
Fixed a visual glitch when drawing the dead area of the playlist editor under a modern skin when holding down the scrollbar thumb bar & continuing to trigger a scrolling action (also changed to cache the brush used for drawing for a small performance optimisation)
Fixed a number of visual & performance issues with the initial loading of the Podcast view in particular with a larger number of feeds to load & when using a modern skin (e.g. text fonts randomly changing)
Fixed the shuffle restore mode not appearing to work due to a conflict with the Time Restore & Autoplay plug-in by default triggering a shuffle table re-init on loading (the option has now been removed from the plug-in to avoid this issue & the reason for the option being added to the plug-in no longer exists so bye bye it goes)
Fixed the taskbar preview showing a loading icon when not using the Win7Shell implementation (if Win7Shell is disabled then there's no action buttons & under a modern skin it's luck of the draw as to which window that Windows will automatically pick to use for the preview)
Fixed the podcast library view info pane going missing when restoring into view a minimised WACUP instance (this is a temporary fix as this shouldn't need a workaround to ensure it'll be seen)
Fixed the first Audio CD drive found being used to provide the library view for all other reported Audio CD drives (oops)
Fixed a locking issue that could hinder the Audio CD library view being loaded whilst trying to view / start playing a track in the main playlist
Fixed a number of random crashes related to the Artwork & Lyrics plug-ins not liking some of the weirdness seen when working on Audio CD support
Fixed the probable cause of the video window renderer not always appearing on screen & causing a blank / see-through region to appear in the window
Fixed a crash due to the Nullsoft MIDI input plug-in incorrectly being called for HTTP streams at times & it trying to download the 'file' & that never completing
Fixed the probable cause of a crash (unless it doesn't due to the Modern skin engine breaking other things) seen when switching from modern skins back to classics
Fixed the Crystal Classic Skins plug-in not always catching the native nor some of the generically skinned window due to some aspects running faster than expected
Fixed a crash due to a mismatch in the version of the memory manager service being used between plug-ins & the WACUP core & remaining parts of Winamp still in use
Fixed the probable cause of when changing between modern & classic skins the media library window ends up somewhere offscreen & becomes a hassle to get it back :(
Fixed the Twitter preference page not starting the authentication process correctly when first displayed due to an internal validation issue with port 80 proxying
Fixed some aspects related to the taskbar jumplist when the Win7Shell based implementation is enabled being run when the option to populate recently played is disabled
Fixed more cases of the Media Library window position being set as offscreen as well as adding in some additional handling to better ensure it'll be set back on screen when restarting WACUP (hopefully)
Fixed the probable cause of some podcast downloads being incorrectly marked as incomplete when they do match with what was meant to have been downloaded (the joys of multi-threading & file access locks)
Fixed the installer not always detecting customised settings folder paths
Fixed a deadlock caused by the Nullsoft MPEG Audio Decoder when starting streaming
Fixed a clipping issue on the Discord preferences page due to controls overlapping
Fixed visualisation plug-ins directly started not following the plug-in loading controls
Fixed the probable handling issues that could cause the built-in crash reporter to fail to complete depending on the severity & type of crash issue experienced
Fixed (with confirmation this time) the Discord Rich Presence updates not working correctly (this could explain some of the weirdness in update failures that's been reported but not previously able to be replicated since the feature was added for some users)
Fixed a crash view the Shuffle diagnostics preference tab at times
Fixed the updates folder not always being correctly created which could then cause preference based update actions to fail (manually running this installer or newer will resolve this issue)
Fixed the probable cause of some crashes related to using the legacy IPC_GET_BASIC_FILE_INFO api from older non-unicode compliant plug-ins
Fixed the installer not correctly dealing with trying to install over an existing Winamp install & causing a failure when the default folder is then attempted within that installation attempt
Fixed a number of crashes seen on load & on close when running under an older debugger due to how it's initialising the memory
Fixed a debug message left enabled related to skin / language pack handling testing
Fixed the add/open folder feature in the main parts of WACUP not restoring the last selected folder between use which should help improve usability (this was reported in relation to improving things for blind users)
Fixed the generically skinned windows under a classic skin not being able to be resized as expected or having their window frame drawn incorrectly after having moved the window partially off screen
Fixed the waveform seeker window tooltip not being skinned
Fixed changing the install type to portable during an in-WACUP triggered update (e.g. via the preferences page) ignoring the current install folder & instead using the default portable install folder
Fixed the probable cause of some portables related actions crashing when the input data from the calling plug-in (likely ml_pmp) is incomplete / invalid

Other small changes whilst trying to take over more of the Winamp APIs to be handled by WACUP as well as adjustments to the WACUP build process to save me some time when doing releases as well as code clean-up & reducing code duplication as things become a bit more refined :)

Updated brotli (libcurl.dll) to 1.0.9 (27 Aug 2020)
Updated cacert.pem to latest (8 Dec 2020)
Updated discord-rpc (gen_yule.dll) to latest community updates to try to resolve some hang issues occuring with it
Updated installer to be built with NSIS 3.06.1 (31 Jul 2020) which marks the 20th anniversary of NSIS!
Updated LAME (lame_enc.dll) to 3.100.2.4 (25 Aug 2020) for a 51KB size reduction due to it now using mpg123 for certain features
Updated libcurl (libcurl.dll) to 7.74.0 (9 Dec 2020)
Updated libexpat (xml.w5s) to 2.2.10 (3 Oct 2020)
Updated libjpeg-turbo (image.w5s) to 2.0.6 (16 Nov 2020)
Updated libnghttp2 (libcurl.dll) to 1.42.0 (23 Nov 2020)
Updated libopenmpt (in_mod.dll) to 0.5.4.13932 (29 Nov 2020)
Updated libsidplayfp (in_sidious.dll) to 2.0.4 (1 Oct 2020)
Updated libsndfile (libsndfile.dll) to 1.0.30 (19 Sep 2020)
Updated minizip (zlib.dll) to 2.10.5 (14 Dec 2020)
Updated mpg123 (mpg123.dll) to 1.26.3 (17 Jul 2020)
Updated Monkey's Audio (in_ape.dll) to 5.69 (9 Dec 2020)
Updated OpenSSL (libcurl.dll) to 1.1.1i (8 Dec 2020)
Updated Patreon list (23 Dec 2020)
Updated plug-in descriptions list (also helps inform about running the vis_mux.dll
Updated pugixml to 1.11.2 (15 Dec 2020)
Updated the bundled VS2017 UCRT for older Windows releases
Updated the relevant copyright dates for 2021
Updated unrar (unrar.dll) to 6.0.1 (22 Oct 2020)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 20 Dec 2020
Updated zlib-ng (zlib.dll) to latest re-based update (23 Nov 2020)


Preview Version: 1.0.13.5864
Released: 23 July 2020

Added a new initial view for the replacement Local Library plug-in (ml_ll.dll) to make it easier to get media added into it from a legacy local libary database or the main playlist or a folder along with making it easier to disable the plug-in (or the whole media library) if required if you really don't want / need it & just kept clicking next when installing WACUP :)
Added a Lyrics window (via the gen_lyric.dll plug-in so you can easily disable this!) which initially will show lyrics from embedded, LRC or TXT files from the current file but will hopefully be able to do online lookup for lyrics later on (this plug-in & internal changes will need more work as well as I need more example lyric files to ensure I'm supporting all of the types out there correctly)
Added a basic 'Lyrics' tab on the Alt+3 File Info dialog to display (if found) the raw lyrics (embedded / LRC / txt) though more will be done as the features are expanded
Added an initial updated build of the official Musepack plug-in based on the r495 revision (SV7 & SV8 support along with basic transcoding support)
Added an initial updated build of the Highly Experimental PSF Player plug-in (in_psf.dll) based on the v2.0.8 source code from Neill Corlett for Playstation Sound Format (PSF / PSF2) playback support which improves integration with WACUP (e.g. transcoding support & using the common alt+3 dialog instead of it's own)
Added reading of embedded artwork from Musepack files to the shared metadata service (as the compatible input plug-ins don't support this anyway)
Added additional checks when WACUP is started to try to better deal with broken / incomplete installs (e.g. 5.666 installed over WACUP or 3rd party plug-ins replacing required dlls)
Added a new option on the Podcast preferences page to allow for updating the basic metadata tags with the podcast feed information always instead of only if it's found to be missing (too many podcasts don't actually tag their files correctly which is why this option has been added as a means to help with the metadata quality before the newly downloaded podcast files are added into the local library database)
Added the time taken to load the main config file & main playlist editor file into the profiling options when enabled (this might be interesting to some but was mainly to help determine a slow config / playlist loading issue seen)
Added some additional responses for IPC_GET_HMENU API related to the bookmarks submenus to help reduce the code needed by the Library Bookmarks plug-in
Added the ability to open the preferences window when clicking on the main window logo (e.g. lightning bolt) in addition to the prior behaviour
Added initial support for retrieving & displaying artwork for Audio CDs subject to getting a match from the Cover Art Archive (other options will be looked into along with support for local files)
Added a temporary workaround for allowing basic playback of incorrectly named Opus files with an OGG file extension when a 3rd party Opus input plug-in already exists (this will mean some playlist entries don't display the appropriate title information but that's more a limitation with trying to force an input plug-in to do something it wasn't coded to cope with)
Added a 'Add' button to the replacement local library (ml_ll) views so it's more obvious some of the means to get additional media added into the local library from feedback
Added a 'Save as' button to the replacement local library (ml_ll) views so it's possible to save the current viewed smart view results to (for the moment) a playlist file
Added a 'Send to' button to the replacement local library (ml_ll) views to complement the style of the library playlists view & to make accessing the send to action easier
Added an 'auto' mode to Milkdrop for the Fullscreen & Windowed/Embedded handling so the window when put into fullscreen &/or created will work against the current monitor the Milkdrop window is found on (e.g. running in windowed mode on a second monitor & double-clicking it to go into Fullscreen mode will run it on the second monitor instead of the default of going to the primary monitor unless you've manually told the plug-in via the plug-in preferences to use the second monitor)
Added a new option to the 'Now Playing' logging so the currently found artwork (if available) can be saved to a specified file for external tools to make use off in addition to the existing metadata to file logging
Added a new option on the Classic Skin preferences page to allow for always using a skinned font in the playlist editor status area if the option to use a skinned font is enabled (this effectively emulates the 5.666 & earlier behaviour which may be better for some classic skins vs how it might look with the non-skinned font handling that WACUP implements)
Added a %playlist_length% to the additional ATF values recognised by the custom Taskbar Text ATF handling

Changed a lot of the internal workings of the library History plug-in to better deal with the stability issues some have been experiencing with it
Changed how generic archives (ZIP, RAR & 7Z) are handled by the playlist manager core to be ignored from expanasion if the Archive Playback input plug-in is disabled (this should make it easier to prevent such files from being added to the local library or the main playlist editor when not wanted by simply disabling the input plug-in if it's been installed)
Changed how the Library History plug-in deals with tracking of playback in relation to seeking changes which should improve the playback tracking reliability when using the percentage / end of file modes
Changed the way forced titles updates in the main playlist editor are done to try to minise the risk of the OS deciding the process has stopped responding on long running updates (e.g. ATF formatting string changes or refreshing selected items)
Changed the NDE (Nullsoft Database Engine) dll provided to now be a VS2017 compile which based on testing provides a reduction in query times (how much & whether its noticeable depends on the size of the database & the complexity of the query being run)
Changed how updating the playcount information from the Library History plug-in when using the replacement Local Library plug-in (ml_ll.dll) to be done asynchronously to avoid some ui hangs (subject to the skin & the size of the local library database to be updated)
Changed how newly downloaded (or recently found) podcasts are added when using the replacement Local Library plug-in (ml_ll.dll) to be done asynchronously to avoid some ui hangs (similar to the aim of the above change)
Changed how newly downloaded podcasts are processed for metadata updating (if configured to do so) to be done asynchronously to avoid some ui hangs (similar to the aim of the above change)
Changed some of the loading handling to remove some of the existing hooking to instead do more directly (this is part of the general transition work from using the Winamp core over to just the WACUP core)
Changed how the main playlist editor file (winamp.m3u8/m3u) is processed on start-up to deal with an odd issue of it trying to parse a streaming url playlist that's the actual stream url to be played (attention to detail is not a thing a lot of stream broadcasts sadly have) that was causing up to a 6 second delay for the rest of WACUP to continue to load (the fix drops it down to ~2ms for my test setup)
Changed the majority of the Audio CD playback handling to only be done by the input plug-in instead of a mis-match between the Winamp & WACUP cores (this makes things cleaner in that not installing / disabling the Audio CD input plug-in does entirely remove any related code from being run)
Changed the MP3 encoder plug-in to now show the LAME patch revision (e.g. 3.100.2 instead of the main version as just 3.100)
Changed the option for clicking on the main window logo to toggle the media library window to now be on the General preferences page instead of being on the Media Library preferences page (this is related to the addition of that action now allowing for the preferences window to be opened)
Changed the internet related options on the General preferences page to now be provided on their own Internet preferences page
Changed the wording on the Discord preferences page header to better reflect what is now needed instead of the older information
Changed 'Read extended info on selection' to now be 'Rebuild titles on selection' in the main playlist editor which matches the Library Playlists & better conveys what is actually being done
Changed a number of ways that the Library Podcasts plug-in works to better minimise the potential for it to cause ui hangs & to reduce the amount of disk related access it might do (helpful with media stored on slower / remote drives)
Changed how the main playlist is restored between sessions to reduce the impact of some internal processing overhead (e.g. a test 58K entry playlist of various formats went from 1.5s down to 170ms to be fully loaded)
Changed the SID (Commodore 64) file handled when sub-songs are present to now be done as though the SID file is a playlist instead of waiting for the plug-in to manually add them when viewed / played (this might irk some but it makes the loading experience much cleaner & the sub-songs will actually be created in the correct position within the playlist instead of often appearing at the start of the playlist which isn't correct)
Changed the information area in the classic skin playlist editor window to not clip the text shown as much when using a normal font compared to the fixed size when using the skinned font
Changed some aspects of how the Podcast plug-in works to reduce when the background timers it uses for updating the naviagation tree icons related to it to only be done when actually needed
Changed some of the dll delay load handling to be done via a shared method to make sure things are more consistently done & it also saves a few KB off the total install size (it helps, heh)
Changed the SNESAmp Wrapper plug-in filename to avoid some of the SNESAmp plug-in installers removing it & making it look like a failed SNESAmp install
Changed how metadata is handled with the Classic Album Art window to reduce duplication of metadata calls to make it update a bit quicker vs beforehand
Changed the Alt+3 File Info dialog initial focus to be the filepath field instead of random parts of the dialog (it also pre-selects all of the text to make it easier to quickly copy it)
Changed some of the handling related to the media library core in preparation for the replacement plug-in
Changed the Milkdrop window handling when focused to now follow the global spacebar handling when set to toggle play / pause instead of it picking a different preset (using any keyboard modifier with the spacebar when the Milkdrop window is focused will still allow for the old behaviour)
Changed Milkdrop to only save out values that are different from the default values to keep milk2.ini cleaner
Changed how custom / dynamically added preference pages are handled so that the majority of the known WACUP ones are now given a pre-defined id which resolves some issues seen with the wrong page being re-selected between sessions (this shouldn't cause any issues for 3rd party plug-ins as the allocation of the id was always subject to what the core decided it was going to do)

Fixed the placement of some of the buttons on the add / edit smart view dialog of the replacement local library plug-in
Fixed the create / save button on the add / edit smart view dialog of the replacement local library plug-in not being disabled if a preset name hasn't been specified
Fixed the currently playing item not always being shown in the appropriate state within the library history view after changing the view when playback is not running
Fixed the Classic Spectrum Analyzer visualisation crashing when using the random preset action if no preset files could be located
Fixed toggling sections in the installer (especially with multiple changes) causing the reported install size to drop to zero & wrap around to being negative (i.e. showing as ~4GB)
Fixed the cause of the playback offset of some files not being tracked correctly with the Library History plug-in
Fixed the cause of leaving the Libary History view open when either corrupting some of the displayed data (the stored history was correct) &/or it causing the program to crash
Fixed reading / saving custom ATF strings for the main playlist editor not being correctly handled in all scenarios
Fixed (finally) the incompatibility between WACUP's NDE implementation & what the local library plug-in (ml_local.dll) expects that could cause some views / queries to crash (needed to allow the creation of null strings to keep it happy despite the plug-in not handling such things correctly to start with!)
Fixed some ID3v2.x tag reading issues related to less common string encoding
Fixed a crash seen when trying to load WACUP as part of a messed up install (e.g. 5.666 installed over WACUP) in some checking used to avoid issues relate to the skinned preferences handling
Fixed setting the year on newly downloaded podcasts (if configured to do so) not always handling the case of the feed not providing a published date (it now sets it to the current year if not provided)
Fixed a crash on start-up when older versions of the AdPlug (in_adlib.dll) plug-in is present (this is due to a conflict with the Winamp core trying to determine CD playback support that older versions of the plug-in doesn't correctly handle - newer versions of AdPlug don't fail & this is another plug-in that might be added to WACUP)
Fixed the agent right-click menu showing 'no playlists found' in some cases despite library playlists having been found & added into the menu
Fixed a crash when trying to play an Audio CD via the main right-click play submenu (was due to an incomplete replacement of the handling from the Winamp core which is now done all by the Audio CD plug-in)
Fixed Audio CD titles not always refreshing along with some other 'virtual' playlist entries by changing how they are treated to better ensure metadata will be queried if it possibly exists
Fixed the 'rebuild titles on selection' option in the main playlist editor not always only working on the current selection
Fixed a potential failure / crash when retrieving metadata from Audio CDs
Fixed the Library Podcasts plug-in causing other parts of WACUP to occassionally hang when it's processing a podcast feed & the Library navigation tree icon for the view is being updated (oops)
Fixed skins with extended characters in their name not being handled correctly which could cause them to fail to load after restarting the WACUP process
Fixed some other potential issues when using extended characters with some of the configuration settings
Fixed some actions causing the main playlist editor window to be redrawn when there's no obvious change which could cause flickering
Fixed some issues seen when trying to load a playlist that is invalid (i.e. no entries) but it triggers some of the actions (e.g. trying to play the first file) when it shouldn't
Fixed the settings for the SID Player (in_sidious.dll) input plug-in not being correct read / saved (which is definitely needed if you're trying to use the songlengths.txt from HVSC)
Fixed some podcasts being downloaded but having the wrong file extension applied to them which could cause them to fail to be played
Fixed the focus not being set on the edit box when opening the add/edit podcast feed dialog
Fixed the library podcast view not completing the drag+drop handling from its lists to other parts of WACUP (e.g. main playlist / local library)
Fixed some quirks with how the menu items from some of the plug-ins are added onto the Library button menu due to load time variations
Fixed how titles of files added from a parsed folder into the main playlist editor are handled when the option to only read titles on playback is enabled (not a default behaviour) to just be the filename (this doesn't run the ATF processing on the added entries & is done to better replicate the behaviour seen under Winamp 5.666 & earlier when using this title reading mode)
Fixed some issues related to DPI scaling changes & moving windows between monitors with different scaling settings (this might cause some minor regressions but it should prevent some of the main WACUP windows going all wonky until more is done with the core handling of the windows & being able to at least for classic skins scale to more than just normal or double-sized)
Fixed the Exclude Playback window not always sizing the status bar area of it's window correctly based on the currently used skin font
Fixed some of the weirdness seen when changing the size of the playlist editor font if its also set to be used by other plug-ins including the media library (the replacement media library core plug-in will further resolve this issue along with some plug-in specific changes to better handle often fast skinning updates that can with the older media library core cause it to provide an invalid font to use)
Fixed the folder to save podcast downloads into not always being created at the expected time which could cause seemingly odd download failures
Fixed the 'Window Settings' submenu not being correctly provided via the IPC_GET_HMENU API
Fixed the probable cause of some general plug-in loading related crash issues
Fixed the installer not always removing plug-ins that have been un-checked during install
Fixed the first supported file within a folder sometimes not being provided to a provided callback method when using the playlist manager directory loader (e.g. missing the first file from a folder added to ml_ll)
Fixed some library search strings with incomplete quotes causing a crash due to incorrect string length validation within the NDE parser
Fixed some slowness found with the loading of NDE databases to provide a small redecution in loading times (is around 5% on my dev install)
Fixed the async albumart api sometimes failing valid requests (this showed up during the development of the Lyrics plug-in so shouldn't have been seen with prior WACUP builds)
Fixed the albumart cache not returning expected results for size limited requests if width & height of the cached image is not matching
Fixed the probable cause of a crash during initial loading of the podcasts view when a podcast feeds update is already in progress (still not 100% on this change but it's better than doing nothing)
Fixed a drawing issue with the selected/total area on classic skins where it wasn't completely filling in the area with background element which for some skins looked wrong due to using a different colour
Fixed genre strings like "(33)Instrumental" of "(12") not being correctly parsed to the actual genre string (one of those ID3 tagging quirks I definitely wasn't aware off)
Fixed the grouped enqueue & play button sometimes not being shown in the correct state (with it instead defaulting to the play state) due to some inconsistency with the media library api being used
Fixed the podcast feed items not always being shown for the podcast feed in the list when the podcasts view is loaded (this would most often affect the first podcast feed in the list of feeds)
Fixed the probable cause of random display corruption in some of the library lists (e.g. history or replacement local library) related to some of the strings to be shown
Fixed youtu.be urls not being handled as expected
Fixed the custom Taskbar Text ATF string being saved with quotes around it which could keep re-adding the quotes on each time a change is made (this may require manually removing the unwanted quotes added to get it to use the string wanted if the issue was experienced)
Fixed the probable cause of no playback with media formats handled via in_vgmstream & using the Not So YASAPI output plug-in
Fixed some drawing issues with the playlist editor scrollbar when using a modern skin (parts not being drawn or overlapping incorrectly such as when using wider than normally seen scrollbar elements)

Updated giflib (image.w5s) to 5.2.1 (24 Jun 2019)
Updated LAME (lame_enc.dll) to 3.100.2.2 (8 May 2020) for a minor speed improvement
Updated libcurl (libcurl.dll) to 7.71.1 (1 Jul 2020)
Updated libnghttp2 (libcurl.dll) to 1.41.0 (2 Jun 2020)
Updated libopenmpt (in_mod.dll) to 0.5.0.12905 (24 May 2020)
Updated libvorbis (libvorbis.dll) to 1.3.7 (4 Jul 2020)
Updated minizip (zlib.dll) to 2.10.0 (25 Jun 2020)
Updated Monkey's Audio (in_ape.dll) to 5.47 (30 Jun 2020)
Updated mpg123 (mpg123.dll) to 1.26.2 (5 Jul 2020)
Updated Patreon list
Updated rapidjson to latest re-based update (23 Jun 2020)
Updated unrar (unrar.dll) to 5.91.1 (4 Jun 2020)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 21 Jul 2020
Updated WavPack (in_wv.dll) to 5.3.2 (20 Jun 2020)
Updated zlib-ng (zlib.dll) to latest re-based update (14 Jul 2020)


Preview Version: 1.0.12.5586
Released: 21 May 2020

Everything that was done as part of build 5572 which this build is effectively a hot patch build to resolve some immediate issues

Changed the wording related to the classic skin skinned font preferences option & the alternate font option below it to make things hopefully clearer based on feedback received

Fixed ATF (Advanced Title Formatting) not working correctly on main playlist items (this was most noticeable if using a custom ATF string)
Fixed the easymove main menu item not showing the correct state if disabled
Fixed crashes related to in_cue.dll by preventing it from being loaded as it's not compatible with a number of input plug-in API changes (sorry to the user that's trying to use it)
Fixed a crash seen with some setups when loading with the Crystal Classic Skins (gen_classic.dll) plug-in enabled
Fixed the classic skin albumart window not showing the expected artwork or anything at all if its been closed (either on loading or during the running instance) & is then restored
Fixed a crash when viewing the File Information (Alt+3) dialog on urls handled by the Streaming Url Processor (in_url.dll) plug-in
Fixed the artwork handling for URLs not correctly allowing embedded requests to be actioned before then correctly failing / using the fallback artwork image
Fixed MP4 video playback being jittery due to the input plug-in used causing the video window to be force refreshed when not required
Fixed editing separator:// entries in the main playlist editor not always updating the playlist item due to a WACUP incompatibility
Fixed the probable cause of the NotSoDirect output plug-in sometimes hanging on unloading
Fixed some of the causes of NotSoASIO crashing however the main offender (the resampler) has been temporarily disabled to avoid it being used & causing more crash reports (sorry)


Preview Version: 1.0.12.5572
Released: 19 May 2020

Changed the loading of the main playlist editor to better handle obviously invalid playlist items to minimise loading time impacts they might cause elsewhere
Changed the missing files highlighter (if the option is enabled) to use some quicker checks for the more obvious invalid playist items that might be found
Changed the video window when in it's using the generic skinning option under classic skins to allow it to be re-sized like the other generic skinned window
Changed the Milkdrop plug-in handling for some of it's errors to minimise it causing a UI lock-up until responding to it
Changed how loading of the specific WACUP output plug-ins responsible for the integrated preference pages is done to not keep them loaded if not viewing the root output plug-in preferences page or starting playback
Changed the explore item folder / find file on disk modes using the ExplorerFindFile API to work with applicable separator:// items & SID sub-songs where a filename is part of the playlist entry
Changed the View File Info dialog to not provide the 'Raw Metadata' tab when the playlist item doesn't relate to a real file item that metadata can be attempted to read from
Changed the crash reporter to attempt to report how long the WACUP instance has been running for (this is to help better determine crashes early on during loading or from long running instances)
Changed the /CONFIG, /INIDIR & /M3UDIR command-line options to be fully handled by WACUP & not the Winamp core which makes it now possible to correctly use relative file paths along with evironment variables
Changed the Shift / Ctrl + Home / End handling in the main playlist editor to better match how the Windows listview controls work in selecting all from the existing selection point in the appropriate direction (when using Shift) or just scrolling the top / bottom of the playlist into view (when using Ctrl)
Changed how artwork is read from WavPack & Monkey's Audio files to now be done via the shared metadata service instead of the input plug-ins which wasn't working well with the general push to handle artwork asynchronously to minimise blocking

Fixed the generic classic skinned window frames not always maintaining their minimum widths & heights (Windows messaging fun)
Fixed the probable cause of a crash with the JTFE plug-in when running in the Homeseer related live queue saving mode
Fixed a crash when trying to load the Win10Shell plug-in if the required .NET version cannot be determined (the installer was also doing checks for this but without this check it could break portable installs being moved around different machines)
Fixed the crash reporter incorrectly detecting some Windows 8.1 setups (compatibility mode appears to have been enabled in a few instances which breaks the Windows version reporting in the crash reporter)
Fixed the modern skin provided options menus not working in all cases due to internal menu id range conflicts with the library views & library playlist menus
Fixed an issue with old modern skins (I know it sounds odd) using interlaced PNG not being correctly displayed (this related to a change in build 5484 that didn't quite work as expected but this now fixes both issues)
Fixed some issues with longer than MAX_PATH (260 character) filepaths due to incomplete paths being passed to the input plug-ins or the plug-in incorrectly clipping it (there's a lot more needing to be done on these sorts of issues)
Fixed some long / invalid / missing filepaths getting replaced with just a backslash instead of being kept as the original filepath value (was due to not checking OS return values)
Fixed the library playlist view sometimes locking up due to some internal processing issues when trying to determine if the displayed file exists or not
Fixed the probable cause of some crashes seen due to accessing the artwork cache
Fixed some odder crashes seen when the IPC_GET_EXTENDED_FILE_INFOW_HOOKABLE API is invoked
Fixed some odder crashes seen when the IPC_GET_BASIC_FILE_INFO API is incorrectly invoked
Fixed a saving issue with the Add/Open Url dialog with some extended character sets
Fixed a small memory leak with the library playlists missing file checking with zip:// entries
Fixed a corruption of missing playlist item(s) added into the main playlist editor when the missing file highlighter is enabled & the playlist item has additional data / parameters after the file extension (e.g. with extended GBS playlist items)
Fixed some compatibility issues with the handling of extended GBS playlist items which could either cause a crash or the matching to find the appropriate input plug-in would fail
Fixed some compatibility issues with the return value of methods providing strings to help reduce a number of potential crash issues & the trigger for some actually seen crashes
Fixed a crash with the Waveform Seeker plug-in trying incorrectly to use in_vorbis.dll in the legacy processing mode when trying to use it had already failed
Fixed ReplayGain not being able to be calculated on files which don't already have it (bug introduced in build 5484 due to an unwanted copy + paste change for a different set of issues)
Fixed a crash seen by some & other related issues when adding items into the main playlist editor inbetween existing playlist items or at the end of the playlist list (coding is fun, eh?)
Fixed a crash when trying to load the deprecated ml_enqplay.dll plug-in as most of WACUP library plug-ins support this feature natively so the old plug-in is not needed (there's really no need for people to be trying to install the old Winamp Essentials Packs as the majority of the plug-ins from it are present with WACUP but in newer / fixed / directly integrated forms)
Fixed an issue with how triggering the previous button multiple times (user action or via the internal APIs) followed by the next button could cause incorrect titles to show on playback or not advancing as expected
Fixed the NotSoDirect output device selection not being correctly saved due to an internal code issue along with a conflict related to the settings cache when saving out struct based values
Fixed some typos in the preferences & text alignment issue in the /? command-line help
Fixed a crash when trying to load old versions of the gen_ml library plug-in (e.g. one user somehow managed to make a setup that was trying to load a version of the plug-in from 2004 - it obviously crashed!)
Fixed some of the more obvious issues with playlist items not being updated in an expected manner when reading in / needing to update their titles (is still more to do on this but it's a start)
Fixed (hopefully) an issue with PSF/PSF2 & title reading from older non-ATF compatible plug-ins not working correctly with some of the recent WACUP builds whilst trying to take over from the Winamp core on such matters
Fixed an issue where PSF files would be incorrectly handled by th vgmstream plug-in when the dedicated Highly Experimental (PSF Player) plug-in is also present (more will be done later to remove the need for a specific fix for this issue)
Fixed using shift + up in the main playlist editor not always selecting the first item in the playlist when it's the item reached
Fixed the Win10Shell plug-in not getting the paused playing state changes correctly which could cause play / pause actions to not work as expected
Fixed the titles of playing zip:// entries not being correctly updated to that of the extracted file being played due to not updating an internal API handling change
Fixed the View File Info dialog not showing anything in the 'Raw Metadata' tab for a currently playing zip:// (where retrieving that information is supported for the real file)
Fixed on the classic skin prefs page toggling the option to use the skin or normal font not enabling / disabling the alternate font option
Fixed a crash seen when trying to play a vgmstream related file which adds numerous new playlist entries into the main playlist on playback which was causing the missing files highlighter to throw a wobbly
Fixed the portable device plug-in & the related devices plug-ins not having custom descriptions shown for them in the plug-in preference lists
Fixed a number of issues related to the in_sidious / in_sidplay2 sub-song playlist entry format which was causing valid files to be marked as missing (more needs to be done to improve how this is done)
Fixed the probable cause of some crashes seen when using the NotSoDirect output plug-in & trying to play mainly FLAC files
Fixed the clasic skin album art window flickering when changing the selection or when a new item is being played & under a few other scenarios
Fixed the classic skin main window not showing when starting WACUP using the Visual Studio 2017 debugger due to it setting the initial window state to be hidden which WACUP (& the Winamp core) were obeying
Fixed the option in the replacement local library plug-in to ignore the 'The' within the view filters not being applied correctly in all of the view filters
Fixed the specical handling of the 'T' artist index in the replacement local library plug-in not correctly handling artists with the second word starting with a T (e.g. 'The The') causing the results in view filters & filter results to be lower than was correctly being reported for the 'T' artist index item
Fixed (hopefully) the intermittent crashes seen by some related to trying to get artwork from the currently playing WavPack file (this is relatd to changing how artwork is retrieved from these files in this build)
Fixed (hopefully) a number of issues when trying to use the NotSoASIO output plug-in from it not reacting to driver failures which were causing WACUP to lock-up & then crash to not working with the Realtek ASIO device (e.g. it might play a track & then stop & not play a file until the second attempt) as well as disabling the gapless playback mode since that is broken & was causing a number of the stability issues seen
Other small changes whilst trying to resolve the potential causes of some of the crash issues seen which are not fully confirmed to be noted above

Updated Patreon list
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 17 May 2020


Preview Version: 1.0.12.5500
Released: 6 May 2020

Added an option on the Taskbar preferences page to control whether WACUP is hidden from the taskbar or not when minimised (this has been defaulted to on to replicate the Winamp behaviour for this action)
Added a workaround to deal with crashes seen by the WaveOut Output plug-in (out_wave.dll)
Added a specific sort by duration action to the main playlist editor & library playlist views
Added a specific mode on the Visualisation preferences page to disable visualisation loading (this is like the equivalent mode on the DSP/Effect preferences page)
Added an option for the Discord support to automatically disable it when playback has stopped (this can allow other programs to update your Discord Rich Text without also having to close WACUP)
Added %wacup_version% as an always available ATF variable (e.g. this might be useful for the HTTP posting actions or any other related logging that might be done via Yule Log, etc)
Added an option on the Advanced preferences page to show the plug-in lists in the classic single line style instead of the default multi-line description style (this is for those that don't like or need the newer default plug-in list style)
Added IPC_HAS_METADATA_READ_SUPPORT & IPC_HAS_METADATA_WRITE_SUPPORT helper messages to quickly determine if the input plug-in responsible for a file type has the extended metadata api support for read / write
Added the 'Artist Index' filter option (which groups the filter results by the first letter of the artist) to the replacement local library plug-in (ml_ll.dll) based on forum feedback (if this works ok from testing then other variants of this index may be added e.g. album artist, genre, etc)
Added some additional resource usage information to the crash reports to help better detemine resource leak based crashes
Added resizing methods to api_albumart to complement the existing synchronous & asynchronous (WACUP addition) GetAlbumArt methods to simplify with getting artwork without each plug-in needing to do resizing if needed (this can also help reduce the overall memory usage if the artwork cache is enabled as the resized image is cached instead of the original "full fat" image that was loaded)
Added IPC_SHOWWND & IPC_HIDEWND api commands to explicitly be able to show / hide the specified windows (as determined by the IPC_GETWND parameter defines) along with some main window & library window additions for the older 2.9x era IPC_GETWND & IPC_ISWNDVISIBLE APIs)
Added compatibility support for the 3rd party "What's Playing?" plug-in so it will now make use of the settings folder instead of trying to save into the program folder (this is a shame it wasn't natively done when the plug-in was being updated until 2005 & the APIs needed were already a few years old by that time)
Added 'Manual Playlist Advance' menu items to complement the existing Repeat & Shuffle menu items (subject to the skin & menus it offers)
Added loading checks to prevent files related to the unrelated & reviled 5.8 beta from being used under WACUP (either from people manually trying to use the files from it or due to some weird installation weirdness based on a batch of crash reports received)
Added an alternative mode to the Global Hotkeys plug-in if the multimedia keys don't work (thanks to Sprite via Discord for reporting & help test this works)
Added some supporting features needed to ease the interaction of Homeseer with WACUP & the JTFE queue implementation (w.i.p. so no real details for now on this)

Changed a massive amount of the main playlist editor & playlist & related API support to now be handled via WACUP code instead of using the original Winamp code (there might be some issues / differences in behaviour that I've missed so please do tell me so I can get the compatibility / expected behaviour re-implemented)
Changed how the Windows 10 Integration plug-in (gen_win10shell.dll) is allowed to be loaded to hopefully prevent it crashing for some
Changed the installer to better handle not having an internet connection or if not allowed through the firewall by giving a useful message on what needs to be done or what can be done to workaround the issue
Changed the Portables plug-in to not have the settings cache applied to it which may help fix some of the odder crash reports seen
Changed the Cover & Tag plug-in handling for finding the built-in windows to be applied more generically to fix some other plug-ins including cases when changing the main window class & plug-ins have a hard-coded assumption of it being "Winamp v1.x"
Changed the installer to deal with most of the downloaded components & related validation in a simpler manner which should cause fewer issues going forward
Changed new installs to default to requiring the user if they later install the Sqrsoft Output plug-in (out_sqr.dll) to require it to be manually enabled before it can be used (the plug-in is causing a load of crash reports)
Changed the handling of failed HTTP stream playback to attempt to use the MP3 Decoder (in_mp3.dll) if that wasn't the plug-in already attempting to be used (e.g. builds of the 3rd party in_opus.dll plug-in will incorrectly try to handle any HTTP stream url even if it's not related to what the plug-in supports)
Changed how some of the required file paths are generated to use less code & to be correct irrespective of the owner process that is calling WACUP core methods
Changed the settings cache to pre-prime itself earlier which helps alleiviate some oddities noticed
Changed the way the font size in the information pane of the podcasts view is calculated to try to better match with the rest of WACUP irrespective of OS scaling
Changed some of the Playlist Undo plug-in handling to be done directly within the WACUP core (more will be done to move the plug-in completely into the WACUP core)
Changed how the NotSoDirect output plug-in saves it's settings to reduce unnecessary configuration saves when nothing has been changed
Changed the installer to not attempt to re-install some of the supporting files that WACUP relies upon if they're already present (this may help with some setups where updating can fail due to files not being able to be updated primarily to anti-virus &/or 3rd party software messing with things)
Changed the plug-in loaded to block a few more plug-ins that are known to cause crashes &/or conflict with the native WACUP implementation (e.g. in_wm, gen_nopro & gen_skinmanager)
Changed the podcast view initial loading to show a message until everything is ready (this is related to helping resolve the deadlock on loading crash below)
Changed to use a shared genre list between the plug-ins / libraries for a 14KB size reduction
Changed the icons in the library window navigation tree, internet radio & podcast feeds list to adjust to the size of the list text so they better match & looks better with larger font sizes (note they will be blurry until higher resolution base images are created)
Changed the input, general, library, dsp, visualisation & portable plug-in preference pages to use the newer style list layout like the output plug-in list for consistency
Changed as many of the preference pages provided via the Winamp core to now be WACUP implementations (this means most settings are now only altered when actually changed instead of being always saved when closing the preferences window which reduces the risk of data loss / settings file corruptions & so on)
Changed how background title reading is done to try to avoid hangs related to URL / UNC paths
Changed the error reporter handling to avoid attempting to also send the crash report as an email if there's no obviously configured default email client
Changed the main config reading method to now be WACUP handled (this removes reading some config values which can be done elsewhere or are not needed)
Changed the artwork handling of Opus files to be read via the WACUP shared metadata service instead of relying upon input plug-ins (this may help to resolve a stability issue seen when using in_bpopus & allows artwork to still work with the alternative in_opus plug-in that some users have been using)
Changed how the seek bar is handled under classic skins which now allows its information message to match the WACUP long times formatting option)
Changed the IPC_GET_PLAYING_TITLE & IPC_GET_PLAYING_FILENAME APIs to do the equivalent of a IPC_GETLISTPOS & IPC_GETPLAYLISTTITLEW / IPC_GETPLAYLISTFILEW when passing the param as 1 (this is a helper to remove one SendMessage call for cases where also knowing the result from IPC_GETLISTPOS is not needed)
Changed some more of the menu / API handling from Winamp code over to WACUP code based on issues seen with some of the crash reports to try to better diagnose what's going wrong
Changed in_cue.dll & gen_cue.dll to be part of the default list of 3rd party plug-ins not to automatically load to avoid issues if updating an existing Winamp install to a WACUP install with them present (they've been found to cause issues under both Winamp & WACUP so it's better to avoid them being loaded as it took a while to track them down as the cause of stability issues for one user)
Changed the version string shown if there's nothing playing &/or no title can be shown under modern skins to now be the current WACUP version instead of the Winamp core version (this is more like classic skins though there's some parts under a classic skin that will currently show the wrong string - more work needs to be done on replacing all of the main window handling to resolve that discrepency)
Changed how output plug-in loading is done when opening the preferences window to try to minimise a configuration saving conflict between NotSoDirect & Nullsoft DirectSound (out_ds) plug-ins (to maintain compatibility for when the default output plug-in is switched to NotSoDirect they save into the same configuration section & without out_ds always re-saving it's settings on closing even if there was no change this can cause problems if NotSoDirect is the active output plug-in - recommendation is to disable out_ds if using NotSoDirect to avoid the whole issue :) )
Changed the way the installer is built to simplify some aspects of the overall building & release process which should save me some time :)
Changed how things are handled when a crash is detected which should better prevent unnecessary code (e.g. generic skinning) from running which might be causing some crash report collections to fail
Changed how the artwork cache works to better suit the common use case whilst making it less likely to have issues when dealing with more extremely sized pieces of artwork (not a commmon case)
Changed a number of the plug-ins to use the new api_albumart changes for resizing images to remove a number of potential issues when dealing with large artwork (especially with 12500x12500px images)
Changed scrolling the mouse wheel up/down in the Milkdrop & Classic Artwork windows to change the WACUP volume (this improves consistency with other plug-in windows)
Changed how the Windows 10 Integration plug-in works to remove the need for subclassing to aid in removing it as a possible cause of some crashes
Changed how an aspect of closing is done to see if it will help resolve some of the odder crashes when WACUP is closing (normally due to plug-ins)
Changed a number of messageboxes shown (e.g. on visualisation error or when a crash has occurred) to timeout in a reasonable time instead of waiting around & causing other potential issues or leaving unwanted running processes due to not seeing / reacting to them until much later on (some issues may be missed due to this but it's probably better than what is happening for some setups when issues occur & attempts to inform are done)
Changed an internal method shared between the core & plug-ins for getting metadata to do a better job of dealing with lifetime quirks related to the passed in parameter values (relates to the playlist loading failure)
Changed how PNG images are processed to (hopefully) not break loading any that already work whilst allowing interlaced images to be correctly loaded (if it does break anything then we can blame Dr Flay for this one)
Changed what happens if the core playlist services cannot be created to now inform the user & abort continuing to load WACUP instead of allowing it to limp along in a broken state (a re-install hint is offered)
Changed how the crash reporter works to prevent it staying open in a few non critical scenarios
Changed how plug-in loading is done to better mitigate against older versions of plug-ins included with WACUP (e.g. from old Winamp Essential Packs or manually trying to re-use Winamp versions that have since been replaced with WACUP versions but are using the same filename) trying to be used & breaking / crashing WACUP
Changed a few places including the crash reporter to make it easier to distinguish between a beta & a public preview build being used
Changed how SPC titles are read with an interim solution until some issues are fixed with the SNESAmp Wrapper plug-in (this may still cause titles to show incorrectly based on the information in the local media library but it's more likely to show something nicer compared to the past few builds)

Fixed a workaround to deal with crashes seen by the DirectSound Output plug-in (out_ds.dll) not working as expected in all scenarios
Fixed a crash in the Vorbis Decoder plug-in (in_vorbis.dll) if the supporting libvorbis.dll cannot be loaded when trying to play an OGG Vorbis file
Fixed trying to use Milkdrop's (somewhat broken) desktop causing a crash due to the required vms_deskop.dll not being correctly installed for it to use
Fixed a crash when trying to generate the skin folder / filepath for the IPC_SKIN_CHANGED_NEW API message via the skins manager preference page
Fixed a crash related to column name retrieval within NDE in relation to a potential database corruption
Fixed the likely cause of a crash seen when trying to retrieve artwork for the SMTC (Windows 10) feature
Fixed the likely cause of a crash when accessing the config / about dialog of the FLAC input plug-in (based on a delay loading related issue from the crash reports)
Fixed a message handling issue in the History library plug-in preventing it correctly saving it's database on periodic save requests
Fixed the current playlist item not being drawn in the windowshaded playlist editor mode once focus has been lost along with resolving a flickering when resizing the window in that state
Fixed a potential lock-up on loading if the JTFE media library integration is enabled & the library window is slow to be created
Fixed reading of metadata from files not showing the expected data in some cases due to a replacement method not always providing the correct status result causing the valid metadata to be ignored
Fixed the likely cause of a crash seen when using the 'Open / Add file(s) to playlist' action & trying to process a playlist (or so it seemed from the crash report)
Fixed a number of crash issues related to a mis-match in the memory methods of the C run time libraries being used between the WACUP core & some of the plug-ins (especially the replacement local library plug-ins & the 'Edit Item Metadata' (Shift+E) dialog in the main playlist editor)
Fixed library playlists incorrectly showing some stream urls as missing when that check only relates to non-stream content
Fixed the title of items when being bookmarked sometimes showing as giibberish (have dropped trying to use the existing Winamp code for WACUP replacement which behaves as expected)
Fixed podcast feeds without the expected XML declaration at the start of their feed not being able to be added (this now does an alternative check which should work for both RSS & ATOM feeds showing this issue)
Fixed the podcast view sometimes failing to load correctly & eventually causing a loading deadlock crash
Fixed the vertical divider in the podcast view incorrectly showing when the information area is the only thing showing
Fixed some issues related to metadata retrieval not working as expected due to incorrect API responses
Fixed the Streaming Url Processing plug-in often reporting an incorrect title if it's not been used to play a stream it supports during the running WACUP session (this was causing issues with some of the re-worked checks to minimise re-saving the contents of the main playlist to reduce overall closing times)
Fixed the output plug-in preferences page list not looking correct depending on the OS text scaling mode being used (things should now gracefully adjust for the size of the list item)
Fixed an issue sometimes preventing a visualisation plug-in from being re-started if already used during that session
Fixed enabling/disabling plug-ins via the plug-in preference pages incorrectly selecting the plug-in when it should not have been (this would be an issue on the output, dsp & visualisation pages where the selected item determines the active plug-in)
Fixed the plug-in preference page lists not sizing correctly to the visible area including showing a horizontal scrollbar incorrectly at times
Fixed the selection not always being scrolled into view in the browse for folder dialogs (this was a regression related to build 4994 changes)
Fixed a number of the windows not restoring their position compared to how 5.666 worked (e.g. the Add/Open File/Url dialogs)
Fixed some of the bundled modern skins not correctly showing as the WACUP version due to a missing file used for install type checking
Fixed the crash reporter dialog not reacting to Escape / Alt+F4 actions as expected once the crash report collection has been completed
Fixed the undo playlist dialog not being correctly sized according to OS text scaling / high-dpi setups
Fixed the in_nsv plug-in crashing when trying to start play a stream (changed what dlls it tries to load to avoid a self-unloading issue seen)
Fixed a crash seen in the crash reports related to saving the main playlist editor
Fixed a memory leak related to embedded file artwork via the shared metadata handling
Fixed lame_enc.dll not always being installed when it should (this generally was causing the Streaming Source plug-in to fail to load in some setups)
Fixed the likely cause of a crash seen when deleting a library playlist which was the viewed playlist at the time of the deletion request
Fixed the likely cause of a hang seen when viewing a library playlist due to the missing files check being run on an UNC based server path
Fixed a crash seen when trying to query embedded artwork from Opus files with in_bpopus.dll installed as the Opus handling input plug-in (this change now completely ignores using the plug-in for embedded artwork)
Fixed the plug-in lists not displaying correctly when the Skinned Preferences option is enabled (missing icons or incorrectly sized or just showing a blank list)
Fixed the start streaming server button in the preferences not always starting the first stream source (if available) as the expected default configuration behaviour
Fixed the default playlist font size on new / reset installs being TOO LARGE (was a typo causing it to be 22px instead of 12px though should the default be a bit larger?)
Fixed enabling the Nullsoft NSV Decoder plug-in not also enabling some of the supporting component dlls needed
Fixed the cause of a lot of crashes seen due to a lifetime handling issue of some of the settings cache related objects
Fixed a crash when using the replacement local library plug-in (ml_ll.dll) to add items into the playlist via drag & drop along with some related issues due to how the internal values were being kept cached
Fixed the classic skin clutter bar view file info action not working as expected (weird winamp to wacup transition issue)
Fixed the crash reporter not always being run when some VS2017 specific C/C++ run time exceptions occurred (e.g. WACUP would crash without the crash reporter running - I hope this doesn't cause me more work...)
Fixed an occassional deadlock seen due to an issue within the locking used in one of the JTFE queue management methods
Fixed moving JTFE queued items around in the playlist sometimes flipping their actual position in the queue (the context of the queue item position was being lost which all of the other changes to the playlist handling now allows for better integration to remove a lot of the hacks that were needed)
Fixed a number of long standing JTFE queue handling issues where moving items in the playlist during that session would cause the wrong file (if there's duplicates to be selected) as well as sometimes items being incorrectly marked as being queued (especially after moving or drag+dropping items into the playlist)
Fixed the position of the sliders on the NotSoDirect preferences page not always being saved
Fixed a taglib MP3 file length reading issue related to a patch applied to avoid invalid access breaking the end of file offset detection which is needed when trying to work out the duration of a file without appropriate headers as part of the file (aka guessing the file duration from it's size & reported bitrate which doesn't work if you're not using the correct file size)
Fixed issues with item selection in the main playlist editor incorrectly persisting compared to the wanted listview style handling the WACUP implementation is aiming for (e.g. selecting an item when items were already selected was meant to select the new item & de-select the others but that wasn't happening until this build fixes things)
Fixed some menu integration issues compared to 5.666 for the replacement local library (ml_ll) & library playlists (ml_playlist) plug-ins along with removing the need for these plug-ins to subclass the playlist editor
Fixed the likely cause of a crash seen when a file is externally modified but is deemed to be related to WACUP (i.e. settings files not caught by the settings cache)
Fixed the bookmarks submenu on the 'File' menu under modern skins (that support that menu) not following the categorising options in all scenarios when the library plug-in is enabled
Fixed a crash when trying to play bookmarks via the 'File' menu under modern skins & not using the Library Bookmarks plug-in
Fixed parts of the classic skin playlist editor window flickering (this affected windowshaded mode the most & also the normal mode selected item duration which is in the bottom right corner of the window)
Fixed some of the threaded actions not always releasing the handle associated with them which over the life time of a long running WACUP session could cause a potential resource handling issue
Fixed the probable cause of some issues seen when stopping the Classic Spectrum Analyzer (vis_classic.dll) visualiation plug-in which then cause the rest of WACUP to hang & eventually crash
Fixed an issue with the artwork cache not always clearing out prior cached data when being updated (this was causing issues viewing artwork in the Local Library views as well as some long running installs)
Fixed a number of memory leaks related to the use of extreme sized artwork (e.g. 12500x12500px) causing problems across a number of the plug-ins making use of artwork
Fixed the delayed loading of dbghelp.dll failing causing a repeating set of errors about dbghelp.dll not being able to be loaded (e.g. when in low memory scenarios & WACUP has crashed)
Fixed a crash caused by NotSoDirect being called for it's current status when it's in the process of being unloaded
Fixed the main window visualisation when using a modern skin & playback is paused appearing to flicker / jump around
Fixed the main window visualisation when using a modern skin sometimes showing a solid line in the oscilloscope mode
Fixed using F3 in the Milkdrop window to show the currently playing item information not drawing it on the screen
Fixed a possible cause of some of the deadlocks seen from the crash reports when Milkdrop tries to get the currently playing title string
Fixed the Windows 10 Integration plug-in not always sending the update message for artwork changes to be correctly displayed &/or removed
Fixed a drag & drop onto a selected file in the main playlist editor incorrectly setting the new item as selected or queued if the existing item was already matching either of those conditions
Fixed a possible cause of a crash on unloading Milkdrop when trying to free its texture data
Fixed a crash when trying to get information about SID files when the in_sidious plug-in hasn't been fully initiliased
Fixed a possible cause of crash when updating the playback history in the library due to a buffer persistence issue
Fixed a crash when using the built-in taskbar preview actions to control playback (if already using the included advanced Win7Shell version then that would not crash)
Fixed some information needed for the crash reports not being correctly saved to the crash.log file in some instances
Fixed a possible cause of a crash when the requested visualisation plug-in fails & a notifying messagebox is shown but not responded to in a timely manner
Fixed a possible cause of an issue that could cause some titles when added into the main playlist editor sometimes appearing as corrupted (when force updated / played then they would show the correct title)
Fixed (hopefully completely this time!) an issue seen with the handling of the IPC_PLAYFILEW_NDE API message when adding items from the local library into the main playlist editor (ml_ll needs to replace ml_local!)
Fixed a crash in the artwork handling when attempting to resize the loaded image but not having fully ensured that there was image data loaded
Fixed an issue causing the width & height from a loaded png to be incorrectly reported as set if there were issues decoding the image (this isn't a user facing change but helps keep things cleaner internally)
Fixed an issue causing some playlist loading requests to fail due to an internal buffer handling issue when trying to determine the length of an entry prior to being loaded into the main playlist editor
Fixed a comparison issue with the Playlist Separator plug-in preventing some of the insertion actions working correctly
Fixed a hang due to some stream playlists from Tunein containing streaming urls which are named like playlist files but are the actual stream which caused WACUP to try do download the stream as a playlist (this now does some additional checking though more will need to be done but it resolves the issue seen in the handful of crash reports where this happening)
Fixed some possible metadata truncation related issues with displaying due to interim build changes & also existing issues found whilst reviewing other changes
Fixed the main playlist editor not always reading titles in the background if the window was hidden or unexpected closed (e.g. depending on how a modern skin is configured)
Fixed some additional causes of the main playlist editor under a classic skin flickering especially when in windowshaded mode & playback is active (there's still some other cases but they're being driven by the main window trying to update information on the playlist editor window which will have to be resolved once the main window drawing it taken over by WACUP code)
Fixed a possible issue related to incomplete youtube-dl related stream downloads preventing playback
Fixed a number of crashes related to mis-matched / incomplete updates (e.g. running WACUP before the update has completed) or when certain key services cannot be loaded (e.g. albumart vs gen_ff assuming it's there)
Fixed the crash reporter option for attempting to send an email incorrectly appearing as enabled even if it's been intentionally disabled (oops)
Fixed a crash related to the VGM (in_vgm_w.dll) input plug-in when it's still playing on closing with a modern skin loaded which would incorrectly keep trying to access sample data for the skin visualisation modes
Fixed a possible cause of somes crashes related to weird API accesses (these are masking some other issue from what I can tell but the crash reports aren't conclusive on what's going on)
Fixed a crash due to an older version of the Time Restore & Autoplay plug-in being installed (additional checks are now made to prevent the older plug-in being loaded when a newer updated one is already part of WACUP)
Fixed the playlist editor context menu showing twice if when using the Windows context menu action (button or Shift+F10) & you use escape to cancel the action
Fixed trying to select a newly added playlist item requiring 2 clicks for it to register the item selection after using the Add File/Folder/Url actions
Fixed the option to enable/disable using the classic skin style mouse cursors not being correctly applied across all of the skin (core mis-match issues)
Fixed some other options on the classic skin preferences page not being correctly applied until a restart of WACUP
Fixed the current WACUP version not being shown on start-up when using a classic skin with double-size enabled

Removed the option for not having the classic skin equaliser follow the global double size setting (this might have made sense on 640x480 setups but it seems superfluous nowadays - if you use it then let me know!)

Other small changes to attempt to fix some of the issues based on information from the received crash reports (e.g. library playlists & ASIO output)

Updated brotli (libcurl.dll) to latest Git commit from 19 Mar 2020
Updated libcurl (libcurl.dll) to 7.70.0 (29 Apr 2020)
Updated libopenmpt (in_mod.dll) to 0.4.12.12633 (13 Apr 2020)
Updated OpenSSL (libcurl.dll) to 1.1.1g (21 Apr 2020)
Updated Patreon list
Updated Monkey's Audio (in_ape.dll) to 5.38 (26 Apr 2020)
Updated unrar (unrar.dll) to 5.90.2 (26 Mar 2020)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 1 May 2020
Updated WavPack (in_wv.dll) to 5.3.0 (14 Apr 2020)
Updated zlib-ng (zlib.dll) to latest re-based update (27 Mar 2020)


Preview Version: 1.0.11.5456
Released: 30 April 2020

Added an option on the Taskbar preferences page to control whether WACUP is hidden from the taskbar or not when minimised (this has been defaulted to on to replicate the Winamp behaviour for this action)
Added a workaround to deal with crashes seen by the WaveOut Output plug-in (out_wave.dll)
Added a specific sort by duration action to the main playlist editor & library playlist views
Added a specific mode on the Visualisation preferences page to disable visualisation loading (this is like the equivalent mode on the DSP/Effect preferences page)
Added an option for the Discord support to automatically disable it when playback has stopped (this can allow other programs to update your Discord Rich Text without also having to close WACUP)
Added %wacup_version% as an always available ATF variable (e.g. this might be useful for the HTTP posting actions or any other related logging that might be done via Yule Log, etc)
Added an option on the Advanced preferences page to show the plug-in lists in the classic single line style instead of the default multi-line description style (this is for those that don't like or need the newer default plug-in list style)
Added IPC_HAS_METADATA_READ_SUPPORT & IPC_HAS_METADATA_WRITE_SUPPORT helper messages to quickly determine if the input plug-in responsible for a file type has the extended metadata api support for read / write
Added the 'Artist Index' filter option (which groups the filter results by the first letter of the artist) to the replacement local library plug-in (ml_ll.dll) based on forum feedback (if this works ok from testing then other variants of this index may be added e.g. album artist, genre, etc)
Added some additional resource usage information to the crash reports to help better detemine resource leak based crashes
Added resizing methods to api_albumart to complement the existing synchronous & asynchronous (WACUP addition) GetAlbumArt methods to simplify with getting artwork without each plug-in needing to do resizing if needed (this can also help reduce the overall memory usage if the artwork cache is enabled as the resized image is cached instead of the original "full fat" image that was loaded)
Added IPC_SHOWWND & IPC_HIDEWND api commands to explicitly be able to show / hide the specified windows (as determined by the IPC_GETWND parameter defines) along with some main window & library window additions for the older 2.9x era IPC_GETWND & IPC_ISWNDVISIBLE APIs)
Added compatibility support for the 3rd party "What's Playing?" plug-in so it will now make use of the settings folder instead of trying to save into the program folder (this is a shame it wasn't natively done when the plug-in was being updated until 2005 & the APIs needed were already a few years old by that time)

Changed a massive amount of the main playlist editor & playlist & related API support to now be handled via WACUP code instead of using the original Winamp code (there might be some issues / differences in behaviour that I've missed so please do tell me so I can get the compatibility / expected behaviour re-implemented)
Changed how the Windows 10 Integration plug-in (gen_win10shell.dll) is allowed to be loaded to hopefully prevent it crashing for some
Changed the installer to better handle not having an internet connection or if not allowed through the firewall by giving a useful message on what needs to be done or what can be done to workaround the issue
Changed the Portables plug-in to not have the settings cache applied to it which may help fix some of the odder crash reports seen
Changed the Cover & Tag plug-in handling for finding the built-in windows to be applied more generically to fix some other plug-ins including cases when changing the main window class & plug-ins have a hard-coded assumption of it being "Winamp v1.x"
Changed the installer to deal with most of the downloaded components & related validation in a simpler manner which should cause fewer issues going forward
Changed new installs to default to requiring the user if they later install the Sqrsoft Output plug-in (out_sqr.dll) to require it to be manually enabled before it can be used (the plug-in is causing a load of crash reports)
Changed the handling of failed HTTP stream playback to attempt to use the MP3 Decoder (in_mp3.dll) if that wasn't the plug-in already attempting to be used (e.g. builds of the 3rd party in_opus.dll plug-in will incorrectly try to handle any HTTP stream url even if it's not related to what the plug-in supports)
Changed how some of the required file paths are generated to use less code & to be correct irrespective of the owner process that is calling WACUP core methods
Changed the settings cache to pre-prime itself earlier which helps alleiviate some oddities noticed
Changed the way the font size in the information pane of the podcasts view is calculated to try to better match with the rest of WACUP irrespective of OS scaling
Changed some of the Playlist Undo plug-in handling to be done directly within the WACUP core (more will be done to move the plug-in completely into the WACUP core)
Changed how the NotSoDirect output plug-in saves it's settings to reduce unnecessary configuration saves when nothing has been changed
Changed the installer to not attempt to re-install some of the supporting files that WACUP relies upon if they're already present (this may help with some setups where updating can fail due to files not being able to be updated primarily to anti-virus &/or 3rd party software messing with things)
Changed the plug-in loaded to block a few more plug-ins that are known to cause crashes &/or conflict with the native WACUP implementation (e.g. in_wm, gen_nopro & gen_skinmanager)
Changed the podcast view initial loading to show a message until everything is ready (this is related to helping resolve the deadlock on loading crash below)
Changed to use a shared genre list between the plug-ins / libraries for a 14KB size reduction
Changed the icons in the library window navigation tree, internet radio & podcast feeds list to adjust to the size of the list text so they better match & looks better with larger font sizes (note they will be blurry until higher resolution base images are created)
Changed the input, general, library, dsp, visualisation & portable plug-in preference pages to use the newer style list layout like the output plug-in list for consistency
Changed as many of the preference pages provided via the Winamp core to now be WACUP implementations (this means most settings are now only altered when actually changed instead of being always saved when closing the preferences window which reduces the risk of data loss / settings file corruptions & so on)
Changed how background title reading is done to try to avoid hangs related to URL / UNC paths
Changed the error reporter handling to avoid attempting to also send the crash report as an email if there's no obviously configured default email client
Changed the main config reading method to now be WACUP handled (this removes reading some config values which can be done elsewhere or are not needed)
Changed the artwork handling of Opus files to be read via the WACUP shared metadata service instead of relying upon input plug-ins (this may help to resolve a stability issue seen when using in_bpopus & allows artwork to still work with the alternative in_opus plug-in that some users have been using)
Changed how the seek bar is handled under classic skins which now allows its information message to match the WACUP long times formatting option)
Changed the IPC_GET_PLAYING_TITLE & IPC_GET_PLAYING_FILENAME APIs to do the equivalent of a IPC_GETLISTPOS & IPC_GETPLAYLISTTITLEW / IPC_GETPLAYLISTFILEW when passing the param as 1 (this is a helper to remove one SendMessage call for cases where also knowing the result from IPC_GETLISTPOS is not needed)
Changed some more of the menu / API handling from Winamp code over to WACUP code based on issues seen with some of the crash reports to try to better diagnose what's going wrong
Changed in_cue.dll & gen_cue.dll to be part of the default list of 3rd party plug-ins not to automatically load to avoid issues if updating an existing Winamp install to a WACUP install with them present (they've been found to cause issues under both Winamp & WACUP so it's better to avoid them being loaded as it took a while to track them down as the cause of stability issues for one user)
Changed the version string shown if there's nothing playing &/or no title can be shown under modern skins to now be the current WACUP version instead of the Winamp core version (this is more like classic skins though there's some parts under a classic skin that will currently show the wrong string - more work needs to be done on replacing all of the main window handling to resolve that discrepency)
Changed how output plug-in loading is done when opening the preferences window to try to minimise a configuration saving conflict between NotSoDirect & Nullsoft DirectSound (out_ds) plug-ins (to maintain compatibility for when the default output plug-in is switched to NotSoDirect they save into the same configuration section & without out_ds always re-saving it's settings on closing even if there was no change this can cause problems if NotSoDirect is the active output plug-in - recommendation is to disable out_ds if using NotSoDirect to avoid the whole issue :) )
Changed the way the installer is built to simplify some aspects of the overall building & release process which should save me some time :)
Changed how things are handled when a crash is detected which should better prevent unnecessary code (e.g. generic skinning) from running which might be causing some crash report collections to fail
Changed how the artwork cache works to better suit the common use case whilst making it less likely to have issues when dealing with more extremely sized pieces of artwork (not a commmon case)
Changed a number of the plug-ins to use the new api_albumart changes for resizing images to remove a number of potential issues when dealing with large artwork (especially with 12500x12500px images)

Fixed a workaround to deal with crashes seen by the DirectSound Output plug-in (out_ds.dll) not working as expected in all scenarios
Fixed a crash in the Vorbis Decoder plug-in (in_vorbis.dll) if the supporting libvorbis.dll cannot be loaded when trying to play an OGG Vorbis file
Fixed trying to use Milkdrop's (somewhat broken) desktop causing a crash due to the required vms_deskop.dll not being correctly installed for it to use
Fixed a crash when trying to generate the skin folder / filepath for the IPC_SKIN_CHANGED_NEW API message via the skins manager preference page
Fixed a crash related to column name retrieval within NDE in relation to a potential database corruption
Fixed the likely cause of a crash seen when trying to retrieve artwork for the SMTC (Windows 10) feature
Fixed the likely cause of a crash when accessing the config / about dialog of the FLAC input plug-in (based on a delay loading related issue from the crash reports)
Fixed a message handling issue in the History library plug-in preventing it correctly saving it's database on periodic save requests
Fixed the current playlist item not being drawn in the windowshaded playlist editor mode once focus has been lost along with resolving a flickering when resizing the window in that state
Fixed a potential lock-up on loading if the JTFE media library integration is enabled & the library window is slow to be created
Fixed reading of metadata from files not showing the expected data in some cases due to a replacement method not always providing the correct status result causing the valid metadata to be ignored
Fixed the likely cause of a crash seen when using the 'Open / Add file(s) to playlist' action & trying to process a playlist (or so it seemed from the crash report)
Fixed a number of crash issues related to a mis-match in the memory methods of the C run time libraries being used between the WACUP core & some of the plug-ins (especially the replacement local library plug-ins & the 'Edit Item Metadata' (Shift+E) dialog in the main playlist editor)
Fixed library playlists incorrectly showing some stream urls as missing when that check only relates to non-stream content
Fixed the title of items when being bookmarked sometimes showing as giibberish (have dropped trying to use the existing Winamp code for WACUP replacement which behaves as expected)
Fixed podcast feeds without the expected XML declaration at the start of their feed not being able to be added (this now does an alternative check which should work for both RSS & ATOM feeds showing this issue)
Fixed the podcast view sometimes failing to load correctly & eventually causing a loading deadlock crash
Fixed the vertical divider in the podcast view incorrectly showing when the information area is the only thing showing
Fixed some issues related to metadata retrieval not working as expected due to incorrect API responses
Fixed the Streaming Url Processing plug-in often reporting an incorrect title if it's not been used to play a stream it supports during the running WACUP session (this was causing issues with some of the re-worked checks to minimise re-saving the contents of the main playlist to reduce overall closing times)
Fixed the output plug-in preferences page list not looking correct depending on the OS text scaling mode being used (things should now gracefully adjust for the size of the list item)
Fixed an issue sometimes preventing a visualisation plug-in from being re-started if already used during that session
Fixed enabling/disabling plug-ins via the plug-in preference pages incorrectly selecting the plug-in when it should not have been (this would be an issue on the output, dsp & visualisation pages where the selected item determines the active plug-in)
Fixed the plug-in preference page lists not sizing correctly to the visible area including showing a horizontal scrollbar incorrectly at times
Fixed the selection not always being scrolled into view in the browse for folder dialogs (this was a regression related to build 4994 changes)
Fixed a number of the windows not restoring their position compared to how 5.666 worked (e.g. the Add/Open File/Url dialogs)
Fixed some of the bundled modern skins not correctly showing as the WACUP version due to a missing file used for install type checking
Fixed the crash reporter dialog not reacting to Escape / Alt+F4 actions as expected once the crash report collection has been completed
Fixed the undo playlist dialog not being correctly sized according to OS text scaling / high-dpi setups
Fixed the in_nsv plug-in crashing when trying to start play a stream (changed what dlls it tries to load to avoid a self-unloading issue seen)
Fixed a crash seen in the crash reports related to saving the main playlist editor
Fixed a memory leak related to embedded file artwork via the shared metadata handling
Fixed lame_enc.dll not always being installed when it should (this generally was causing the Streaming Source plug-in to fail to load in some setups)
Fixed the likely cause of a crash seen when deleting a library playlist which was the viewed playlist at the time of the deletion request
Fixed the likely cause of a hang seen when viewing a library playlist due to the missing files check being run on an UNC based server path
Fixed a crash seen when trying to query embedded artwork from Opus files with in_bpopus.dll installed as the Opus handling input plug-in (this change now completely ignores using the plug-in for embedded artwork)
Fixed the plug-in lists not displaying correctly when the Skinned Preferences option is enabled (missing icons or incorrectly sized or just showing a blank list)
Fixed the start streaming server button in the preferences not always starting the first stream source (if available) as the expected default configuration behaviour
Fixed the default playlist font size on new / reset installs being TOO LARGE (was a typo causing it to be 22px instead of 12px though should the default be a bit larger?)
Fixed enabling the Nullsoft NSV Decoder plug-in not also enabling some of the supporting component dlls needed
Fixed the cause of a lot of crashes seen due to a lifetime handling issue of some of the settings cache related objects
Fixed a crash when using the replacement local library plug-in (ml_ll.dll) to add items into the playlist via drag & drop along with some related issues due to how the internal values were being kept cached
Fixed the classic skin clutter bar view file info action not working as expected (weird winamp to wacup transition issue)
Fixed the crash reporter not always being run when some VS2017 specific C/C++ run time exceptions occurred (e.g. WACUP would crash without the crash reporter running - I hope this doesn't cause me more work...)
Fixed an occassional deadlock seen due to an issue within the locking used in one of the JTFE queue management methods
Fixed moving JTFE queued items around in the playlist sometimes flipping their actual position in the queue (the context of the queue item position was being lost which all of the other changes to the playlist handling now allows for better integration to remove a lot of the hacks that were needed)
Fixed a number of long standing JTFE queue handling issues where moving items in the playlist during that session would cause the wrong file (if there's duplicates to be selected) as well as sometimes items being incorrectly marked as being queued (especially after moving or drag+dropping items into the playlist)
Fixed the position of the sliders on the NotSoDirect preferences page not always being saved
Fixed a taglib MP3 file length reading issue related to a patch applied to avoid invalid access breaking the end of file offset detection which is needed when trying to work out the duration of a file without appropriate headers as part of the file (aka guessing the file duration from it's size & reported bitrate which doesn't work if you're not using the correct file size)
Fixed issues with item selection in the main playlist editor incorrectly persisting compared to the wanted listview style handling the WACUP implementation is aiming for (e.g. selecting an item when items were already selected was meant to select the new item & de-select the others but that wasn't happening until this build fixes things)
Fixed some menu integration issues compared to 5.666 for the replacement local library (ml_ll) & library playlists (ml_playlist) plug-ins along with removing the need for these plug-ins to subclass the playlist editor
Fixed the likely cause of a crash seen when a file is externally modified but is deemed to be related to WACUP (i.e. settings files not caught by the settings cache)
Fixed the bookmarks submenu on the 'File' menu under modern skins (that support that menu) not following the categorising options in all scenarios when the library plug-in is enabled
Fixed a crash when trying to play bookmarks via the 'File' menu under modern skins & not using the Library Bookmarks plug-in
Fixed parts of the classic skin playlist editor window flickering (this affected windowshaded mode the most & also the normal mode selected item duration which is in the bottom right corner of the window)
Fixed some of the threaded actions not always releasing the handle associated with them which over the life time of a long running WACUP session could cause a potential resource handling issue
Fixed the probable cause of some issues seen when stopping the Classic Spectrum Analyzer (vis_classic.dll) visualiation plug-in which then cause the rest of WACUP to hang & eventually crash
Fixed an issue with the artwork cache not always clearing out prior cached data when being updated (this was causing issues viewing artwork in the Local Library views as well as some long running installs)
Fixed a number of memory leaks related to the use of extreme sized artwork (e.g. 12500x12500px) causing problems across a number of the plug-ins making use of artwork
Fixed the delayed loading of dbghelp.dll failing causing a repeating set of errors about dbghelp.dll not being able to be loaded (e.g. when in low memory scenarios & WACUP has crashed)

Other small changes to attempt to fix some of the issues based on information from the received crash reports (e.g. library playlists & ASIO output)

Updated brotli (libcurl.dll) to latest Git commit from 19 Mar 2020
Updated libcurl (libcurl.dll) to 7.70.0 (29 Apr 2020)
Updated libopenmpt (in_mod.dll) to 0.4.12.12633 (13 Apr 2020)
Updated OpenSSL (libcurl.dll) to 1.1.1g (21 Apr 2020)
Updated Patreon list
Updated Monkey's Audio (in_ape.dll) to 5.38 (26 Apr 2020)
Updated unrar (unrar.dll) to 5.90.2 (26 Mar 2020)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 14 Apr 2020
Updated WavPack (in_wv.dll) to 5.3.0 (14 Apr 2020)
Updated zlib-ng (zlib.dll) to latest re-based update (27 Mar 2020)


Preview Version: 1.0.9.5144
Released: 5 March 2020

Added a VU meter visualisation for classic skins to appear within the main window where the long existing spectrum analyser & oscilloscope visualisations appear
Added a replacement implementation for the classic skin video window so it will now support double-size mode (this was the last of the native windows to not support double-size mode) & all of the related handling that needed to be done to patch out & swap over to WACUP provided code for the window handling (might be a bit buggy so do report any issues with it!)
Added an option on the video preferences page that allows you under a classic skin to use a generically skinned window frame instead of the dedicated video window with its control area (this is provided if the skin is incomplete but the generic window has been skinned differently or if you just prefer having a simpler looking video window)
Added an initial build of Not So Direct (out_notsodirect.dll) which is a DirectSound output plug-in that is intended to replace the Winamp provided plug-in (out_ds.dll) (there are some features like gapless playback support which are missing though it's ultimately planned to do that handling not at the output plug-in stage but checking the stability of this new plug-in is the reason for including it now despite not being a 1:1 replacement)
Added $leftbracket() & $rightbracket() ATF methods to allow for ( and ) to be directly used in the ATF output (based on feedback received via the Discord server)
Added $padout() & $lpadout() ATF methods which act like the non-out methods but apply the padding to the string without accounting for the length of the string passed into them
Added native remove duplicate file(s) support to the main playlist editor & the library playlists (previously this was done via the JTFE plug-in but it wasn't stable so it's been re-written directly)
Added a copy of the modern skin colour editor (coloreditor.wac) to the installer & bumped it to v2.3.1 due to some minor size optimisations & resource additions (as is done to anything added to WACUP)
Added some additional reset buttons on the Discord & Twitter to make it easier to get back to the default formatting string if you've maybe gone a bit too far & messed up the string (it happens to all of us)
Added an option to the replacement local library plug-in to ignore the 'The' within the view filters (this replicates how the local library plug-in from Winamp 5.666 works at the expense of slower view loading times but you can now decide which behaviour you prefer to use - this is off by default as most haven't noticed it in a year or so of testing)
Add support to install 3 versions of the AVS visualisation plug-in (2.81d, 2.82 & Cockos Happy AVS) via the visualisation preference page for those needing AVS support (please remember that AVS likes to crash which is why it is not able to be installed by default)
Added additional options for configuring how the provided streaming server can be automatically started to also include starting the stream(s) (subject to them being correctly configured and using the provided streaming source plug-in - if using anything else then you'll need to configure that manually)
Added an updated version of the SNESAmp Wrapper plug-in which allows the 3rd party SNESAmp plug-in to work with WACUP without crashing & some general integration improvements that the wrapper brings (this will be generically installed but it will only be loaded & used if a valid SNESAmp installation is detected i.e. it should just work without you needing to do anything if you use SNESAmp)

Changed how WACUP reports it's DPI related support to Windows 10 (and earlier Windows with lesser levels of support) to start on the long road to improving High-DPI & mismatched monitor support (it's still not ideal but better than weird sub-scaling which was happening which is much worse imho)
Changed the WACUP loader to now by default be named wacup.exe whilst keeping the existing winamp.exe for required compatibility (this change minimises code duplication as much as possible between both loader instances with each exe using an appropriate icon - note: you may need to change the pinned taskbar instance based on your wanted icon preference)
Changed some more of the Winamp APIs to be handled with WACUP implementations to resolve some of the more quirkier issues seen within the auto-submitted crash reports
Changed how the WACUP loader works in combination with the original Winamp process it creates so that stdin/stdout should now be correctly passed through as required
Changed the classic skin visualisation preferences page to support the VU meter addition & some other related adjustments
Changed the configuration dialogs for the Not So Asio, Not So Direct & Not So Yasapi to now be done via native preference pages as a child of the Output plug-in preferences node (this is useful for allowing changing the configuration of the output plug-in without risking selecting a different output plug-in & filling your hard drive with a load of output as happens with inadvertently selecting out_disk)
Changed the classic skin visualisation preferences page update just the visualisation selection mode when clicking in the main window to toggle the mode instead of doing as Winamp's code which would force the whole preference page to be reloaded (aka would make it flicker which is not nice)
Changed the right-click menu handling within the video window to not have the main right-click menu as a sub-menu on it (this is more for classic skins where getting the main right-lick menu is the frame menu & the menu that was shown within the video window is now just for the active video area)
Changed how the IPC_GET_IVIDEOOUTPUT API is handled (compared to Winamp) to only create the underlying video output interface when its actually needed (for those not using video playback under WACUP but still have video support enabled then this will remove most of the overhead that video support brings vs it not being used)
Changed the default background fill colour for generic classic skinned windows to be WADLG_ITEMBG_BRUSH instead of WADLG_WNDBG_BRUSH (this is helpful for the video window changes)
Changed the video window creation handling so it will now not be created at all if video support has been intentionally disabled
Changed the default look of the video window to use the generically skinned window frame instead of the dedicated video window (see the video preferences page to change this as needed)
Changed the plug-in loading profiling option to now include the time the plug-in took to be loaded by the OS & renamed the existing option to relate to initialisation (this better reflects what was going on as well as helping me to better understand a large chunk of the time difference reported between plug-in initialisation & overall loading of plug-ins)
Changed the history, podcast, bookmarks, replaygain, internet radio & replacement local library plug-ins to now be compiled using VS2017 instead of VS2008 (this is a general change that more of the WACUP plug-ins will see over the coming builds where it makes sense to do so)
Changed the encoder (enc_*.dll) plug-ins to not use the delay load handling to resolve some odd crashes seen
Changed the WACUP provided input, output, encoder & general purpose plug-ins (in_*.dll, out_*.dll, enc_*.dll & gen_*.dll) plug-ins to now be compiled using VS2017 instead of VS2008 (this on average increases most of of the plug-ins by 5.0KB in size which isn't ideal but the better compiler & tooling support is worth the size increase for my needs for WACUP)
Changed the Ignorant Output plug-in (out_ignorant.dll) to now be built into the WACUP core (this is primarily for convenience with the core so that there's always a valid output plug-in available & it saves 4.5KB over the standalone plug-in)
Changed the WACUP provided DSP (dsp_*.dll) plug-in to now be compiled using VS2017 instead of VS2008
Changed a number of Winamp references within core & plug-in resources to instead use WACUP (more needs to be done as much less Winamp files are being used as part of a WACUP install)
Changed the win7shell & win10shell plug-ins to not be loaded even if installed when running under WINE to avoid crashes & providing options that are not appropriate to that use case
Changed the option to skin the preferences windows & other related windows to not be provided when running under WINE to avoid crashes & other issues that arise from generic subclassing
Changed how the skinned Jump to File dialog initially loads to deal with a visual glitch seen when running under WINE
Changed the handling when minimising WACUP so that it'll stay on the taskbar when the notification area icon has also been enabled unlike with 5.666 & earlier where it would disappear until the player was restored (note: if you prefer the older handling then let me know & I'll add in a compatibility option to get the prior behaviour back)
Changed the handling of HTTPS urls when passed to the legacy in_mp3 input plug-in to now be forced to attempt to play the HTTP version of the url as the plug-in is not able to correctly deal with HTTPS urls (this is not ideal but it's a means to better ensure that playing urls from podcast feeds for example will be playable instead of showing an "error syncing to stream" type error message)
Changed how PLS playlist files are written so where possible the "Version" & "NumberOfEntries" lines will be written at the start of the file when the number of entries is known (this is a small change but it can help improve the time it takes to parse a larger PLS playlist file if those values are located at the end of the playlist file)
Changed more of the WA_WA_IPC api methods to be handled via WACUP implementations instead of Winamp implementations (this also brings the addition of a IPC_WACUP_VERSION to mirror IPC_GETVERSION)
Changed the tooltip handling in the relevant classic skin windows to remove the need for the IPC_CB_GETTOOLTIPW / IPC_CB_GETTOOLTIP messages to be sent (this was only being used by the media library core plug-in option to have clicking on the bolt to show a more appropriate tooltip so it's now done directly & saves a load of windows messages being sent)
Changed the default loading behaviour of a few 3rd party plug-ins that are known to cause stability issues based on the crash reports (they can still be used but the user needs to manually enable them to be loaded once they've been installed)
Changed the archive support plug-in to not directly report the file it supports (i.e. 7Z, RAR & ZIP) to help avoid a number of conflicts when dealing with file association handling
Changed albumart.w5s to be merged together with metadata.w5s as both are key to WACUP functionality & merging helps to remove a cross-dependency that exists between them
Changed the Skin Manager plug-in to now be directly integrated into the WACUP core (keeping it as a plug-in makes little sense now with the direction WACUP is taking )
Changed the Podcasts plug-in to create & use folder. for the feed artwork information pane & some other related aspects instead of always re-downloading the image to display it to help save on bandwidth used & for quicker display of that artwork within WACUP (note: depending on how many podcast feeds you already have there might be a short lock-up on first loading the podcasts view after this change whilst the feed artwork is pulled down + there's more work that needs to be done related to this & storing the artwork)
Changed the Internet Radio library plug-in to prefer getting a pre-generated cache instead of relying upon the local client to do it (due to overall slowness in doing this & stability issues that were being seen via the crash reporter its simpler to off-load the work elsewhere which should along with other changes alleviate the stability issues plaguing this new plug-in)
Changed the Internet Radio library plug-in to remove any easily identifiable Radionomy provided streams from the services queried since they were killed off at the end of 2019 (was ~5000 but it's possible that some of their urls may still be there which can't be known until trying to play the stream url e.g. due to how the SHOUTcast service works)
Changed the $pad() ATF method to also work without an input string to help generate a fixed padding (e.g. $pad(*5) for 5 spaces or $pad(*5,#) for #####)
Changed the playback excluder handling to be called directly by the WACUP core instead of using the Winamp API which should improve its reliability & removes some of the quirks it had
Changed the installer to report itself as WACUP instead of using a generic NSIS related user-agent when downloading to resolve a complaint seen from a file scanning service
Changed the Big Bento Modern skins to no longer rely upon the bbm_sendmessage_*.exe by doing some hooking of the underlying calls the Modern skin engine does for the action running them
Changed how multiple instance detection is done to better constrain it to instances related to the installed WACUP instance (this should better help handling when running multiple installs as well as avoiding other programs that pretend to be Winamp which could even break Winamp's own multi-instance detection)
Changed the dead-lock detection handling to now make it possible to attempt to kill the bad process before resorting to the task manager (this should never be seen but sometimes 3rd party plug-ins can misbehave badly)
Changed the error reporter to also include the WACUP version in the attempted email title
Changed the IPC_EXECPLUG / IPC_EXECPLUGW APIs to accept a NULL parameter to run the currently user configured visualisation plug-in
Changed some of the media library core's drawing code to use more of the WACUP core shared GDI objects (this won't mean much but it helps to reduce some of the duplication of GDI objects used for drawing)
Changed the default behaviour of the start/stop button on the Streaming preferences page so it'll default to starting the streaming server as well as the first configured stream source if applicable (this is based off feedback received & should make it easier to start / stop streaming especially if not wanting the stream source to run in the auto-connect mode when the stream server is intentionally turned off)
Changed the installer to set the WACUP install folder to show the WACUP logo & also the installed WACUP version in it's tooltip (done as per a user request)
Changed how file version information is internally obtained to make things simpler & more consistent
Changed the external tools update action to better reflect what is installed (this helps first runs)
Changed the installer to reduce the size of the extracted copy of the 5.666 installer to exclude more files for a 40% on disk reduction
Changed the installer to use ExecDos instead of nsExec as it does the same but without an intermediate child process which A/V don't like
Changed the theming of the built-in streaming server landing page to be more dark-mode like & so it more closely aligns with WACUP's site
Changed the formatting of the information in the crash reports to remove some information no longer useful & to improve my reading of them
Changed the podcast preferences page to disable some of it's options if a subscription update is in progress to avoid a few potential issues
Changed the podcast plug-in to automatically remove incomplete downloads in the downloads list when a successful download later occurs
Changed the podcast plug-in to save the downloaded list when downloads have finished instead of waiting until the plug-in is unloaded
Changed the way the reported IP address on the Streaming preferences is determined to try to better deal with multiple adaptors/devices
Changed the Output plug-in preferences page to show a brief description of the plug-in to avoid having to change selection (which changes the output plug-in used) along with more obvious information if a plug-in is disabled or failed to load (this style of plug-in preferences page will be applied to the other pages in later builds)
Changed the installer to use supporting files in a manner that the Anti-Virus / Malware solutions find more preferable (this should reduce some of the report install issues)
Changed the installer to remove any cached legacy input plug-ins within the wavecache folder (related to the Waveform Seeker plug-in) to avoid crashes seen in some setups
Changed to not allow the loading of older versions of the Waveform Seeker plug-in (it causes issues & is wasting time with duplicate crash reports plus it's not something that should be done since WACUP includes a much newer version which fixes the issues that are being experienced)
Changed the SNESAmp Wrapper plug-in to rely upon the playlist loader to treat RSN archives (RAR compressed files) as playlists instead of the wrapper plug-in having to do it itself (more work needs to be done on this but it's better than RSNs being ignored as the first updated SNESAmp Wrapper build was doing)

Fixed a performance regression when trying to read metadata from MP3 files (especially those on slow devices like flash drives) related to the internal changes in recent builds as to how metadata is read
Fixed a crash when loading the playlist undo list & the ordering of data within the file is not in the expected manner (not sure why this occurs for some setups)
Fixed a debug message when using the Playlist File Remover hotkey being left enabled in release builds (oops it's been like it for ages & was only just noticed)
Fixed a possible cause of some input plug-in related crashes when trying to determine the appropriate input plug-in to use for playback / metadata actions
Fixed a possible failure with proxied HTTPS connections due to not setting up the connection to know about cacert.pem for relevant SSL setup & verification
Fixed the classic skin main window visualisation not working (a less than simple fix which involved changing the drawing to be fully done with WACUP code)
Fixed the playlist editor window visualisation incorrectly appearing within the middle of the main playlist editor window (this mainly affected modern skins but some installs with classic skins)
Fixed the colouriser api not being consistently initialised (this would cause excluded files not being indicated as such or the separator colouring options being disabled)
Fixed the MP4 input plug-in crashing if video support has been incompletely disabled at the time of trying to play a video
Fixed the MP4 input plug-in not handling pausing as expected
Fixed the tooltips of the main playlist editor window not showing in the correct location for a number of scenarios
Fixed some scenarios where the generically skinned windows might not maintain the minimum dimensions that are allowed
Fixed some minor optimisation issues with the generically skinned window painting
Fixed some loading related crash issues when some of the plug-ins were unexpectedly being double-hooked
Fixed the internet radio plug-in crashing in some setups when attempting to update it's statusbar text (this is based off what has been seen within the automatic crash reports)
Fixed the history plug-in not always showing a valid statusbar text message
Fixed an occasional crash when a recently downloaded podcast is attempting to be added to the replacement local library plug-in's database
Fixed IPC_GETVUDATAFUNC (generally used for the beat vis in modern skins) not returning the expected format of data (was more luck this wasn't crashing than just showing a wonky beat vis)
Fixed entering a folder path into the Add/Open URL dialog not working correctly due to an incompatibility in some of the replaced code vs the 5.666 implementation
Fixed the taskbar text not correctly showing unicode characters when the win10shell plug-in is enabled (the fun of doing things with C# code & not correctly handling subclassing)
Fixed a crash when renaming a library playlist name
Fixed a crash when saving the main playlist as a PLS playlist (was easier to replace this last piece of Winamp specific playlist saving code for WACUP provided code sans crashing)
Fixed an API message conflict (subject to plug-in updates & patches to fully resolve this) between IPC_GETSKINCURSORS & IPC_CB_VISRANDOM (both were set as 628 for some bizarre reason which is why a IPC_GETSKINCURSORS_OK set as 1628 has been added along with some other handling to re-map values between calls where possible)
Fixed an issue with the handling of the Classic Spectrum Analyser vis plug-in & it's preset / profile files
Fixed an inconsistency seen when removing library playlist(s) due to timing issues in how the update notifications were being processed
Fixed the open folder action not working correctly with zip:// and some other custom entries within the Win7Shell plug-in
Fixed the probable cause of a crash when trying to save a metadata change to a FLAC file tag due to a conflict in internal buffers being passed on
Fixed the probable cause of the playlist manager crashing due to the language service not being fully initialised in one of the service's calls
Fixed the probable cause of a crash in the Three Mode Repeat plug-in
Fixed the probable cause of a crash seen when trying to import iTunes playlists
Fixed the probable cause of some random crashes seen when saving m3u/m3u8 playlists
Fixed a crash when uninstalling input or general purpose plug-ins due to a selection change handling issue when the plug-in is in process of removal
Fixed a crash when both the WACUP agent & main WACUP program are running & you mouse over the icon (due to an issue with the IPC_GET_TASKBAR_TEXT API)
Fixed the import options on the library playlists root view right-click menu not working consistently
Fixed zip:// entries in library playlists being incorrectly handled making it seem that the index within the archive on the playlist entry was removed (it hadn't been & was correctly maintained in the actual playlist file but the checks for missing files was incorrectly altering a buffer used)
Fixed keyboard navigation not working correctly within the Podcasts view after tabbing into the embedded browser control
Fixed toggling some options within a modern skin causing the library playlists view to be switched to (due to a menu id range conflict between the plug-ins)
Fixed the explore option within the Podcasts view not opening to the appropriate folder for the downloads if there are no items selected or no downloaded file
Fixed the option on the Podcasts preference page to determine how many episodes to download not being correctly remembered
Fixed a crash seen with some Milkdrop presets when they cannot be correctly compiled (this may still not be a 100% resolution of crashes but it seems to help the cases reported)
Fixed the usage of region.txt with classic skins for basic transparency effects not being applied causing a number of classic skins to look wrong
Fixed a deadlock experienced in some setups when going from a classic skin to a modern skin due to an incomplete replacement of some of the IPC_EMBED_* apis
Fixed the archive playback plug-in repeatedly trying to clean-up folders on exit that no longer exist (this can save a few milliseconds on closing)
Fixed the queue manager window when enabled sometimes re-appearing when it's meant to be closed
Fixed the generic skinned windows not showing the correct cursor over parts of the window when double-size mode is enabled
Fixed the playback excluder not working as expected if the only item in the playlist is set as excluded
Fixed alignment & sizing issue with the installer welcome & finish pages when using OS text scaling
Fixed the drawing of the brand images on the support buttons on the about preference page when using OS text scaling
Fixed the drawing of the help images on the podcasts preference page when using OS text scaling
Fixed the skin selection dialog during setup not always closing the setup process correctly if not choosing to run WACUP
Fixed a resource leak related to modern skin preview images when using the 'Skins' preferences page
Fixed Milkdrop not correctly scaling most of its text related output when using OS text scaling (depending on whether configuration changes have already been made, it may still be necessary to manually adjust the font sizes used by Milkdrop within its configuration options)
Fixed the podcasts view loading to fix an initial selection quirk that kept occurring
Fixed a crash when using the explore item folder due to the underlying api failing
Fixed the Winamp Modern & Bento/Big Bento skin oscilloscope menus acting incorrectly (thanks victhor for the patch!)
Fixed the Yule Log plug-in not always resetting things back to default values correctly
Fixed using the Twitter support causing stability issues (e.g. crashing after closing the preferences window or random other random crashes)
Fixed an issue preventing adding new artwork (using the change or paste options) on the File Info artwork editor (still subject to input plug-in support at this time)
Fixed a number of quirks experienced when WACUP is minimised & restarted (e.g. windows becoming incorrectly closed when the process is later restored to be visible)
Fixed the first main playlist item being incorrectly drawn (especially when starting WACUP minimised) due to a font height calculation mis-match when first drawing occurs
Fixed the supporting resource dlls incorrectly using 'pack' instead of 'project' in their version information
Fixed a crash when viewing the Winamp version history due to a weird text encoding related processing failure
Fixed a file access sharing issue when trying to retrieve artwork which could prevent some file types from playing
Fixed some of the delay loaded system components (w5s) being loaded multiple times due to an existence test failure
Fixed an issue preventing the available video decoders from being initialised
Fixed a compatibility issue related to the video window changes preventing the (now old) Cover & Tag plug-in from loading
Fixed the Cover & Tag plug-in to save its settings in the correct settings folder so running as an administrator is not needed
Fixed the ClockAmp plug-in to save its settings in the correct settings folder so running as an administrator is not needed & so it doesn't break is using multiple installs
Fixed the likely cause of a hang on start-up if auto execute visualisation plug-ins on start-up & playback are both enabled
Fixed the visualisation action buttons (mostly seen in modern skins) from being double processed & possibly causing a crash
Fixed the replaygain plug-in not correctly handling not being able to write the processed results to the file
Fixed the possible cause of some of the random crashes experienced related to the drawing of the native windows
Fixed a file access sharing issue related to MP3 files which could prevent tag updates within & external of WACUP
Fixed a large memory leak when playing MP4 based video
Fixed playback of corrupted FLAC files not correctly aborting playback when the decoding issue occurs
Fixed the library Queue Manager view not drawing correctly on first loading as the selected library view
Fixed some of the weirdness seen when changing / refreshing the current skin within the current library view (this is not a complete fix as there's something weird going on within the media library core)
Fixed the Three Mode Repeat plug-in not always showing the expected classic base skin image
Fixed a conflict between the Streaming Url Processor & vgmstream input plug-ins which could prevent YouTube & related streaming urls from playing
Fixed user created colour themes via the colour theme editor with a "{coloredit}" prefix not being handled correctly (it's now removed as needed from the menus & preferences to better match expected behaviour)
Fixed a long standing modern skin engine issue causing the text within edit boxes to not be correctly sized (e.g. colour theme editor when scaled above 100% & much more)
Fixed the edit box of the web reader clipping the displayed text (related to the above change)
Fixed a possible cause of the modern skin engine crashing on unloading for some setups (based on the automatic crash report submissions)
Fixed the possible cause of some non-portable WACUP installs not having the 'pin to taskbar' option showing when running (aka Windows + related shortcut fun)
Fixed the uninstaller not removing the start menu &/or desktop icon(s) if created & then the option to create them was unchecked later on
Fixed the installer not always remembering the start menu &/or desktop icon setting depending on the installer mode currently being used
Fixed the installer not removing the start menu &/or desktop icon if the setting to have them has been changed to off whilst updating
Fixed still being able to load the vulnerable in_flv.dll plug-in (the installer would remove this but you can't help what some users try to do still)
Fixed a possible cause of the crash reporter hanging when trying to collect the initial details before handing off to another process that submits it
Fixed a settings cache issue causing the Not So Yasapi device specific settings from being read in due to a buffer truncation when priming the cache (this may have affected some other aspects but this was the only one reported)
Fixed the playback status of the Winamp Modern skin being mis-aligned by 1px when playback is paused compared to the playing & stopped conditions
Fixed the inconsistent loading of the user provided winamp.ico for the notification area icon
Fixed the win7shell plug-in not correctly recognising if it's been running under wacup.exe or winamp.exe to ensure that the jump list will open the correct (especially if pinned to the taskbar) instance
Fixed some issues with the recent & frequent items on the jump list actions provided by the win7shell plug-in when those options are enabled
Fixed restoring the JTFE playback queue between sessions causing the prior queue to be incorrectly added to the end of the playlist instead of re-using the existing playlist items
Fixed a number of issues related to moving around main playlist items in the JTFE playback queue (note: there are still some quirks which will be resolved in a later build once more of the playlist handling from the Winamp core has been replaced with all WACUP provided handling)
Fixed some quirks with the Waveform Wrapper plug-in loading validation (found whilst doing the SNESAmp Wrapper plug-in updates & integration)
Fixed a crash on loading when the SNESAmp Wrapper plug-in tries to load an old version of the SNESAmp Wrapper plug-in
Fixed the SNESAmp configuration dialog being unusable when the skinned preferences option is enabled (delphi weirdness)
Fixed the Waveform Seeker plug-in to not attempt to use the SNESAmp Wrapper plug-in for the legacy processing mode (without this it can cause a range of various stability issues)
Fixed the Not So Direct configuration changes being re-read in between sessions depending on how & when the preferences are accessed vs using the plug-in (if at all) for playback
Fixed a crash related to adding a new bookmark
Fixed the likely cause of a crash / deadlock seen under modern skins when using the SqrSoft Advanced Crossfading Output plug-in (primarily seen from FLAC playback in crash reports)
Fixed an issue introduced by the changes to deal with the IPC_GETSKINCURSORS & IPC_CB_VISRANDOM API message conflict
Fixed the likely cause of a crash / deadlock seen when trying to get metadata for the currenty playing item whilst a local media library (ml_local.dll) file scan is in-progress
Fixed the likely cause of some on close related crashes seen primarily when a modern skin was active at the time of closing
Fixed a combined crash issue related to modern skin loading & how the vis_classic plug-in deals with inappropriate window sizes
Fixed a crash when trying to change the artwork file used on the Twitter & Artwork preference pages (simpler is often better)
Fixed the video window not displaying correctly if the input plug-in doesn't complete opening the video renderer (e.g. MP4 files with a single image video track)
Fixed a compatibility issue vs 5.666 which was preventing the old 3rd party Dynamic Library plug-in from loading its preferences (related to the WACUP settings cache)
Fixed the winshaded equaliser window not being re-drawn on video window volume updates
Fixed a compatibility issue with the Icon Pack Installers which look for a gen_tray.dll (this was merged into the WACUP core but a stub dll is now provided to allow the installer checks to work)
Fixed some visual issues with the classic about window especially when using the skinned version of the window (it now tries to re-size the inner parts to the outer frame & a few other tweaks)
Fixed some visual issues with the skinned preferences window especially it incorrectly clipping its size or not showing anything within it when on a high dpi &/or OS text scaling enabled setup (there is still more to do related to this)

Other small changes to attempt to fix some of the issues from the crash reports, preparatory work to remove the need for a winamp.original child process & other code changes
Updated the Big Bento Modern skins to v1.1.5.1 (22 Jan 2020)
Updated cacert.pem to latest (1 Jan 2020)
Updated libcurl (libcurl.dll) to 7.69.0 (4 Mar 2020)
Updated libjpeg-turbo (image.w5s) to 2.0.4 (31 Dec 2019)
Updated libopenmpt (in_mod.dll) to 0.4.11.12392 (22 Dec 2019)
Updated libvorbis (libvorbis.dll) to the latest Git commit from 18 Jan 2020
Updated minizip (zlib.dll) to 2.9.2 (12 Feb 2020)
Updated Monkey's Audio (in_ape.dll) to 5.20 (24 Feb 2020)
Updated mpg123 (mpg123.dll) to 1.25.13 (26 Oct 2019)
Updated installer to be built with NSIS 3.05 (15 Dec 2019)
Updated the Milkdrop2 presets by Fumbling_Foo for your visual enjoyment
Updated unrar (unrar.dll) to 5.90.1 (29 Jan 2019)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 27 Feb 2020
Updated WavPack (in_wv.dll) to 5.2.1 (31 Jan 2020)


Preview Version: 1.0.9.5118
Released: 28 February 2020

Added a VU meter visualisation for classic skins to appear within the main window where the long existing spectrum analyser & oscilloscope visualisations appear
Added a replacement implementation for the classic skin video window so it will now support double-size mode (this was the last of the native windows to not support double-size mode) & all of the related handling that needed to be done to patch out & swap over to WACUP provided code for the window handling (might be a bit buggy so do report any issues with it!)
Added an option on the video preferences page that allows you under a classic skin to use a generically skinned window frame instead of the dedicated video window with its control area (this is provided if the skin is incomplete but the generic window has been skinned differently or if you just prefer having a simpler looking video window)
Added an initial build of Not So Direct (out_notsodirect.dll) which is a DirectSound output plug-in that is intended to replace the Winamp provided plug-in (out_ds.dll) (there are some features like gapless playback support which are missing though it's ultimately planned to do that handling not at the output plug-in stage but checking the stability of this new plug-in is the reason for including it now despite not being a 1:1 replacement)
Added $leftbracket() & $rightbracket() ATF methods to allow for ( and ) to be directly used in the ATF output (based on feedback received via the Discord server)
Added $padout() & $lpadout() ATF methods which act like the non-out methods but apply the padding to the string without accounting for the length of the string passed into them
Added native remove duplicate file(s) support to the main playlist editor & the library playlists (previously this was done via the JTFE plug-in but it wasn't stable so it's been re-written directly)
Added a copy of the modern skin colour editor (coloreditor.wac) to the installer & bumped it to v2.3.1 due to some minor size optimisations & resource additions (as is done to anything added to WACUP)
Added some additional reset buttons on the Discord & Twitter to make it easier to get back to the default formatting string if you've maybe gone a bit too far & messed up the string (it happens to all of us)
Added an option to the replacement local library plug-in to ignore the 'The' within the view filters (this replicates how the local library plug-in from Winamp 5.666 works at the expense of slower view loading times but you can now decide which behaviour you prefer to use - this is off by default as most haven't noticed it in a year or so of testing)
Add support to install 3 versions of the AVS visualisation plug-in (2.81d, 2.82 & Cockos Happy AVS) via the visualisation preference page for those needing AVS support (please remember that AVS likes to crash which is why it is not able to be installed by default)
Added additional options for configuring how the provided streaming server can be automatically started to also include starting the stream(s) (subject to them being correctly configured and using the provided streaming source plug-in - if using anything else then you'll need to configure that manually)
Added an updated version of the SNESAmp Wrapper plug-in which allows the 3rd party SNESAmp plug-in to work with WACUP without crashing & some general integration improvements that the wrapper brings (this will be generically installed but it will only be loaded & used if a valid SNESAmp installation is detected i.e. it should just work without you needing to do anything if you use SNESAmp)

Changed how WACUP reports it's DPI related support to Windows 10 (and earlier Windows with lesser levels of support) to start on the long road to improving High-DPI & mismatched monitor support (it's still not ideal but better than weird sub-scaling which was happening which is much worse imho)
Changed the WACUP loader to now by default be named wacup.exe whilst keeping the existing winamp.exe for required compatibility (this change minimises code duplication as much as possible between both loader instances with each exe using an appropriate icon - note: you may need to change the pinned taskbar instance based on your wanted icon preference)
Changed some more of the Winamp APIs to be handled with WACUP implementations to resolve some of the more quirkier issues seen within the auto-submitted crash reports
Changed how the WACUP loader works in combination with the original Winamp process it creates so that stdin/stdout should now be correctly passed through as required
Changed the classic skin visualisation preferences page to support the VU meter addition & some other related adjustments
Changed the configuration dialogs for the Not So Asio, Not So Direct & Not So Yasapi to now be done via native preference pages as a child of the Output plug-in preferences node (this is useful for allowing changing the configuration of the output plug-in without risking selecting a different output plug-in & filling your hard drive with a load of output as happens with inadvertently selecting out_disk)
Changed the classic skin visualisation preferences page update just the visualisation selection mode when clicking in the main window to toggle the mode instead of doing as Winamp's code which would force the whole preference page to be reloaded (aka would make it flicker which is not nice)
Changed the right-click menu handling within the video window to not have the main right-click menu as a sub-menu on it (this is more for classic skins where getting the main right-lick menu is the frame menu & the menu that was shown within the video window is now just for the active video area)
Changed how the IPC_GET_IVIDEOOUTPUT API is handled (compared to Winamp) to only create the underlying video output interface when its actually needed (for those not using video playback under WACUP but still have video support enabled then this will remove most of the overhead that video support brings vs it not being used)
Changed the default background fill colour for generic classic skinned windows to be WADLG_ITEMBG_BRUSH instead of WADLG_WNDBG_BRUSH (this is helpful for the video window changes)
Changed the video window creation handling so it will now not be created at all if video support has been intentionally disabled
Changed the default look of the video window to use the generically skinned window frame instead of the dedicated video window (see the video preferences page to change this as needed)
Changed the plug-in loading profiling option to now include the time the plug-in took to be loaded by the OS & renamed the existing option to relate to initialisation (this better reflects what was going on as well as helping me to better understand a large chunk of the time difference reported between plug-in initialisation & overall loading of plug-ins)
Changed the history, podcast, bookmarks, replaygain, internet radio & replacement local library plug-ins to now be compiled using VS2017 instead of VS2008 (this is a general change that more of the WACUP plug-ins will see over the coming builds where it makes sense to do so)
Changed the encoder (enc_*.dll) plug-ins to not use the delay load handling to resolve some odd crashes seen
Changed the WACUP provided input, output, encoder & general purpose plug-ins (in_*.dll, out_*.dll, enc_*.dll & gen_*.dll) plug-ins to now be compiled using VS2017 instead of VS2008 (this on average increases most of of the plug-ins by 5.0KB in size which isn't ideal but the better compiler & tooling support is worth the size increase for my needs for WACUP)
Changed the Ignorant Output plug-in (out_ignorant.dll) to now be built into the WACUP core (this is primarily for convenience with the core so that there's always a valid output plug-in available & it saves 4.5KB over the standalone plug-in)
Changed the WACUP provided DSP (dsp_*.dll) plug-in to now be compiled using VS2017 instead of VS2008
Changed a number of Winamp references within core & plug-in resources to instead use WACUP (more needs to be done as much less Winamp files are being used as part of a WACUP install)
Changed the win7shell & win10shell plug-ins to not be loaded even if installed when running under WINE to avoid crashes & providing options that are not appropriate to that use case
Changed the option to skin the preferences windows & other related windows to not be provided when running under WINE to avoid crashes & other issues that arise from generic subclassing
Changed how the skinned Jump to File dialog initially loads to deal with a visual glitch seen when running under WINE
Changed the handling when minimising WACUP so that it'll stay on the taskbar when the notification area icon has also been enabled unlike with 5.666 & earlier where it would disappear until the player was restored (note: if you prefer the older handling then let me know & I'll add in a compatibility option to get the prior behaviour back)
Changed the handling of HTTPS urls when passed to the legacy in_mp3 input plug-in to now be forced to attempt to play the HTTP version of the url as the plug-in is not able to correctly deal with HTTPS urls (this is not ideal but it's a means to better ensure that playing urls from podcast feeds for example will be playable instead of showing an "error syncing to stream" type error message)
Changed how PLS playlist files are written so where possible the "Version" & "NumberOfEntries" lines will be written at the start of the file when the number of entries is known (this is a small change but it can help improve the time it takes to parse a larger PLS playlist file if those values are located at the end of the playlist file)
Changed more of the WA_WA_IPC api methods to be handled via WACUP implementations instead of Winamp implementations (this also brings the addition of a IPC_WACUP_VERSION to mirror IPC_GETVERSION)
Changed the tooltip handling in the relevant classic skin windows to remove the need for the IPC_CB_GETTOOLTIPW / IPC_CB_GETTOOLTIP messages to be sent (this was only being used by the media library core plug-in option to have clicking on the bolt to show a more appropriate tooltip so it's now done directly & saves a load of windows messages being sent)
Changed the default loading behaviour of a few 3rd party plug-ins that are known to cause stability issues based on the crash reports (they can still be used but the user needs to manually enable them to be loaded once they've been installed)
Changed the archive support plug-in to not directly report the file it supports (i.e. 7Z, RAR & ZIP) to help avoid a number of conflicts when dealing with file association handling
Changed albumart.w5s to be merged together with metadata.w5s as both are key to WACUP functionality & merging helps to remove a cross-dependency that exists between them
Changed the Skin Manager plug-in to now be directly integrated into the WACUP core (keeping it as a plug-in makes little sense now with the direction WACUP is taking )
Changed the Podcasts plug-in to create & use folder. for the feed artwork information pane & some other related aspects instead of always re-downloading the image to display it to help save on bandwidth used & for quicker display of that artwork within WACUP (note: depending on how many podcast feeds you already have there might be a short lock-up on first loading the podcasts view after this change whilst the feed artwork is pulled down + there's more work that needs to be done related to this & storing the artwork)
Changed the Internet Radio library plug-in to prefer getting a pre-generated cache instead of relying upon the local client to do it (due to overall slowness in doing this & stability issues that were being seen via the crash reporter its simpler to off-load the work elsewhere which should along with other changes alleviate the stability issues plaguing this new plug-in)
Changed the Internet Radio library plug-in to remove any easily identifiable Radionomy provided streams from the services queried since they were killed off at the end of 2019 (was ~5000 but it's possible that some of their urls may still be there which can't be known until trying to play the stream url e.g. due to how the SHOUTcast service works)
Changed the $pad() ATF method to also work without an input string to help generate a fixed padding (e.g. $pad(*5) for 5 spaces or $pad(*5,#) for #####)
Changed the playback excluder handling to be called directly by the WACUP core instead of using the Winamp API which should improve its reliability & removes some of the quirks it had
Changed the installer to report itself as WACUP instead of using a generic NSIS related user-agent when downloading to resolve a complaint seen from a file scanning service
Changed the Big Bento Modern skins to no longer rely upon the bbm_sendmessage_*.exe by doing some hooking of the underlying calls the Modern skin engine does for the action running them
Changed how multiple instance detection is done to better constrain it to instances related to the installed WACUP instance (this should better help handling when running multiple installs as well as avoiding other programs that pretend to be Winamp which could even break Winamp's own multi-instance detection)
Changed the dead-lock detection handling to now make it possible to attempt to kill the bad process before resorting to the task manager (this should never be seen but sometimes 3rd party plug-ins can misbehave badly)
Changed the error reporter to also include the WACUP version in the attempted email title
Changed the IPC_EXECPLUG / IPC_EXECPLUGW APIs to accept a NULL parameter to run the currently user configured visualisation plug-in
Changed some of the media library core's drawing code to use more of the WACUP core shared GDI objects (this won't mean much but it helps to reduce some of the duplication of GDI objects used for drawing)
Changed the default behaviour of the start/stop button on the Streaming preferences page so it'll default to starting the streaming server as well as the first configured stream source if applicable (this is based off feedback received & should make it easier to start / stop streaming especially if not wanting the stream source to run in the auto-connect mode when the stream server is intentionally turned off)
Changed the installer to set the WACUP install folder to show the WACUP logo & also the installed WACUP version in it's tooltip (done as per a user request)
Changed how file version information is internally obtained to make things simpler & more consistent
Changed the external tools update action to better reflect what is installed (this helps first runs)
Changed the installer to reduce the size of the extracted copy of the 5.666 installer to exclude more files for a 40% on disk reduction
Changed the installer to use ExecDos instead of nsExec as it does the same but without an intermediate child process which A/V don't like
Changed the theming of the built-in streaming server landing page to be more dark-mode like & so it more closely aligns with WACUP's site
Changed the formatting of the information in the crash reports to remove some information no longer useful & to improve my reading of them
Changed the podcast preferences page to disable some of it's options if a subscription update is in progress to avoid a few potential issues
Changed the podcast plug-in to automatically remove incomplete downloads in the downloads list when a successful download later occurs
Changed the podcast plug-in to save the downloaded list when downloads have finished instead of waiting until the plug-in is unloaded
Changed the way the reported IP address on the Streaming preferences is determined to try to better deal with multiple adaptors/devices

Fixed a performance regression when trying to read metadata from MP3 files (especially those on slow devices like flash drives) related to the internal changes in recent builds as to how metadata is read
Fixed a crash when loading the playlist undo list & the ordering of data within the file is not in the expected manner (not sure why this occurs for some setups)
Fixed a debug message when using the Playlist File Remover hotkey being left enabled in release builds (oops it's been like it for ages & was only just noticed)
Fixed a possible cause of some input plug-in related crashes when trying to determine the appropriate input plug-in to use for playback / metadata actions
Fixed a possible failure with proxied HTTPS connections due to not setting up the connection to know about cacert.pem for relevant SSL setup & verification
Fixed the classic skin main window visualisation not working (a less than simple fix which involved changing the drawing to be fully done with WACUP code)
Fixed the playlist editor window visualisation incorrectly appearing within the middle of the main playlist editor window (this mainly affected modern skins but some installs with classic skins)
Fixed the colouriser api not being consistently initialised (this would cause excluded files not being indicated as such or the separator colouring options being disabled)
Fixed the MP4 input plug-in crashing if video support has been incompletely disabled at the time of trying to play a video
Fixed the MP4 input plug-in not handling pausing as expected
Fixed the tooltips of the main playlist editor window not showing in the correct location for a number of scenarios
Fixed some scenarios where the generically skinned windows might not maintain the minimum dimensions that are allowed
Fixed some minor optimisation issues with the generically skinned window painting
Fixed some loading related crash issues when some of the plug-ins were unexpectedly being double-hooked
Fixed the internet radio plug-in crashing in some setups when attempting to update it's statusbar text (this is based off what has been seen within the automatic crash reports)
Fixed the history plug-in not always showing a valid statusbar text message
Fixed an occasional crash when a recently downloaded podcast is attempting to be added to the replacement local library plug-in's database
Fixed IPC_GETVUDATAFUNC (generally used for the beat vis in modern skins) not returning the expected format of data (was more luck this wasn't crashing than just showing a wonky beat vis)
Fixed entering a folder path into the Add/Open URL dialog not working correctly due to an incompatibility in some of the replaced code vs the 5.666 implementation
Fixed the taskbar text not correctly showing unicode characters when the win10shell plug-in is enabled (the fun of doing things with C# code & not correctly handling subclassing)
Fixed a crash when renaming a library playlist name
Fixed a crash when saving the main playlist as a PLS playlist (was easier to replace this last piece of Winamp specific playlist saving code for WACUP provided code sans crashing)
Fixed an API message conflict (subject to plug-in updates & patches to fully resolve this) between IPC_GETSKINCURSORS & IPC_CB_VISRANDOM (both were set as 628 for some bizarre reason which is why a IPC_GETSKINCURSORS_OK set as 1628 has been added along with some other handling to re-map values between calls where possible)
Fixed an issue with the handling of the Classic Spectrum Analyser vis plug-in & it's preset / profile files
Fixed an inconsistency seen when removing library playlist(s) due to timing issues in how the update notifications were being processed
Fixed the open folder action not working correctly with zip:// and some other custom entries within the Win7Shell plug-in
Fixed the probable cause of a crash when trying to save a metadata change to a FLAC file tag due to a conflict in internal buffers being passed on
Fixed the probable cause of the playlist manager crashing due to the language service not being fully initialised in one of the service's calls
Fixed the probable cause of a crash in the Three Mode Repeat plug-in
Fixed the probable cause of a crash seen when trying to import iTunes playlists
Fixed the probable cause of some random crashes seen when saving m3u/m3u8 playlists
Fixed a crash when uninstalling input or general purpose plug-ins due to a selection change handling issue when the plug-in is in process of removal
Fixed a crash when both the WACUP agent & main WACUP program are running & you mouse over the icon (due to an issue with the IPC_GET_TASKBAR_TEXT API)
Fixed the import options on the library playlists root view right-click menu not working consistently
Fixed zip:// entries in library playlists being incorrectly handled making it seem that the index within the archive on the playlist entry was removed (it hadn't been & was correctly maintained in the actual playlist file but the checks for missing files was incorrectly altering a buffer used)
Fixed keyboard navigation not working correctly within the Podcasts view after tabbing into the embedded browser control
Fixed toggling some options within a modern skin causing the library playlists view to be switched to (due to a menu id range conflict between the plug-ins)
Fixed the explore option within the Podcasts view not opening to the appropriate folder for the downloads if there are no items selected or no downloaded file
Fixed the option on the Podcasts preference page to determine how many episodes to download not being correctly remembered
Fixed a crash seen with some Milkdrop presets when they cannot be correctly compiled (this may still not be a 100% resolution of crashes but it seems to help the cases reported)
Fixed the usage of region.txt with classic skins for basic transparency effects not being applied causing a number of classic skins to look wrong
Fixed a deadlock experienced in some setups when going from a classic skin to a modern skin due to an incomplete replacement of some of the IPC_EMBED_* apis
Fixed the archive playback plug-in repeatedly trying to clean-up folders on exit that no longer exist (this can save a few milliseconds on closing)
Fixed the queue manager window when enabled sometimes re-appearing when it's meant to be closed
Fixed the generic skinned windows not showing the correct cursor over parts of the window when double-size mode is enabled
Fixed the playback excluder not working as expected if the only item in the playlist is set as excluded
Fixed alignment & sizing issue with the installer welcome & finish pages when using OS text scaling
Fixed the drawing of the brand images on the support buttons on the about preference page when using OS text scaling
Fixed the drawing of the help images on the podcasts preference page when using OS text scaling
Fixed the skin selection dialog during setup not always closing the setup process correctly if not choosing to run WACUP
Fixed a resource leak related to modern skin preview images when using the 'Skins' preferences page
Fixed Milkdrop not correctly scaling most of its text related output when using OS text scaling (depending on whether configuration changes have already been made, it may still be necessary to manually adjust the font sizes used by Milkdrop within its configuration options)
Fixed the podcasts view loading to fix an initial selection quirk that kept occurring
Fixed a crash when using the explore item folder due to the underlying api failing
Fixed the Winamp Modern & Bento/Big Bento skin oscilloscope menus acting incorrectly (thanks victhor for the patch!)
Fixed the Yule Log plug-in not always resetting things back to default values correctly
Fixed using the Twitter support causing stability issues (e.g. crashing after closing the preferences window or random other random crashes)
Fixed an issue preventing adding new artwork (using the change or paste options) on the File Info artwork editor (still subject to input plug-in support at this time)
Fixed a number of quirks experienced when WACUP is minimised & restarted (e.g. windows becoming incorrectly closed when the process is later restored to be visible)
Fixed the first main playlist item being incorrectly drawn (especially when starting WACUP minimised) due to a font height calculation mis-match when first drawing occurs
Fixed the supporting resource dlls incorrectly using 'pack' instead of 'project' in their version information
Fixed a crash when viewing the Winamp version history due to a weird text encoding related processing failure
Fixed a file access sharing issue when trying to retrieve artwork which could prevent some file types from playing
Fixed some of the delay loaded system components (w5s) being loaded multiple times due to an existence test failure
Fixed an issue preventing the available video decoders from being initialised
Fixed a compatibility issue related to the video window changes preventing the (now old) Cover & Tag plug-in from loading
Fixed the Cover & Tag plug-in to save its settings in the correct settings folder so running as an administrator is not needed
Fixed the ClockAmp plug-in to save its settings in the correct settings folder so running as an administrator is not needed & so it doesn't break is using multiple installs
Fixed the likely cause of a hang on start-up if auto execute visualisation plug-ins on start-up & playback are both enabled
Fixed the visualisation action buttons (mostly seen in modern skins) from being double processed & possibly causing a crash
Fixed the replaygain plug-in not correctly handling not being able to write the processed results to the file
Fixed the possible cause of some of the random crashes experienced related to the drawing of the native windows
Fixed a file access sharing issue related to MP3 files which could prevent tag updates within & external of WACUP
Fixed a large memory leak when playing MP4 based video
Fixed playback of corrupted FLAC files not correctly aborting playback when the decoding issue occurs
Fixed the library Queue Manager view not drawing correctly on first loading as the selected library view
Fixed some of the weirdness seen when changing / refreshing the current skin within the current library view (this is not a complete fix as there's something weird going on within the media library core)
Fixed the Three Mode Repeat plug-in not always showing the expected classic base skin image
Fixed a conflict between the Streaming Url Processor & vgmstream input plug-ins which could prevent YouTube & related streaming urls from playing
Fixed user created colour themes via the colour theme editor with a "{coloredit}" prefix not being handled correctly (it's now removed as needed from the menus & preferences to better match expected behaviour)
Fixed a long standing modern skin engine issue causing the text within edit boxes to not be correctly sized (e.g. colour theme editor when scaled above 100% & much more)
Fixed the edit box of the web reader clipping the displayed text (related to the above change)
Fixed a possible cause of the modern skin engine crashing on unloading for some setups (based on the automatic crash report submissions)
Fixed the possible cause of some non-portable WACUP installs not having the 'pin to taskbar' option showing when running (aka Windows + related shortcut fun)
Fixed the uninstaller not removing the start menu &/or desktop icon(s) if created & then the option to create them was unchecked later on
Fixed the installer not always remembering the start menu &/or desktop icon setting depending on the installer mode currently being used
Fixed the installer not removing the start menu &/or desktop icon if the setting to have them has been changed to off whilst updating
Fixed still being able to load the vulnerable in_flv.dll plug-in (the installer would remove this but you can't help what some users try to do still)
Fixed a possible cause of the crash reporter hanging when trying to collect the initial details before handing off to another process that submits it
Fixed a settings cache issue causing the Not So Yasapi device specific settings from being read in due to a buffer truncation when priming the cache (this may have affected some other aspects but this was the only one reported)
Fixed the playback status of the Winamp Modern skin being mis-aligned by 1px when playback is paused compared to the playing & stopped conditions
Fixed the inconsistent loading of the user provided winamp.ico for the notification area icon
Fixed the win7shell plug-in not correctly recognising if it's been running under wacup.exe or winamp.exe to ensure that the jump list will open the correct (especially if pinned to the taskbar) instance
Fixed some issues with the recent & frequent items on the jump list actions provided by the win7shell plug-in when those options are enabled
Fixed restoring the JTFE playback queue between sessions causing the prior queue to be incorrectly added to the end of the playlist instead of re-using the existing playlist items
Fixed a number of issues related to moving around main playlist items in the JTFE playback queue (note: there are still some quirks which will be resolved in a later build once more of the playlist handling from the Winamp core has been replaced with all WACUP provided handling)
Fixed some quirks with the Waveform Wrapper plug-in loading validation (found whilst doing the SNESAmp Wrapper plug-in updates & integration)

Other small changes to attempt to fix some of the issues from the crash reports, preparatory work to remove the need for a winamp.original child process & other code changes

Updated the Big Bento Modern skins to v1.1.5.1 (22 Jan 2020)
Updated cacert.pem to latest (1 Jan 2020)
Updated libcurl (libcurl.dll) to 7.68.0 (8 Jan 2020)
Updated libjpeg-turbo (image.w5s) to 2.0.4 (31 Dec 2019)
Updated libopenmpt (in_mod.dll) to 0.4.11.12392 (22 Dec 2019)
Updated libvorbis (libvorbis.dll) to the latest Git commit from 18 Jan 2020
Updated minizip (zlib.dll) to 2.9.2 (12 Feb 2020)
Updated Monkey's Audio (in_ape.dll) to 5.19 (9 Feb 2020)
Updated mpg123 (mpg123.dll) to 1.25.13 (26 Oct 2019)
Updated installer to be built with NSIS 3.05 (15 Dec 2019)
Updated the Milkdrop2 presets by Fumbling_Foo for your visual enjoyment
Updated unrar (unrar.dll) to 5.90.1 (29 Jan 2019)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 27 Feb 2020
Updated WavPack (in_wv.dll) to 5.2.1 (31 Jan 2020)


Preview Version: 1.0.8.4346
Released: 14 October 2019

Changed the version check to be run the next time WACUP is started after a crash occurred to make it more obvious if a newer version is available (this is based of the automatic crash report submissions where people are still using older builds despite a newer build with appropriate fixes having been out for more than a week which just causes more work than needed)

Fixed the cause of the Winamp Classic Modern (WCM) based modern skins throwing a divide by zero error for some installs (this was not easy to track down & fixes something that's been going on for months - but its fixed now!)
Fixed an occasional crash when trying to determine the input plug-in to be used for some actions (this also possible helps get the old mp3pro input plug-in working)
Fixed WMA & WMV files not having their metadata read when the DirectShow input plug-in is handling playback for them (more work needs to be done but this is a start)
Fixed a delay loading dll issue crash related to loading of the main playlist (still not sure why despite the appropriate handling in WACUP that these issues occur for some but not all)
Fixed a delay loading dll issue crash related to starting WAV file playback
Fixed the likely cause of MP4 based playback not completing the stop action
Fixed opening the preferences from the replacement local library plug-in crashing (not entirely sure how this happened but that's what the crash report showed)
Fixed a crash on loading when trying to load a playlist file & the playlist manager service has failed to be initialised at the time
Fixed category not being correctly read from ID3v2.x tags for MP3 files (changes in build #4334 introduced this change whilst fixing other crashing issues)
Fixed some metadata fields for WMA based tags not mapping to the expected Winamp/WACUP values
Fixed the likely cause of the podcasts library view sometimes locking up & causing a crash when the subscribed podcast feeds are being updated

Updated libopenmpt (in_mod.dll) to 0.4.9.12139 (2 Oct 2019)


Preview Version: 1.0.8.4334
Released: 8 October 2019

Fixed the likely reason behind the Winamp Classic Modern & Big Bento Modern skins randomly crashing when loading them (thanks Victhor)
Fixed the crash reporter hanging sometimes when attempting to run the Info Tool to create a report due to the OS refusing to run the tool
Fixed the Big Clock time remaining mode not always showing the expected time for some files
Fixed the colour theme sub-menu not always responding correctly to selecting a new colour theme
Fixed some crashes related to a corrupted playing file string that could break some plug-ins
Fixed a possible issue that can cause trying to load a wav file to fail when checking for it being an MP3 file in disguise
Fixed a potential cause of playing youtube videos via the MP4 demuxer plug-in (in_mp4.dll) not always handling stop correctly
Fixed a crash on the File Associations diagnostics preference page due to buffer handling mismatch
Fixed a crash when trying to enable / disable the agent notification area icon
Fixed a crash when loading MP4 based files that require the AAC decoder service to be loaded
Fixed a crash when clicking 'OK' on the MP4 Demuxer input plug-in (in_mp4.dll) configuration dialog
Fixed changing the location of the Play Tracking log folder not storing the correct folder path
Fixed a first run crash on some installs when the local library plug-in (ml_local.dll) is not able to successfully create its default smartviews (instead of relying on the plug-in to create the files needed there are now pre-generated files provided which is safer & also makes the first run load a bit quicker)
Fixed the incorrect handling of some dll delay loading failures where it was not attempted to manually load the requested dll (this seems to mainly have been happening with the loading of libcurl.dll & libsndfile.dll from requests via input plug-ins to the WACUP core)
Fixed possible causes of the settings cache crashing when handling settings files being externally modified and additional internal scenarios
Fixed a possible cause of some installs failing to run due to the OS api used to determine the settings folder WACUP should use failing (this now applies a specific check for the default configuration to attempt to avoid the OS api that is triggering the issue)
Fixed some of the metadata entries shown in the Raw Metadata tab of the File Info / Alt+3 dialog not using the expected Winamp/WACUP naming (e.g. label vs publisher)
Fixed the ID3v2.x rating not being shown in the Raw Metadata tab of the File Info / Alt+3 dialog if its present
Fixed the local MP3 file metadata reading related crashes by replacing the metadata related calls to the MP3 decoder plug-in (in_mp3.dll) to instead use the metadata based taglib service with WACUP (this is not the final fix but it should do enough to resolve the majority of the crashes related to the plug-in from 5.666 until it is replaced with a WACUP build)


Beta Version: 1.0.8.4312
Released: 3 October 2019

Added support to attempt to automatically upload crash reports instead of relying upon an installed email client along with some additional options on the Error Reporting preferences page (by default emailing will still be attempted as this is helpful to be able to respond to crash reports which is not possible with the automatically uploaded submissions)
Added a compatibility option on the modern skin font rendering peferences page to use the older font handling method which may help on some setups where skin provided fonts may not be used
Added support for a main playlist window no-selection specific menu (e.g. allowing access to the undo options menu items when clicking on the dead area in the playlist editor window)

Changed the Playlist Separator extras menu options to be moved up into the main separator menu instead of being a sub-menu to ease quick / repeated access to those separator menu options
Changed the Playlist Separator menus to hide the "Insert separator between folders" option if the auto-insert option is enabled via the preferences page (is redundant to leave an option present which is automatically be run under that scenario)
Changed the media library plug-ins preference page to not show the Portables (ml_pmp.dll) plug-in as a critical failure if there are no portable plug-ins (pmp_*.dll) loaded & instead as 'INACTIVE' to better reflect that plug-in doing just that
Changed the separator colouring options to allow for just setting the text colour without forcing the background colour to be the current selected playlist item colouring
Changed the Audio Capture plug-in to be fully portable mode compatible (if you've already been using this plug-in then I'm sorry but you'll need to re-enter your capture presets, etc - dr. flay made me do it)
Changed some of the wording of the playlist related menus to be more consistently phrased
Changed what happens if the default paths.ini file is not present to now act like it does as if the default paths.ini file was present with respect to the settings folder that will be attempted to be used (e.g. %appdata%WACUP) instead of trying to use the folder that WACUP is running from (this change is to better deal with loss / corruption of the paths.ini file whilst providing better compatibility with how & where settings can be saved on the versions of Windows as supported by WACUP)
Changed how the podcast plug-in determines some of the file information when downloading & updating it's cached information to attempt to resolve the lock-up that occurs for some (this is the start of moving more towards metadata retrieval that will work better in asynchronous situations as podcast handling generally involves)

Fixed freetype.wac not loading correctly on different installs due to some odd dependency issues (this may also improve the reliability of the color editor component loading)
Fixed some of the live patching not being correctly applied which led to some crash issues re-appearing (e.g. odd in_mp3.dll metadata reading issues should be fixed again)
Fixed some loading related issues that could affect some installs (caused by unexpected delay loading failures & recursive patching quirks due to A/V software screwing up things)
Fixed the Portable plug-ins preference page showing a could not be loaded error as a side-effect of some of the preference window handling changes in the prior build (most won't have noticed as the plug-in is turned off by default due to portable devices not being all that commonly used afaict)
Fixed drag + dropping file(s) onto the main playlist above the current playlist item causing the current item to change to be the last item in the playlist
Fixed some typos in the installer
Fixed some preference changes not being saved if closing the preferences window instead of moving to another preference page (this was sadly introduced in the last build when taking over more of the handling of the preferences window, oops)
Fixed saving issues with unicode based separator configuration / preset strings causing them to be corrupted when re-read on the next loading
Fixed excluded playlist items having a drawing issue on non-selected playlist items
Fixed the paths.ini file editor not showing the selected folder to load / save
Fixed where possible the reported settings cache related crash issues received
Fixed the Not So YASAPI output plug-in not always initialising everything it needs which could cause crashes when going to it's preferences or when trying to start playback with it as the active output plug-in
Fixed the Not So ASIO output plug-in not always initialising everything it needs which could cause crashes when going to it's preferences or when trying to start playback with it as the active output plug-in
Fixed the Not So ASIO output plug-in not behaving correctly when the gapless option was disabled (ASIO drivers are buggy as hell so hopefully this hasn't broken anything that was ok previously)

Updated unrar (unrar.dll) to 5.80.2 (26 Sep 2019)


Preview Version: 1.0.7.4264
Released: 24 September 2019

Changed how opening of the preferences window is handled to remove a lot of duplicate processing that was going on such as having it achieve the better sectioning of preference options (this was needed for the preference related fixes noted below & turned into an optimisation exercise)
Changed all of the visualisation preference page handling to now be WACUP managed (needed to be done related to the running visualisation related crash issue fixed below)
Changed the global hotkeys preference page to prompt if the user wants to reset the custom hotkeys back to their defaults (also tweaked the page layout to better split the two modes of hotkeys based on feedback received)
Changed how the loading of the BogProg LiveWire DSP is done to limit WACUP's hooking of the DSP (as it does to all loaded plug-ins) to resolve some stability issues with this DSP
Changed the FLAC input plug-in to be built with VS2017 (more plug-ins will be moved over to the newer compiler over the coming builds - will hold off on VS2019 for the time being before anyone asks, heh)
Changed the Milkdrop2 plug-in to ignore X3025 shader compiler errors as the shader is still compiling ok from tests & is causing user confusion
Changed the in_vgmstream input plug-in to not attempt to take the .vgm file extension as this breaks the in_vgm input plug-in which has a legitimate need to handle .vgm files
Changed the Discord & Twitter preference nodes to no longer break accessibility via the keyboard navigation as well as changing where the options tab are in relation to the modes

Fixed a conflict between the normal handling of multimedia hotkeys via the Global Hotkeys plug-in & the SMTC / Win10Shell integration (this should now resolve the main issues reported e.g. stop not working)
Fixed trying to run the config action of visualisation plug-ins either not working or crashing (a certain developer hadn't finished replacing all of the handling needed - silly dev)
Fixed a running visualisation or DSP plug-in possibly crashing when using the uninstall option if they're running at the time of the uninstall attempt (5.666 doesn't seem to do this)
Fixed the FLAC input plug-in potentially leaking a small amount of memory on each file played
Fixed a localisation crash when trying to add a password protected RAR archive into a playlist
Fixed some issues with trying to select the Windows Classic Modern (WCM) skin during new WACUP installs
Fixed some MP4 based files failing to end playback when reaching the end of the file either under normal playback (this was due to incorrect header information) or if doing fast seeking through the file
Fixed opening the preferences window sometimes causing WACUP to lock-up due to a processing issue
Fixed opening the preferences window not assigning items correctly to the parent nodes if the preferences window was opened whilst plug-ins were still being loaded
Fixed the active Streaming Source preferences window now always being set as fully visible due to some loading order quirks
Fixed the Stream Source Server config action not working as expected
Fixed some of the flickering seen when using the skinned preferences mode (on opening & changing to some of the preference pages)
Fixed the prompt to restart WACUP when disabling the skinned preferences option not being shown
Fixed playing a separator double-jumping over the playlist entry after it

Other related code changes to achieve more WACUP provided handling of the preferences window & associated code removal due to less handling being needed

Updated libflac to version from the latest github commit (15 Sep 2019)
Updated libopenmpt (in_mod.dll) to 0.4.7.12088 (23 Sep 2019)
Updated zlib-ng (zlib.dll) to latest re-based update (18 Sep 2019)


Beta Version: 4234
Released: 16 September 2019

Changed the default custom global hotkeys list to no longer include multimedia keys (the default handling options of the global hotkeys plug-in along with the addition of the win10shell plug-in can otherwise conflict e.g. stop or play/pause doesn't appear to do anything as the two plug-ins can counteract each other)
Changed the Library History plug-in to not try to update main playlist items as this is causing issues with the Yule Log plug-in (will provide a better solution to achieve the desired aim at a later time)
Changed the new to build 4220 failed memory allocation handler to allow a workaround for in_mp3 tag related issues to keep working instead of it triggering the crash reporter (in_mp3 is a plug-in that badly needs to be replaced but it's somewhat important to normal playback, etc)

Fixed syntax errors in some ATF formatting strings causing a crash due to a localisation error
Fixed trying to turn off custom hotkeys not working correctly (build 4220 specific issue)
Fixed HTTP POST actions via Yule Log not working due to a libcurl behavioural change (specifically it needed CURLOPT_POSTFIELDSIZE setting to zero for CURLOPT_POST actions ven though there was no body data being sent in our mrthod of usage along with a decision to make it work in HTTP/1.1 mode instead of also attempting to use a HTTP/2 mode)
Fixed the Undo plug-in crashing due to an annoyingly old bug (which pre-dates WACUP) when loading the prior undo list information as a request of an integrity check failing if square brackets were found elsewhere in the file (that'll teach past me to optimise loading an ini-style file)
Fixed titles not being correctly shown when starting playback of supported files from an archive
Fixed RAR playback not working correctly (there's still issues with this that will be resolved later)
Fixed a hang or crash on close (varies by setup) when having played supported files from an archive

Other small adjustments based on some of the quirks seen from the crash reports received & how those crashes could interact with other parts of the code

Updated cacert.pem to latest (28 Aug 2019)
Updated libexpat (xml.w5s) to 2.2.8 (13 Sep 2019)
Updated OpenSSL (libcurl.dll) to 1.1.1d (10 Sep 2019)
Updated pugixml to 1.10 (15 Sep 2019)


Beta Version: 1.0.6.4220
Released: 13 September 2019

Added the Winamp Classic Modern (WCM) v1.0.3 skin for your enjoyment - a massive thank you goes to Victhor for all of the work gone into making another skin (see also the Big Bento Modern (BBM) skins) with its focus on improved usability on higher resolution screens whilst keeping a feel of the 2.x classic skin aesthetic <3
Added a @WACUP@ custom variable for modern skins to be able to use to detect if running under a WACUP install or not to help make it easier to offer any visual customisation as required (this is converted to a 1 when passed into scripts as a parameter value under wacup & will be 0 or an empty string under a non-WACUP install)
Added a 'wacupscreenshot' entry for modern skins to be able to provide a WACUP specific screenshot when the skin is built to work with both WACUP or Winamp
Added an initial plug-in (gen_win10shell.dll) which for the moment just provides System Media Transport Control (SMTC) support on Windows 10 Release 1607 & newer so its now possible for WACUP to provide some information about what is playing for when the volume / playback state is changed & an OS provided window appears to show the status changing (note: the SMTC support is based upon code from a prior OSS C++/C# plug-in - see the about dialog for more information)
Added support when looking for artwork to now additionally use the filename + image extension as a means to try to increase the chance of finding available artwork
Added option on the Global Hotkey preferences page to ignore volume controls when the WM_APPCOMMAND (aka Windows Media Player / multimedia keys support) which is enabled by default (this is useful if wanting to control WACUP via the other multimedia keys but want to use the volume controls for the machine as a whole without also changing WACUP's volume level)

Changed the default loading behaviour of some of the supporting component dlls to better match the disabled input plug-ins which rely upon them
Changed the handling of plug-in loading to remove some unintentional duplicate processing which provides a small reduction in loading times (this applies more to the loading of the w5s component dlls to refine the overall handling of them under WACUP)
Changed the right-click menu in the Library Playlists root list to also have the import menu items on that menu in addition to the button at the bottom of the view (when the view is smaller that button isn't always visible so this can help to ensure imports are seen as possible to do)
Changed the handling of trying to delete a skin via the skin preferences page to better deal with deletion failures (this also involved taken on more of the handling of the preferences page from the Winamp core to resolve it not bothering to check the success / failure of the attempt)
Changed how crashes are dealt with to better leverage Windows Error Reporting (WER) to try to make sure some form of crash dump can be generated if the built-in WACUP crash reportor is unable to catch the error directly & instead is able to in-directly obtain it in combination with WER
Changed the installer wait time if a running WACUP instance is found & needs to be closed to account for the modern skin engine slow closing fixes (this had been increased to deal with files being reported as still in usage but this should hopefully not happen now due to everything taking less time to complete closing when using a modern skin)
Changed the settings cache to attempt to automatically deal with external modifications of ini based settings files which may have been cached (e.g. milk2_msg.ini)
Changed (again) how the Undo plug-in works to try to resolve some of the stability issues it has been causing (see the Explorer related fixes below)
Changed the Library History plug-in to indicate a title update of the playing item in the main playlist editor might be needed (e.g. if the playcount is set to be shown)

Fixed a key performance issue behind modern skins being much slower to load & close on Windows 10 compared to an equivalent setup on other versions of Windows (how much of a reduction in loading & closing times will vary depending on the selected modern skin, hardware & OS install used but a 2 second reduction has been seen on a number of test installs across recent hardware)
Fixed a number of plug-in related issues causing crashes to occur when trying to load files via Explorer (including potential fixes for the Play & Play All media actions that has been an issue for a while though it seems like this may still not be a complete fix until proper file association handling is implemented)
Fixed a slew of issues related to elevation (UAC) handling from correctly ensuring the WACUP implementation is used to better dealing with access failures
Fixed the Playlist Undo plug-in conflicting with some actions (e.g. the previous button on the basic OS taskbar preview)
Fixed the menu on the close button of the preferences window not showing the correct text due to a localistion issue
Fixed the Notification Area preferences page & possibly some other places showing the incorrect text on dynamically loaded content
Fixed the stop global hotkey not always working (e.g. when using the Ctrl+Alt+End hotkey) if the Next On Stop plug-in was present & enabled (the plug-in was incorrectly treating that as a request to toggle the on/off mode of the NOS plug-in instead of the intended stop playback action)
Fixed some random crashes seen when manipulating the Library Playlists due to a loading optimisation gone awry in the playlists core service
Fixed a crash (or hang) on close if the old in_mp3hd.dll plug-in is present in an install due to it being an evil plug-in which unloads the MP3 input plug-in (in_mp3.dll) itself instead of leaving it to the input plug-in handling (just please don't use this plug-in unless you really must)
Fixed a crash when using the 'explore item folder' right-click menu action on the skins preferences page list
Fixed some issues seen with zip based archives not being released in all cases (e.g. skins ending in a .zip extension could not be deleted if the Skin Manager plug-in was enabled)
Fixed the crash reporter failing to start for some installs (not that you should be seeing this appear that often nowadays anyway)
Fixed a number of compatibility related crashes with the sqrsoft output & general purpose controller plug-ins (would be nice to get them updated to support more recent wacup/winamp releases but that is probably a lost cause based on prior attempts)
Fixed the updater loading some of the supporting dlls when not needed
Fixed the crash reporter not always including the Info Tool report due to a conflict with the settings cache not seeing the Info Tool having updated its settings file on report completion
Fixed embedded artwork in MP4 based files not always being displayed (build issue & implementation problems were causing this)
Fixed resizing issues of irregular artwork in the Classic Artwork plug-in causing images to be incorrectly scaled as a square
Fixed resizing issues of irregular artwork in the Taskbar preview when its configured to show now playing information
Fixed image files placed into the main playlist editor not being displayed in the Classic Artwork plug-in window & other compatible parts of the skin being used
Fixed the artwork tab on the Alt+3 file information dialog not always showing the correct helper information (coding is messy at times you know)
Fixed a crash when unloading the LoudMax DSP plug-in either via the preferences or on closing (the fixed crash reporter caught this happening & have reached out to the plug-in author to see if a proper fix can be provided)
Fixed a FLAC playback issue causing static to be output for some or all of a file when the bitrate or samplerate for consecutive FLAC files changes
Fixed adding some iTunes podcast urls causing a crash due to incomplete data in the response provided
Fixed a crash when attempting to play video only MP4 files with the Waveform Seeker plug-in & its legacy handling mode also enabled (this should have been automatically skipped but was missed when moving from the 5.666 in_mp4.dll to the replacement provided by WACUP)
Fixed the decoder name string not being correctly shown under modern skins due to the recent plug-in implementation changes (at times I have to hate myself for changes I made officially years back that then need to be re-patched to then correct handle what's wanted for the future)
Fixed drag+drop of a folder onto the main window not working as it would just clear the playlist instead of processing the folder for files
Fixed some conflicts experienced by the WACUP loader when multiple instances are being started in quick succession (e.g. external request to play files) that could incorrectly prevent the instance from being started normally

Other misc updates with trying to reduce loading & closing times further as well as an updated milk2_msg.ini

Updated libcurl (libcurl.dll) to 7.66.0 (11 Sep 2019)
Updated libogg (libvorbis.dll) to 1.3.4 (30 Aug 2019)
Updated Monkey's Audio (in_ape.dll) to 4.92(26 Aug 2019)
Updated mpg123 (mpg123.dll) to 1.25.12 (24 Aug 2019)
Updated unrar (unrar.dll) to 5.80.1 (30 Aug 2019)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 8 Sep 2019


Preview Version: 1.0.5.4130
Released: 23 August 2019

Added a replacement MP4 demuxer plug-in (in_mp4.dll) which is the start of replacing the remaining core playback plug-ins along with it allowing us to access YouTube streams again (which changed over to HTTPS at the start of 2019 & the original plug-in from 5.666 couldn't cope with it) as well as allowing you to only play the audio even if a video track is found without having to disable video support completely
Added a replacement Waveform Decoder plug-in which is still based on libsndfile like the plug-in it replaces but resolves a slew of issues (including seeking in multi-GB 32-bit floating point WAV files) to improving metadata support (with more to hopefully follow on that) & Winamp integration (e.g. using the unified Alt+3 dialog instead of a generic messagebox)
Added Ko-fi (https://ko-fi.com/wacupdev) as another means to help financially support the development of WACUP during installation & within the WACUP preferences
Added double-size classic playlist editor support & all of the changes needed to fool the classic skin engine to cope with this (whoever thought it a good idea to not do this natively years back when the main window & equaliser windows got it needs a friendly slap)
Added Discord & Twitter preference shortcuts to make it easier to find & setup these now playing update modes (a dedicated quick access preference page is planned once we work out what should go on it & how it should be displayed - please let us know about settings you commonly want to change & struggle to remember where to find them)
Added ability (subject to skin support) via the Modern Skin general preferences tab to control whether the Web Browser features are enabled or not (this is mainly for those who don't like the feature or view it as a security issue as the browser element has negligable impact on loading times)
Added an updated Monkey's Audio input plug-in (in_ape.dll) based off Monkey's Audio v4.71 (unicode support, improved tagging support including using the unified alt+3 dialog & editing of tags!, initial albumart handling & some WACUP integration tweaks come with this over the Winamp 2.x target of original source code)
Added an updated WavPack input plug-in (in_ape.dll) based off WavPack v5.1.0 (not much changed as it was already in a good position from having been part of the Winamp Essentials Pack - a shame that died but WACUP is so much better :) )
Added an initial asynchronous implementation albumart service (albumart.w5s) to get album artwork from files so other plug-ins can then not lock-up the ui (at least as not much as it's been doing in some instances)
Added profiling options to the Advanced preferences page to aid in seeing how long it takes for the loading (via init) and closing (via quit) of the general purpose, input, output & dsp plug-ins as well as the w5s components (this is aimed as a debugging feature but may be useful for some with slow loading / closing when looking at the init & quit methods of the plug-ins)
Added a basic 'Components' plug-in preference page to see those that are installed & what Wasabi services they might be providing (this helped with debugging during taking over the w5s component handling from the native Winamp code)
Added an option to automatically load the current visualisation plug-in on loading instead of waiting for playback to be started (this is useful in some layouts to avoid it looking odd if not immediately starting playback as well as whilst debugging taking over the visualisation plug-in handling)
Added initial support to live load disabled input, general & library (if the replacement media library core plug-in is being used) plug-ins
Added better handling for incomplete & failed podcast downloads so it's a bit easier to see if something potentially went wrong & a retry is needed
Added an option to the Playback preferences page that keeps Windows in an on state so when for example using the speakers on an HDMI monitor it will not turn the display off or enter sleep mode & stop playback
Added initial right-click menu support on the replacement local library plug-in nodes in the navigation tree as well as starting to make the root local library node more like a normal customisable view (e.g. it now has play/enqueue/enqueue & play/send-to menu actions)
Added a /UPDATE command-line option to the WACUP loader which may be helpful for a few recent scenarios that have occurred
Added the expected LAN server address of the streaming server to the information shown on the Streaming Server preferences page
Added buttons on the modern skin colour theme preferences tab to go to the previous & next colour themes in the list (user request)
Added an initial add / edit smart view dialog to the replacement local library plug-in (needs more work but this is a good step forward!)
Added option to the replacement local library plug-in to allow for searching within the comment field for general view searches (this is an opt-in setting due to it potentially making things noticeably slower to generate the results)
Added expected icons for the default smart views of the replacement local library plug-in
Added a new revision of the input plug-in api (WACUP specific to provide a better native experience) which saves the plug-ins now built to use it from having to do some commonly used aspects on loading & closing along with a change to support providing the file types they support as unicode (this change might break plug-ins that do things directly against the In_Module structure but does not prevent compliant older plug-ins from still being loaded - this change is no different than the Winamp 5.64+ & 5.66x related changes)
Added a new revision of the general purpose plug-in api (WACUP specific to provide a better native experience) which saves the plug-ins now built to use it from having to do some commonly used aspects on loading & closing
Added option to the video preferences page to disable the ability to click to pause / resume playback

Changed how the general purpose, input, output, visualisation & dsp plug-ins as well as the w5s components are loaded/unloaded to now be done via WACUP code instead of Winamp's native code (this improves the ability of WACUP to prevent certain plug-ins from being loaded to help avoid dll dependency loading issues that can otherwise occur through to enabling a more complete profiling of the plug-ins during init & quit)
Changed the playlist editor when using a modern skin compatible with the v1.3 or newer skin specification to use a freeform styled scrollbar for improved usability and consistency within the look for the skin (using something that's a hacked up classic skin just doesn't cut it!)
Changed where the Milkdrop presets are stored and accessed by default to be in the settings folder instead of the main install folder (this is the easiest way to resolve ratings not being saved without having to run as an administrator & no one should need to run WACUP in that manner!)
Changed the 'Titles | ATF' preferences page to have a larger input field for the ATF string along with a working preview of the output
Changed the default action on the 'Titles | ATF' preferences page to prompt for confirmation before resetting the ATF string to default
Changed the Discord preferences page to have a link to the forum thread which details how to setup WACUP to work with Discord & other information
Changed how curated Milkdrop presets are handled during install to download them only if needed instead of being always included in the installer
Changed the MP3 encoder preset handling to simplify things vs the common usage vs trying to maintain compatibility with existing 5.666 installs
Changed the Skin Manager plug-in to show a folder icon next to pre-extracted folders to make it easier to differentiate them (e.g. if extracted to work on vs also having an original copy of the skin as a wsz/wal/zip)
Changed some of the skin image loading to reduce duplication of images to better ensure only a single image copy is loaded & used for classic skins
Changed the time elapsed indicator on the classic playlist editor window to try to show a h:mm:ss formatted time (if the main option is enabled) to better match other WACUP related changes for time display (for time remaining it will keep using the -mm:ss formatting style due to space restrictions)
Changed the windowshaded playlist editor window to show (if applicable) the queued item position (via the 'q' action) for better consistency
Changed the windowshaded playlist editor real font handling to better fit within the area used with a skinned font to break less skins when that option is enabled via the classic skins preferences page (e.g. removing odd colour matching and overwriting expected borders of the area)
Changed the Waveform Seeker plug-in to fill in the currently played area (if applicable) under the generic waveform for applicable playlist items that cannot be processed to generate a waveform (this should help with usability & interaction with the plug-in for most use cases)
Changed the extraction of skins to be done by WACUP instead of the native handling where possible to help resolve some loading issues with sub-folders within the skin archives & to experiment with a few other things for later WACUP development :)
Changed the in-skin browser handling for the Bento & cPro skins (possibly other modern skins as well) to remove broken urls & use valid landing pages (this should help remove recent issues due to expired domains, etc)
Changed the Big Bento & Bento skins to support the new @HAVE_BROWSER@ value along with -nobrowser versions of the skin xml files (e.g. player-normal-sui.xml vs player-normal-sui-nobrowser.xml) to be able to follow the Web Browser on/off feature control
Changed the Internet Radio plug-in to better ensure there is no duplicated genres shown for the station listing (this is an age old issue with the poor data that stations provide to listing directories - sadly they don't care about such attention to detail which means I have to instead)
Changed how the WACUP build of libcurl is built to resolve dependency loading issues under WINE
Changed how the plug-ins directly using libcurl will now cope without libcurl.dll being able to be loaded (this is related to the above change)
Changed the error handling related to dll loading issues (whether they're missing or having dependency related loading issues) to show more appropriate information as well as now trying to generate a crash report if the problem is non-continuable (i.e. the code will crash anyway)
Changed the ASIO output plug-in to not create its background thread until it is being used for output to save some resources on loading
Changed the saving of the main winamp playlist (winamp.m3u8 in the settings folder) to be WACUP handled which now provides a secondary backup of the file on closing & removes the automatic generation of the legacy winamp.m3u (some old plug-ins look for this which can be re-enabled via the Advanced preferences page if needed)
Changed the layout of the Advanced preferences page to better accommodate new options
Changed some of the internals of the WACUP core to reduce memory usage for shared data between the WACUP plug-ins
Changed some of the previously JTFE provided apis to now be provided via the WACUP core (makes things cleaner)
Changed the podcast plug-in to only load it's feed cache when needed (depending on setup & usage of this feature, this can delay lots of memory being allocated when it's not going to be made use of as well as providing a loading time reduction if updating on start-up is not enabled)
Changed the SID Player (in_sidious.dll) plug-in to delay when it initialises itself to give an approximate 10MB saving of memory if the plug-in is being loaded but never actively used (this also provides a small loading optimisation)
Changed clicking 'config' for the Modern Skin engine (gen_ff.dll) plug-in to go to the preferences node instead of showing a basic or fancy about message
Changed the Album Art (gen_classicart.dll) plug-in to make use of the newly added asynchronous mode for getting the image data to show
Changed the Album Art (gen_classicart.dll) plug-in to limit the image copy it works with to 600x600px which in combination with the asynchronous mode for getting the image data better prevents the plug-in locking up the UI whilst it's trying to render the artwork
Changed the artwork loading on the File Info (Alt+3) dialog to make use of the newly added asynchronous mode for getting the image data to show (there were also some other changes that in general reduce the loading time of the dialog compared to the prior implementation)
Changed the loading of the output plug-ins to (hopefully) only happen when playback is actually needed (this is testing out a loading optimisation so may be reverted if this is found to cause issues)
Changed the priority of output plug-ins attempting to be used if one is not specified or the prior one has been removed (this relates to taking over the handling of output plug-in management so we can be more flexible in how things work going forward)
Changed the Waveform Wrapper (in_wav.dll) to better prevent the original plug-in it wraps from re-saving unchanged values on closing (this was found with the new profiling where this was the worst offending plug-in from just loading & then closing the WACUP instance when nothing would have been done)
Changed some aspects of the loading & closing of the plug-ins to reduce the time taken based on the added profiling feature
Changed the settings cache to prime its copies of the winamp.ini & gen_ml.ini files with all sections instead of doing it on a per section basis as requested to help reduce loading times
Changed the tooltip handling on the plug-in preference pages to show the clipped text (if applicable) & then our information about the plug-in
Changed the IPC_GET_EMBEDIF handling to automatically register the created window into the classic skin's Ctrl+Tab window handling to save having to remember doing it on a per plug-in basis
Changed the IPC_GET_EXTLISTW & IPC_GET_EXTLIST apis to be handled by WACUP which allows known plug-ins with lots of extensions to be suppressed from being shown in the filter list (wparam == 1) response so that when using in the open/save file dialogs it is less likely to break (i.e. potential crash or showing all files despite a filter being selected)
Changed the right-click menu on the podcast 'Downloads' node to show the option to update all of the podcasts if its parented to the podcasts node (I keep clicking on the wrong item so this is to keep me happy : )
Changed the Big Clock plug-in visualisation modes to hopefully look better compared to the prior version due to using a poor upscaling method (as the plug-in has used for ~14 years) which makes it better fit in with the look of other aspects of Winamp/WACUP
Changed now the NDE database files are loaded to remove doing a large memory copy between buffers for a small reduction in loading times
Changed the NDE database loading to be smarter about when its trying to remove whitespace from strings which can make a noticeable reduction in the time to load the related view & query results
Changed the /RESETOUT command-line option to also reset the audio device of the known plug-ins (this is to make it easier to deal with some Windows 10 updates causing the output device id to change & making the DirectSound output plug-in freak out & block loading)
Changed the classic skin smooth window resizing option for the resizeable skinned windows to dock the edge of the window to the screen & other skinned windows so its easier to make a layout that better suits your needs (am debating enabling the smooth window resizing option by default now that we've got consistent snapping of the windows between the two available window sizing modes for classic skins)
Changed the main playlist editor drawing under modern skins to remove an undesirable 2 pixel border from the left edge & to ensure the scrollbar is correctly aligned to the right edge of the window which was wasting 8 pixels of screen space
Changed the handling of the IPC_GETHTTPGETTERW & IPC_GETHTTPGETTER API messages so HTTPS urls should now be correctly handled along with some othe related changes to improve the reliability of handling the download (still more HTTPS related work to go on in other parts of the player)
Changed how podcasts are handled to reduce the complexity in the checking down which could either cause occassional crashes or leave podcasts that had failed still being marked as successfully completed (this also led to the removal of the export -> podcast downloads option from the exporter plug-in as the handling is no longer trying to maintain compatibility with how the original podcasts plug-in worked)
Changed some of the plug-ins to use a new callback method that removes the need to subclass &/or handle some of the main playlist editor menu & WM_COMMAND handling to detect actions in the window (this reduces some of the overhead of the plug-ins & what goes on within the window)
Changed how existing podcasts are (re-)added into the local library database when using the replacement ml_ll to reduce the time taken (more needs to be done to deal with this process causing the ui to lock-up e.g. when re-adding existing podcast feeds to a new WACUP install)
Changed the main window song ticker area when using a non-skinned font under classic skins to better match how the playlist editor handling now works to remove the blurry text under double-size mode & making the non-skinned font better match the look of the skin overall
Changed the sizing increments used when resizing the playlist editor in double-size mode to match the generic skinned window sizing increments (this might make some classic skins look a bit odd for a small panel section but a skin update would be the only potential fix for this quirk)
Changed the default render processing priority of the Waveform Seeker plug-in back to high & added an option to use a lower priority if needed
Changed the handling of the modern skin menus options along with adding some options on the Modern Skins -> Current Skin preferences tab to enable or disable whether those options are displayed in some of the menus (this might help workaround some reports of stability issues)
Changed the artwork handling to start using our own handler for aquiring the image data from the required file to primarily work around some issues with the MP3 decoder (in_mp3) plug-in (this will gracefully fallback to the appropriate input plug-in if the request fails)
Changed the loading of the artwork tab of the File Info (Alt+3) dialog to do one less artwork related query on loading to improve loading times
Changed the replacement local library plug-in to allow for more of it's specific metadata to be ATF accessible (done based on an issue via reddit so that %lastplayed%, %lastupdated%, %filetime%, %filesize%, %dateadded%, %ispodcast%, %podcastchannel%, %podcastpubdate% & anything else I've forgotten of the local library specific metadata can be accessed if the plug-in is present - this may need some further tweaking fyi)
Changed how the image resources of the WACUP provided library plug-ins are handled as part of some internal re-working for possibilities later on
Changed how the installer detects SSE2 CPU support to improve successful detection
Changed the location of the MP4 Demuxer plug-in configuration on new / unmodified installs to provide a small reduction in loading time
Changed the Streaming Source plug-in to provide up to 2 stream outputs (this may require some minor reconfiguration of existing setups & only the first stream can be configured to automatically connect to the WACUP provided streaming server for the moment)
Changed how some of the supporting library dlls are loaded to reduce some of the bigger ones being loaded if not immediately needed
Changed when the win7shell plug-in initialises gdiplus to only happen when its needed which provides a relatively good closing time reduction (when compared to other plug-ins) if a taskbar preview was never drawn
Changed the crash reporter to now be fully implemented as part of the WACUP core instead of making use of a plug-in (see fixes) which resolves some stability & integration issues experienced when trying to keep it working as a plug-in compatible with how the Winamp core wants to work
Changed the default undo limit on new installs to be 10 instead of 50 which depending on the machine & settings configuration lessen some ui hangs / slowness seen when an action causing a new undo event to be stored is happening (later on the way this is all done will change to remove the need for the plug-in & hopefully remove most of the ui delay which can occur)
Changed the default loading state for some of the plug-ins with windows on new installs to lessen how many appear by default - too many is too much it seems :)
Changed the default loading state of the Audio CD playback, NSV Decoder & Portable Device Support plug-ins to be off on new installs if selected to be installed (this is done as an optimisation due to a lot of installs not needing them & requires enabling them manually via the appropriate plug-in management preferences page)
Changed to use Eridyne mode by default on new installs (this favours using the DirectShow input plug-in for video playback which is more reliable than the native input plug-ins which 5.666 provided)
Changed to use the Microsoft Detours library to massively improve the reliability of the WACUP core to be able to to do its hooking & live patching (this should now resolve the remaining quirks with patched functionality not working as well as some of the silent loading crashes)

Fixed a memory leak when checking if a file is supported by the current input plug-ins
Fixed the trim ATF method not correctly removing trailing space characters
Fixed the custom fallback artwork handling not live updating correctly due to invalid cache invalidation (needed a restart to be applied)
Fixed the classic albumart plug-in crashing when it gets some unexpected metadata
Fixed the classic albumart plug-in updating to show the wrong item when some of the options were changed & the current selection is meant to be showing rather than the currently playing item
Fixed the classic albumart plug-in not updating as expected when the custom fallback artwork handling is changed via the Artwork preferences page
Fixed the Discord updates being incorrectly limited on the number of characters allowed when using the multi-line support
Fixed the Discord & other ATF based aspects not dealing with emoji type characters correctly (thank you kobochat for reporting)
Fixed the line input plug-in crashing in some setups when attempting to start playback
Fixed some issues with the IPC_SET_PE_WIDTHHEIGHT handling not correctly validating input which could cause some odd sizing of the playlist editor when switching between modern skins back to classic skins (madness I tell thee, madness!)
Fixed some column text alignments in the Audio CD views to better match the rest of the library
Fixed a random crash on close if the Audio CD view was open and a metadata query was in progress
Fixed queued items (via the 'q' action in the main playlist editor, etc) not showing the queued item position if there was no length (this has been a limitation for far too many years & replacing all of the main playlist editor drawing routines for my own now allows this to work right!)
Fixed flickering of highlighted queued or missing file playlist items when doing fast scrolling downwards in the main playlist editor (finally due to the joys of double-buffered painting!)
Fixed beta build download links incorrectly being handled by the in-skin browser which was causing it to fail (and changed the other links on that preferences page to load in the default browser)
Fixed the expansion of @HAVE_LIBRARY@ in modern skins to work with additional parameters following (this helps to also get @HAVE_BROWSER@ working)
Fixed some podcast feeds incorrectly being handled when trying to make a HTTP/2 connection to the feed server so they will now gracefully revert back to a HTTP/1 connection automatically
Fixed all of the reproducible crashes related to the Internet Radio plug-in (e.g. when updating the cache & doing a search at the same time)
Fixed the Internet Radio view incorrectly running a double-search on loading
Fixed the Internet Radio plug-in not always animating the node icon when updating the stations cache
Fixed the Taskbar preview when set to show the current albumart using excessive CPU if the artwork image is high resolution (generally above 600x600px) due to not caching the artwork correctly & needing to re-process the image on every update of the Taskbar preview
Fixed the module plug-in not returning a valid 'family' metadata string
Fixed a shared file metadata failure between TagLib (and potentially other in-WACUP aspects) and reading of the metadata on Monkey's Audio files
Fixed tag.dll (TagLib) not having a version resource to match all other WACUP provided dlls
Fixed some of the plug-ins not updating correctly when artwork for the currently viewed file is deleted
Fixed files supported by the vgmstream input plug-in not generating a waveform via the Waveform Seeker plug-in
Fixed the the Waveform Seeker plug-in acting oddly with the background colour going white briefly when refreshing or changing to the base classic skin due to incorrectly handling the background colour brush used
Fixed the incorrect re-saving of the main winamp playlist (winamp.m3u8 in the settings folder) on closing when no changes had occurred
Fixed some of the media library plug-ins crashing when opened & there was nothing present in the main playlist editor (related to highlighting the currently playing item in the library views)
Fixed the podcast view updating the information pane more often than needed when changing the selection in the view
Fixed a number of crashes when abusing the loading order of the plug-ins from the normally expected loading order
Fixed some random crashes when plug-ins checking information relating to modern skins get incomplete due to the modern skin engine only having been partially loaded (classic skins ftw!)
Fixed the Album Art (gen_classicart.dll) plug-in corrupting the artwork cache (this was much more of an issue with massive artwork e.g. 12600x12600px where it crashes)
Fixed the Album Art (gen_classicart.dll) plug-in not drawing anything within the window or leaving a gap for the artwork in details view mode when no artwork is able to be obtained
Fixed loading issues if youtube-dl & supporting dlls are incomplete due to a crash on loading
Fixed removing a single selection from the excluded file list window not always ensuring the change was correctly saved for the next session
Fixed the embedded windows to correctly maintain minimum dimensions when invalid sizes are applied to the window on loading / programmatic setting
Fixed the occassional corruption of aspects of the skinned windows under classic skins (e.g. the window title)
Fixed the contents of skinned windows sometimes not updating skin change / refresh
Fixed some of the command-line options being massively slow to respond (especially if a ui needed to be displayed)
Fixed the crash reporter not always including the generated Info Tool report
Fixed a crash seen when trying to retrieve CD information when some of the expected information in the Musicbrainz response is not provided
Fixed the installer incorrectly removing the legacy font rendering engine within freetype.wac on subsequent updates (this relates to older modern skins not designed for the Winamp 5.5+ updates)
Fixed some installs not being able to load modern skins if freetype.wac was present the settings cache was enabled (as odd combination of issues working against each other that luckily was able to be patched out this time around)
Fixed some display issues when smooth resizing is enabled in relation to the way the main playlist editor scrollbar is drawn to prevent some odd scaling related artifacts
Fixed not being able to add Apple podcasts the podcasts subdomain instead of the (seemingly now deprecated) itunes subdomain url
Fixed registering global hotkeys not always working causing some to randomly fail or for the configuration to become corrupted
Fixed a sporadic crash on loading by the Winamp core related to the delayed loading of the nsutil.dll supporting library
Fixed the Winamp core not being able to handle the downloading of HTTPS based playlist urls & other associated files
Fixed a crash when allowing any currently downloading podcasts to be cancelled on exit
Fixed the podcast downloads view status column not sorting as expected for items not in the process of being downloaded
Fixed the archive playback plug-in trying to use other input plug-ins which have been intentionally disabled via the preferences
Fixed a crash when loading or viewing the metadata on some corrupted FLAC files
Fixed a crash on loading the global hotkeys plug-in (found whilst abusing plug-in loading)
Fixed incorrect usage of an OS api used to help make some internal strings case-consistent
Fixed some of the custom added tabs on the Unified Alt+3 dialog showing a generic string
Fixed a crash in the Yule Log plug-in related to a CRT mis-match between it & the WACUP core
Fixed some of the scaling differences seen with modern skin beat visualisation vs Winamp 5.666 (may not be 100% but it's closer now)
Fixed some setups not allowing modern skins to run their beat visualisation modes without forcing a settings toggle
Fixed the classic skin generic windows loading into window shaded mode when enabled & using the fixed resizing mode for such windows
Fixed the contents of the Waveform Seeker plug-in not being drawn correctly if some of the window client area is off-screen
Fixed the time display of the Big Clock plug-in not being drawn correctly if some of the window client area is off-screen
Fixed the main playlist editor items not being drawn correctly (e.g. partially drawn) when OS text scaling is enabled or with larger fonts where some of the characters would be clipped
Fixed plug-ins showing as not loaded when some 3rd party plug-ins force loading of them before the WACUP plug-in loader has completed loading
Fixed streams ending with .audio so it looks like a file extension being handled by the wrong input plug-in
Fixed the skin provided font not being used when the preferences option was enabled to make use of the font
Fixed Milkdrop not being able to locate some of the texture files after changing the default preset location
Fixed the autoplay plug-in incorrectly causing a volume change on loading when the autoplay setting is off
Fixed the loading of items into the main playlist not attempting to get the metadata when that option is set in the preferences (this isn't the default setting for handling items nowadays - reading in the background is - but some may still use it so it needed to be fixed)
Fixed the Edit Item Metadata in the main playlist editor not allowing the podcast attributes to be changed
Fixed downloaded podcasts not always being correctly added to the local library database due to a loading time quirk the caused the podcast plug-in to not always know that it had access to the local library database tagging service
Fixed an accessibility issue on the 'About | Updates' preferences page where tabbing through the window would not select the tab at the top
Fixed the Playback preferences dialog not correctly initialising things on loading (issue caused by a change in the previous build)
Fixing a regression with $abbr() ATF method related to an emoji handling fix
Fixed the playlist editor menus incorrectly appearing when using a classic skin & windowshaded mode is enabled
Fixed the updater not handling non-beta builds correctly (a server-side fix is also in-place now to help fix this for all existing builds)
Fixed changing the streaming server password not always being applied without a restart of the player to ensure its applied
Fixed the streaming server port & password configuration options being left enabled when the server is running
Fixed a compatibility issue with the streaming source plug-in when trying to connect to some servers
Fixed issues with the streaming source plug-in not always remembering the encoder settings correctly
Fixed some of the plug-ins (usually if loaded by another plug-in) not being handled via the settings cache as expected (also helps with above)
Fixed a delay loading failure causing a crash in some setups when trying to play MP4 based files
Fixed a crash when skinned preferences is loaded (related to a fix applied in the prior beta build)
Fixed the milkdrop visualisation window sometimes moving out of the expected position (more of an issue when double-size mode is enabled and the plug-in window is docked or close to the edge of the usable screen area)
Fixed non-embedded artwork not being displayed in the File Info / Alt+3 dialog (this has been broken in the last few beta builds)
Fixed a crash when scrolling through the playlist editor in classic skin windowshaded mode & accessing a wav file (other file formats were potentially affected so additional changes have been made to avoid the issue which caused this)
Fixed a crash seen when enabling the agent (but not directly related to it) as a side-effect of a change in the build 3996 for hooking more of the plug-ins
Fixed the wrong IP address being shown in some configurations on the Streaming Server preferences page when using a wireless connection (still needs some refinement)
Fixed the podcast view not always updating as expected on skin related changes
Fixed the menu on the Modern Skins -> Current Skin preferences tab being skinned when the preferences window is not set to be skinned
Fixed some files not being processed correctly with the ReplayGain plug-in due to an issue passing around data internally for the file
Fixed a crash when viewing some urls in the main playlist editor & artwork is set to be shown for the currently selected item in the artwork window
Fixed YouTube playback not working due to issues playing HTTPS based streams with the original MP4 demuxer plug-in from the 5.666 install
Fixed some MP4 based files not being processed via the Waveform Seeker plug-in
Fixed double-clicking in the main playlist editor not always working depending on the visible height of the window
Fixed the current modern skin colour theme preferences tab not using the expected colouring for the selection when skinned preferences is enabled
Fixed drag+dropping urls onto the main playlist editor not being added in the expected location especially under double-size mode
Fixed a crash with the new MP4 Demuxer (in_mp4.dll) plug-in when ReplayGain is enabled & appropriate information was found (related to a mis-match between different runtime libraries which saw some other plug-ins updated to avoid this issue when they're moved to be built with a different compiler)
Fixed the header information on the artwork tab of the File Info (Alt+3) dialog not updating correctly when no valid artwork can be found
Fixed some JPEG files (seem to be Abobe generated ones) not able to be loaded
Fixed a delay loading failure causing a crash in some setups when trying to play H264 encoded video files or ALAC encoded audio files
Fixed a crash issue with the undo plug-in being passed invalid data from a Winamp provided api
Fixed the corruption issue that caused the nde.dll to have to be reverted back to the one from build 3276
Fixed a crash when trying to update the metadata of MP4 based files
Fixed the installer not ensuring libmp4v2.dll is installed for all of the components that might try to load it
Fixed an issue causing the data sent to the visualisation plug-ins to miss the first few seconds of data subject to the output plug-in buffer size due to a patched method not working correctly in all scenarios
Fixed the skinned Components preferences page incorrectly being drawn with the checkbox it doesn't use
Fixed a crash when using the remove duplicate items option in the main playlist editor
Fixed an issue that could cause the visualisation plug-in to stop receiving data to render
Fixed a crash when inserting a separator due to some of the recent changes in how menus & playback is done
Fixed the sprite loading from milk2_img.ini not working correctly due to the move to the file in the user settings folder & it looking in he wrong sub-folder for the image files
Fixed in_zip not providing a "family" atf string
Fixed the replacement local library plug-in not always showing all of the required information in the view (this may cause the queries to run slower than before depending on how the view is configured due to it pulling down all of the information that is needed which will be slower)
Fixed a crash related to starting playback under a modern skin that has been plaguing some since build 3958
Fixed some of the rate of streaming issues with the Streaming Source plug-in when playback is paused / stopped (there is now a rough KB/s output provided to see if the output is racing ahead - more work will be done but this quick fix balances things out better than how they have been)
Fixed the albumart plug-in sometimes updating itself with the current artwork image multiple times on initial loading which could appear as flickering of the window contents
Fixed some of the generically skinned windows not being drawn as expected during initial loading & typically appearing as a white area (colour might vary depending on the Windows theming) before then appearing as expected
Fixed some issues with the profiling mode due to inconsistency in plug-in loading
Fixed some inconsistency seen in the loading of the w5s system component files
Fixed a random crash on loading related to how the Winamp core would load the crash reporter plug-in which could conflict at times (see changes)
Fixed the default location of some of the windows on first run with a classic skin (will look into modern skin default locations later on)
Fixed a number of issues causing Vorbis file tag editing to not work as expected or to crash in some scenarios (the fun of text conversions)
Fixed twitter authentication not working correctly due to a logic check breaking the persistence of the connection
Fixed the Streaming Url Processor plug-in preventing urls it supports from playing (especially if autoplay on start-up is enabled) if the url is already deemed valid to play and so does not require youtube-dl to be run beforehand to get an updated working url to play
Fixed the ability to click to pause / resume playback in the video window not working (really not sure when this broke but it now works again)

Other misc code clean-up, associated bug fixes during development & all the other developer fun that goes on

Removed the cPro skin update system due to the demise of the skinconsortium website (as WACUP is bundling a modified maintained copy of cPro there's no need to have it checking for updates along with removing the potential security issue with accessing an unmanaged domain)

Updated cacert.pem to latest (15 May 2019)
Updated the Big Bento Modern skins to 1.1.4 (14 Feb 2019)
Updated the cPro (ClassicPro) engine to 2.04 (16 Apr 2019)
Updated expat (xml.w5s) to 2.2.7 (19 Jun 2019)
Updated LAME (lame_enc.dll) to 3.100.2.1 (23 Jul 2019) for stability fixes
Updated libcurl (libcurl.dll) to 7.65.2 (17 July 2019)
Updated libebur128 (ml_rg.dll) to the latest github commit (17 May 2019)
Updated libFLAC (libFLAC.dll) to 1.3.3 (4 Aug 2019)
Updated libjpeg-turbo (image.w5s) to 2.0.2 (14 Feb 2019)
Updated libnghttp2 (libcurl.dll) to 1.39.2 (19 Aug 2019)
Updated libopenmpt (in_mod.dll) to 0.4.6.11911 (10 Aug 2019)
Updated libopus (libopus.dll) to 1.3.1 (12 Apr 2019)
Updated libpng (image.w5s) to 1.6.37 (14 Apr 2019)
Updated libsndfile to the latest github commit (2 Apr 2019)
Updated openssl (libcurl.dll) to 1.1.1c (28 May 2019)
Updated lzma (lzma.dll) to 19.00 (21 Feb 2019)
Updated minizip (zlib.dll) to 2.8.9 (4 Jul 2019)
Updated Monkey's Audio (in_ape.dll) to 4.84 (10 Aug 2019)
Updated taglib (tag.dll) to the latest Git commit from 24 Jul 2019
Updated unrar (unrar.dll) to 5.71.1 (2 Apr 2019)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 4 Aug 2019


Preview Version: 1.0.1.3276
Released: 28 January 2019

Added an initial Streaming Source plug-in (aka replacement Source DSP) to help validate it's usage for personal streaming in combination with the WACUP provided Streaming Server (if also installed)
Added some additional internal handling & hooks for the Streaming Source plug-in (aka replacement Source DSP) to simplify how it can get now playing information from the Winamp core without hooks & subclassing as DSP often require (not what we want to be doing to keep things cleaner)
Added initial support to allow the shuffle table to persist between sessions to help resolve one of the big complaints related to shuffle (this means it won't try to play files that have already been played as often - this is experimental so it may need some edge cases to be fixed)
Added a 'shuffle' diagnostics preference page (under the 'advanced' preferences group) to help visually inspect the in-memory shuffle table
Added initial support to deal with enter & double-click actions in the main playlist editor not updating the shuffle table to prevent playing the played file again (reported by a beta tester & confirmed with the shuffle table inspector above :) )
Added initial 'Raw Metadata' tab implemenatation to the File Info (Alt + 3) dialog to aid in testing the taglib integration (this is the start of potentially moving away from the input plug-ins handling most of the common tag formats to instead be done more consistently as a core service)
Added an ASIO output plug-in based on the source code by Otachan which makes it portable install compatible & adds an experimental volume control option (this works on the global master volume if enabled) & some other minor clean-up to work better within the needs of a WACUP install
Added the ability to single-click in the video window to pause/un-pause the currently playing item (this matches expected control methods for video playback though there is a bit of a lag due to having to determine if its a single or double-click from how Windows provides such events)
Added initial support to specify proxy connection modes (e.g. SOCKS4, SOCKS5) on the General preferences page (not all plug-ins & features use this which will be improved over time as more of the original Winamp plug-ins & features are replaced with WACUP versions)
Added logging now playing only to a specified file via the Yule Log plug-in (see the Play Tracking -> Now Playing preferences tab) which might be useful for streamers using the likes of OBS / SLOBS as it doesn't keep all of the playing history in the log file as the original handling does
Added new Mikdrop presets by En D from the 'MD Episode 1 - New Millenium' & 'MD Episode 2 - Out of Da Club into Da Head' packs (more visual goodness for you to enjoy)
Added new Milkdrop presets by Fumbling_Foo (more visual goodness for you to enjoy)

Changed the WACUP provided library plug-ins to hide the clear search button if there is no search & to use an 'X' instead of 'clear search' to give more space & a slightly less cluttered library view (more to come when other things related to skinning are finally replaced)
Changed mpg123 to now be a shared dll (mpg123.dll) instead of just used by the OpenMPT (in_mod.dll) based input plug-in (this relates to the vgmstream change where supporting dlls were not being installed)
Changed vgmstream (in_vgmstream.dll) to be built with VS2017 instead of VS2008 to resolve some playback handling issues with the older compiler
Changed the installer to default to a more appropriate folder when selecting the portable install mode (setting a custom path via the command-line should still be honoured for those doing such things)
Changed how the new default mode to use the spacebar to play/pause the currently playing item in the main playlist editor incorrectly blocking a number of actions that would otherwise scroll the currently playing item into view (a bit of a compromise but it should be less jarring in usage)
Changed the skin preferences page when using the Skin Manager plug-in to make the skin information area more prominent & show more at once
Changed the naming of the Yule Log preference tabs to better fit with the additional logging mode added into this build
Changed the installer to wait a bit longer if it needs to close an already running WACUP instance to better avoid an installer error
Changed the default setting for WM_APPCOMMAND hotkey handling (aka default multimedia key handling) for new / un-modified installs to now be enabled
Changed the Internet Radio plug-in & the new Streaming Source plug-in to make use of a shared genre list to reduce duplication
Changed some of the internals & build system for how beta vs preview/final builds are built to make the overall process quicker
Changed the installer to preserve AVS (vis_avs.dll) if present (e.g. when updating over an existing install - which still is not recommended)

Fixed most of the supporting dlls vgmstream requires not being correctly installed (this is now handled via a download during install if required)
Fixed loading of the FFmpeg supporting dlls from the vgmstream_dlls folder due to a quirk of delay loading and sub-dependency resolution
Fixed the installer incorrectly removing the Pluginsvgmstream_dlls folder when it didn't need to (found with the changes above causing downloads to occur when they should not have been happening)
Fixed the modern skin engine not correctly showing the time remaining for hh:mm:ss formatted time display strings (the minus sign would only show for times under an hour for some odd reason which broke the expected longer time remaining display so that check was thankfully able to be patched out)
Fixed the clear button not always working in the Internet Radio library view
Fixed opening the notification area preferences tab breaking using the keyboard to move up/down in the preferences tree
Fixed clipping of the skin name from modern skins on the skin preferences page information area
Fixed the send-to menus not working in the original local library plug-in (ml_local.dll) due to enforced enqueue & play menu items which do not work (prior changes removed the hackish work arounds to try to get that support working - this is why we have a replacement plug-in to do it cleanly!)
Fixed the splash screen window not being cancelled when clicking on it (as the native version would do)
Fixed the play & enqueue+play actions not working correctly in the podcast items list
Fixed the currently playing item not being correctly updated in the podcast download views when new podcasts are added with the list open
Fixed the failure to load of some WACUP & 3rd party plug-ins related to a change in how dll dependencies are loaded to fix other loading failures
Fixed slow column sorting issues with the filename related values in the replacement Local Library plug-in views (more so with decreasing sorts)
Fixed some multi-line comment tags not being correctly displayed on the File Info (Alt + 3) dialog
Fixed the preferences window being on top of all windows even when WACUP was not the active program
Fixed the preferences window now being re-sized to the skinned frame (if that mode is enabled) to deal with OS text scaling quirks
Fixed a crash when trying to use the 'Remove Duplicates' main playlist editor action (a JTFE bug)
Fixed restoring the shuffle table sometimes causing a crash on load
Fixed the shuffle table being incorrectly re-read on closing which could lead to potential corruption of the file (found whilst fixing above)
Fixed slow loading of the shuffle diagnostics preferences page
Fixed some possible causes of the crashes seen in the NDE database (this seems to affect more the Internet Radio view)
Fixed trying to drag & drop items on the naviagtion causing a crash if the replacement library bookmarks plug-in was enabled
Fixed dropping an item on a library bookmarks category node not having the newly added item assigned to that category
Fixed some stability issues found working on the replacement Media Library Core plug-in (gen_ml) with the existing library plug-ins if features are not present &/or working as expected (this shouldn't be needed when things are feature complete but it's better to prevent against crashes, etc)
Fixed some occassional text corruption issues on the 'basic info' tab of the File Info dialog

Updated cacert.pem to latest (23 Jan 2019)
Updated libnghttp2 (libcurl.dll) to 1.36.0 (18 Jan 2019)
Updated libopenmpt (in_mod.dll) to 0.4.2.11243 (22 Jan 2019)
Updated minizip to 2.8.3 (27 Jan 2019)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 28 Jan 2019 (first re-sync in over 5 months, oops)


Build #3174 Changes:

Added initial support to indicate missing files in library playlists to complement the option for the main playlist editor (this will just show a cross before the playlist item number / title depending on settings instead of changing the background colour at this time)
Added support for Discord now playing to use the state value to provide a second line of text if set in the preferences
Added a 'change origin playlist' option to the library playlist root menu for external playlists to make it easier to update the reference if it has been moved (e.g. to another drive) without having to remove the playlist reference first
Added an 'edit playcount' option to the library history view to act as a starting point to deal with moving files & needing to maintain playcounts
Added a confirmation prompt before allowing all of the preference pages to be hidden from the extended control menu
Added support to convert public Acast podcast pages into the RSS feed url so it can then be managed by WACUP
Added a small 'beta tester' section on the about preferences page for anyone interested in becoming a beta tester if they're only using a preview / final build

Changed from the long standing 0.9.9.xxxx version numbers to now start incrementing up from 1.0.0.xxxx with the shift to public preview builds
Changed the replacement Local Library plug-in to set 'last updated' to be the last modified time from file when adding new files to the database
Changed the playlist option to prevent pressing space scrolling the currently playing item into view to now support (by default if not already changed) using play / pause to toggle the playback state (see the options on the 'general' preferences page to control this when it's enabled)
Changed the installer to improve the handling of the 5.666 EN-US redux installer to better ensure a corrupted copy will not be used
Changed the 'Eridyne' mode on the Advanced preferences page to also handle WMA & WMV as we do not install the WMA playback plug-in & DirectShow can play most of those files
Changed the installer to better prompt if trying to install over an existing Winamp install as well as preventing installing over incompatible versions (i.e. anything that isn't 5.66/5.666)

Fixed the browse button not appearing on the edit playlist entry dialog in the library playlists view
Fixed the library playlist root view not appearing correctly with a missing playlist item selected
Fixed some quirks with the library playlist status message when information is missing
Fixed a text alignment issue of the playlist item time in the main playlist editor when the missing files highlighting mode is enabled
Fixed some SSL related issues with the jnetlib implementation but more needs to be done to allow for example working HTTPS based MP3 streams
Fixed the custom splash.bmp/splash.png support not correctly centering the image when it's shown on screen
Fixed the splash screen not showing on the same monitor as the classic main window (this fixes a Winamp bug)
Fixed the Playlist Undo plug-in crashing in rare cases (based on crash reports received from beta testers)
Fixed an occassional crash in the Waveform Seeker plug-in after completing file processing or when file processing is active when closing
Fixed the installer not correctly checking the Big Bento Modern skin versions when needing to updating existing installs
Fixed the podcast plug-in not correctly adding multiple selections to the main playlist editor
Fixed a double-border drawing issue on the podcast subscription node listviews
Fixed (hopefully) the playlist preferences node not maintaining its expanded state
Fixed moving items in the queue manager views not always keeping the selection on the moved items
Fixed header text being clipped on the Discord now playing preferences page

Other misc code clean-up & build process organisation in preparation for a public preview build (finally!)

Updated appropriate copyright dates to 2019
Updated libsndfile (libsndfile.dll) to latest code release (1 Jan 2019) to resolves a number of vulnerability issues
Updated lzma (lzma.dll) to 18.06 (30 Dec 2018)
Updated the Big Bento Modern skins to v1.1.3 (30 Dec 2018)
Updated the Milkdrop2 presets by Fumbling_Foo for your visual enjoyment




Search   Contact us   Privacy Policy   About   Advertise   Forum   RSS Feeds   Statistics   Software   

Site layout: Default Classic Blue

Affiliates: free-codecs.com

©1999-2021 videohelp.com