Added laut.fm as a known provider within the library internet radio view (this was already provided via the post-release updates for those using build 25130)
Added additional handling checks during start-up if a potential unhandled crash is detected (along with the installer fix noted below) to try to submit what Windows Error Reporting (WER) has hopefully created which may help to collect a valid dmp file when a Control Flow Guard or other fast fail exceptions occur which the normal crash report handling never gets triggered for (no idea how common this is)
Added support to left or right align the lyrics text in addition to the default centered text mode (this was already provided via the post-release updates for those using build 25130)
Added support to use SACAD v3 on the 64-bit flavours of Win10 & newer irrespective of the wacup build type since that's what the newer builds of it are able to run on (SACAD 2.8.0 is still used where those requirements aren't met which might not be too many, I don't know as I don't track user install stats, etc)
Added an option to the Playback -> Volume prefernence tab to control if precise volume control is used always or instead requires having to hold the shift key when using the up / down arrow keys or using the mousewheel to change the volume to activate the behaviour (this will make changing the volume slower since it doesn't jump a few steps as the default handling does which is more like the winamp way)
Added to the Playback -> Volume prefernence tab a way to see what the current internal panning / balance level is as some skins make it hard to know what it is set as (especially if accidentally clicked)
Added a new optional fourth parameter to the $replace atf method so the comparison can now be done in a case-insensitive manner instead of following the winamp-like case-sensitive approach to this method
Added an initial loopback:// playback mode to the in_capture plug-in which will attempt to capture the audio from the currently active output device & use it to feed the main window & visualisation plug-ins if running (this will not play the audio back through wacup as that'd just be a confusing mess & is purely provided as a means to help drive the visualisations from what's playing externally)
Changed how the internet radio cache is generated (already shipping but done as part of this dev cycle) to remove the long broken radionomy & dead shoutcast hosted streams from the shoutcast results (there seem to be maybe 8K of valid results coming from it nowadays which is a long way from the legit 50K or so of station results before it was sold on from AOL)
Changed the library internet radio view to now provide any results without a genre (either from not being provided or not mapping to the known genres) to now appear within the 'Misc' results so they're easier to find (it would be so nice if internet radio actually cared about good metadata but having spent 15yrs dabbling with this it's honestly getting worse as time goes on rather than improving :( )
Changed the bulk sorting methods used by bookmarks, playlists & podcasts to try to use the parallel implementation which the library internet radio view is already using for a quick sorting of them
Changed notsodirect to drop some of the handling that was put into it with the stability issues that had been plaguing it which are no longer required & some related size optimisation of the compiled dll
Changed the slow plug-in loading dialog added in the prior build to be more aware of slow modern skin loading issues so it's less likely to appear when not expected along with it staying running under some uncommon debugging test instances
Changed how in_mp4 tries to deal with pre & post gap aspects for some MP4 based files (this still isn't great but partially helps some of the track gapless problems able to be replicated so far but not all)
Changed how the dsp_wc (Streaming Source) plug-in sends title updates using the shoutcast v1 / icecast streaming modes to hopefully resolve the intermittent failures the changes from build 25130 introduced along with some more size & memory optimisation work done on the plug-in
Changed the export all playlists action to now use the cleaned up user provided name for the playlist which matches with the export selected playlist action & was from not updating my exporter plug-in to do what the library playlists plug-in had been coded to do (the pain of having older plug-ins like my exporter plug-in vs my replacements as is the case with the library playlists handling & not always keeping changes &/or other implementation aspects in-sync between them)
Changed the indenting of some of the autoplay preference options to make it more obvious how things are related to the overall on/off option
Changed how the core handles when trying to access missing / blocked dlls it needs to use to work to try to more gracefully handle the failure where possible (e.g. no lzma.dll vs post-release updates)
Changed the info pane of the podcast library view (the bit showing the branding & feed information) to now attempt to use the OS installed WebView2 instead of the old IE based webbrowser control which will appease some & irk others though it does now allow me to have scrollbars within the info pane that better match the rest of wacup vs what the old control was using as I gave up trying to skin it!
Changed how the opening of the output plug-in via the active input plug-in is done for all of the wacup provided plug-ins to add in a wrapper method which when debugging is enabled to possibly help in trying to track down some reported playback not happening issues
Changed the $left atf method to act like the $cut method prior to build 25130 so it doesn't also make use of the negative value adjustment which better defines what the $left, $right & $cut methods do
Changed the crash reporter dialog to now show the version along with using crash instead of error to make things more cohesive including the preference page (i.e. error reporting becomes crash reports)
Changed how some of the artwork loading is done when the raw data is requested which should better handle misnamed files so it's not purely relying on the file extension (this was seen with some CD artwork look-ups not getting the expected jpeg result which meant the file was wrongly named as being a jpeg when in the scenario found it was a png)
Changed how dsp_wc is implemented to include a cut down jnetlib implementation so there's now no need for a jnetlib.w5s with this build type
Fixed a performance issue seen whilst doing the compaction of the internet radio cache but this also applies to any compaction attempts (e.g. the local library) but was where I noticed it the most obviously
Fixed some memory wastage with the library internet radio view results handling by not pre-allocating the memory needed for the known results (previously this aimed at an expected upper limit that after the purge of the long broken radionomy & dead shoutcast hosted streams dropped things by a lot to cause a measureable amount of wasted memory)
Fixed the installer not setting the correct key for Windows Error Reporting (WER) to know what to attempt to do if wacup happens to crash which was preventing a dmp file being stored within the settings folder
Fixed the crash report handling when triggered during start-up instead of the normal handling at the point of crashing not generating a valid summary crash.log file due to not initialising it's buffers (this effectively caused an empty summary file being submitted as part of the crash report if it even managed to get to that stage)
Fixed the CD playback plug-in not releasing the held drive handle which prevented the first track of any disc after being ejected to not play until wacup was restarted (dumb bug related to avoiding trying to play data tracks introduced as part of the overall changes made in build 25130)
Fixed some compiler settings which meant the wacup core dll & libcurl were larger than was needed from still pulling in code not need from supporting libraries or just not being compiled to allow the linker to remove what's needed with the case of openssl + libcurl which shaves at least 256KB from libcurl.dll)
Fixed a number of quirks seen when trying to use SACAD for online look-up of albumart especially when playing internet radio streams with more done to try to provide a valid set of metadata to use (e.g. stripping off bracketted text for the likes of remixes or the station's name if the intial attempt to get the albumart reports a failure)
Fixed the refresh albumart action not working as expected for internet radio streams where they've already got a locally cached image & aren't found to be present in the rolling live albumart cache
Fixed a crash when using the export library playlists list action & it was set to the text output & a playlist entry without a provided name string was encountered (left over bug from a few builds back)
Fixed $replace not working correctly with an empty string parameter due to an optimisation done in build 25130 which inadvertently broke how the copying of the replacement string was applied to things
Fixed the podcast feed handling not always saving the feed items correctly if the media library view was open just after an update due to a timing conflict between the background saving vs view sorting
Fixed some of the podcast view buttons being hidden when resizing the vertical divider between the podcast feed & episode lists when the view layout would expect to be able to still see them at that size
Fixed the parsing of published date information for atom based podcast feeds not working due to an internal api change that no one seems to have noticed along with reducing the amount of code now used to parse the date strings
Fixed a conflict with determining the input plug-in to use due to in_url & it's use of an internal api incorrectly not being limited to just claiming http/https urls vs the input plug-in loading order
Fixed the big clock window not showing the elapsed playing time when playback has started if still within the first second
Fixed seeking when starting playback incorrectly causing it to stop when the input plug-in trying to be used reports it cannot seek (found whilst working on the new loopback:// addition which prevented it effectively resuming the mode between instances if autoplay was enabled)
Fixed the classic skin main window songticker send-to menu handling (that's a mouthful) incorrectly terminating the string causing what's trying to be sent to lose the last character causing it to fail
Fixed some small performance issues with the crash reporter along with the last information header which is meant to provide clickable links not always being created correctly (odd timing problem seen)
Fixed an odd crash seen early on in loading whilst trying to obtain one of the default menu strings when that can instead be pulled from the stringtable resource only when needed (aka running less code)
Fixed a crash when attempting to remove artwork from a CD entry due to the handling incorrectly handling the non-url form of CD entries when the in_cdda plug-in had already dealt with things along with not double-checking that taglib is able to be loaded for the action (the handling shouldn't have failed on that but if the OS is blocking it from loading as was likely the case then this also avoids that)
Fixed more problems reported related to the prior atf optimisation changes from build 25130 which could break the shown output for null / empty string inputs along with $replace getting stuck in a loop
Removed jnetlib.w5s per the change above related to dsp_wc
Other small miscellaneous code clean-up including relatd to determing the bit-ness of the OS, attempts at optimisations & possible crash fixes for issues not reproduced so far
Updated ASAP (in_later.dll) to 8.0.1 (20 Oct 2026)
Updated libcurl (libcurl.dll) to 8.23.0 (14 Oct 2026)
Updated libfaad2 (libfaad2.dll) to 2.11.4 (1 Oct 2026)
Updated lzma (lzma.dll) to 26.05 (21 Oct 2026)
Updated Monkey's Audio (in_ape.dll) to 13.42 (20 Oct 2026)
Updated openh264 (in_mp4.dll) to 2.7.0 (22 Oct 2026)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 16 Oct 2026 along with the supporting dlls it requries