Added an initial attempt at handling shorten based files via a new native wacup input plug-in (in_shnobi) though this doesn't yet support seeking but should hopefully not crash like the old in_shn plug-in (not that this build type was able to play such files with the old 3rd party plug-in)
Added 'remove missing' to the library playlist's right-click menu so it's more obvious after not being found from the remove menu along with adding it to the main playlist right-click menu so things are kept as consistent as possible
Added support for updated classic skins to make use of a new 58x12px line in the 'monoster' skin image to indicate surround files are being played (instead of the inactive mono / stereo elements shown)
Added support when playing supporting SCv2 based streams to try to get the playing art from the DNAS to then be able to show it within the artwork window (SCv1 playing urls were already being checked for & attempting to render an appropriate image in a prior build)
Added an option to the root media library prefs page to complement the playlist & local library double-click handling for audio cd views which should make the view behave more like 5.666 for those wanting that
Added checks during plug-in loading to trigger a small dialog to appear (like is done with slow main playlist loadng) if it's taking longer than expected (e.g. due to smart app control) to hopefully make it more obvious that it is still working (since the likes of smart app control can make it sit for almost a minute & appearing to be broken)
Added logging of the duplicate items removed via that action from the main playlist or library playlist into \duplicate_files_report.txt or \Plugins\ml\playlists\duplicate_files_report.txt respectively to help determine what had been removed (this could be done before by comparing the new vs backup of the playlist files)
Added logging of the missing items removed via that action from the main playlist or library playlist into \missing_files_report.txt or \Plugins\ml\playlists\missing_files_report.txt respectively to help determine what had been removed (this is in addition to the prior jtfe global hotkey action to list the missing files from the main playlist)
Changed the notsoyasapi output plug-in to no longer offer the pull strategy mode as it never seems to work & for the time being I just don't have the interest in trying to debug what never seemed to work
Changed some of the input plug-in's not correctly following the input plug-in specification header along with some unnecessary tracking of the volume & panning values which the plug-ins were never using
Changed the core loading error message about not being able to continue due to a missing / failed dependency to now refer to Smart App Control since it appears to be the main reason for these load failures
Changed one of the plug-in preference list error messages to better reflect why it may not have been loaded which also now has a reference to Smart App Control along with the older DEP/NX-bit problem
Changed the post-release update handling to no longer show the succeeded message when they've been applied as part of loading wacup since the OS copy file dialog completing basically does that for us
Changed the post-release update checks done as part of the crash reporter dialog to now be run off-thread to avoid it possibly blocking if things take too long to get a response from the wacup site
Changed the ATF $cut(..) method to support negative values so it can work back from the end of the string (this is related to the $filepart(..) bug & not being easy to workaround without a new core build or using the $put/$get handling)
Changed more of the internal ATF handling to avoid working out the length of strings when it's already been determined for a small performance improvement especially when doing 1000's of ATF calls
Changed some of the internals in the core & the input plug-ins with how the length & length_seconds metadata values are processed to avoid some code duplication, making it a bit quicker & more consistent
Changed in_url to now attempt to handle playlist urls if given to it (instead of getting into a weird state per the fixes below) but this will now attempt to handle the extracted stream url directly
Changed how the online lyrics look-up is done to better handle items without metadata or have urlencoded metadata along with the order that the services are attempted to improve the reliability of results
Changed how some of the plug-ins attempt to handle replacing a file (e.g. when editing metadata in FLAC files) but it's on a different / remote drive to the location of the working copy (e.g. temp folder)
Changed how the input plug-ins are handled around making metadata edits so the wacupified ones are now able to (if available) to provide a better reason for why the change(s) may not have been applied
Changed how some online playlists are checked to better ensure they'll be expanded out instead of being left as the raw url for the playlist (which itself was a bug recently introduced & since resolved)
Changed how the audio cd view updating is done to hopefully make it be more reliable in reflecting the drive state change without having to manually toggle the view to see the changes (a regresison though the prior code wasn't necessarily doing things in a manner that wasn't timing dependent which wasn't helping the seen problem)
Changed the all double-click / enter handling in audio cd views to not add non-audio tracks which matches with the handling on the navigation item (i.e. it won't add data tracks, just the audio tracks)
Changed the dark mode progress bar handling to now draw an appropriate border around the control which should make it look more like a normal Windows control
Changed the default volume control mode for notsowavey to now use the direct mode which modifies the audio levels instead of the prior default of changing the process volume (this can be changed back via the preferences for those preferring the older way of volume control which is a mode that I really do not like hence changing it now that the diriect volume control is working correctly)
Changed how the internet radio urls are processed to better filter the obviously dead shoutcast provided urls (e.g. the ones from the defunct radionomy service that it keeps providing which should be seen in all prior builds to this when the internet radio cache gets updated)
Fixed a crash related to the internet radio view when trying to do a batch play from it whilst an auto-refresh or manual cache update of the internet radio stations was then triggered to happen afterwards
Fixed the probable cause of a crash when trying to look at the metadata for a FLAC file via the Alt+3 / File Info dialog if in_flac isn't able to find / load libflac
Fixed a crash when trying to open the Alt+3 / File Info dialog in low memory situations which prevented some of the buffers being created as expected causing other code to then fail due to not checking it
Fixed MP3 files not being handled correctly when trying to process them for replaygain due to a logic bug which was incorrectly causing it to be reported as unable to be handled
Fixed a crash with the notsodirect output plug-in when trying to still be called by some failed playback states despite the output plug-in already being in an unloaded state
Fixed a potential hang on loading of the main playlist when UNC folder entries are detected so it doesn't end up trying to do a full network share related enumeration of the folder that's been specified
Fixed the probable cause of a hang / crash on closing when there was an active attempt to get artwork via the online handling due to the running child process not aborting
Fixed a somewhat old issue where the internal action to generate a list of supported file types that for example the local library uses to help determine what will be added was causing a crash due to the processing of what the input plug-ins provide into the needed list of extensions could end up in an invalid state which would then break the state of the whole process (this affected x64 builds more than the x86 build based on the number of crash reports seen with this problem)
Fixed a number of performance issues related to the code fix listed above
Fixed some unwanted memory initialisation from some of the supporting libraries especially those always triggered by the core loading for a small load time saving along with not using as much process memory
Fixed a crash when trying to get the first extension reported by an input plug-in as part of the cache clearing calls done (to help reduce how long a file is locked) along with a performance issue with the prior code which meant it was doing a lot more than was needed for the specific action it is intended to do for us
Fixed a copy+paste bug which meant the history plug-in would try to use the wrong file if the main history db files are deemed to be corrupted which would then break how the attempt to load the backup files worked causing more problems (e.g. crashing or corrupting the playlist history db instance along with the backup files for them :( )
Fixed a bug seen where it was possible in some rare instances for the wrong input plug-in to be matched to use for getting metadata from a file due to how the last file type to use was being tracked (e.g. this was seen as in_mp4 being given a flac file when in_flac was loaded)
Fixed Ctrl+F not working as expected in the media library playlists root view when a child library playlist is the active part of the playlists view
Fixed a problem trying to play some Icecast based stream urls where what is provided is http but it will only ever work if attempted as an https url (a weird one as the Icecast YP & the Icecast server were incorrectly provided the non-https url even when trying to get its listen playlist directly instead of it taking it based on how the server is accessed)
Fixed an intermittent issue with notsodirect which if given a lot of quick playback events could end up in a stuck state causing playback to break &/or wacup to eventually end up in an unresponsive state which was more of a problem if there was also an attempt within the window of that event to trigger a volume change
Fixed the probable cause of some nde related crashes when things are entering into a weird state especially if other unrelated code is causing memory problems / crashes
Fixed the possible cause of a deadlock seen when interacting with a playlist within the media library playlist root view along with avoiding some duplicate re-processing of playlist item information during the drawing of the playlist items in the view
Fixed the $filepart(..) ATF action (as used as part of the default main playlist ATF string) not adjusting for now getting back "mp3" instead of ".mp3" causing a period to appear for files without metadata
Fixed some quirks seen when trying to do fast double-clicks on the classic skin seekbar (there's still an oddity with in_wave when handling mp3 files that can cause it to change position when not wanted)
Fixed a number of issues with in_flac due to it not correctly merging or outputting the audio channels from mono & surround files along with it not following the option to control if surround playback can be done (via Preferences -> Playback -> Playback tab) or it only outputting the left channel if forced mono playback was enabled when given a surround file
Fixed the closing timer for the crash reporter dialog being wrong as it was showing 10sec instead of 5sec when the post-release updates handling had been triggered
Fixed a small performance issue with some of the metadata calls which meant the filepath was being re-processed when there was no need
Fixed the in_url plug-in not behaving as expected if it's given a playlist url (e.g. from an internet radio) which could leave it in a waiting state instead of it triggering the needed end of file event
Fixed an issue with the core trying to determine if something is an url based playlist which meant it could end up in a stuck / invalid state depending on what input plug-in it was trying to make use of
Fixed the $trim(..) ATF action with streams / invalid input silently crashing
Fixed the cause of the playlist file remover action advancing to the wrong playlist item when triggered from the first playlist item (e.g. playing item #1 went to #3 instead of #2)
Fixed the waveform seeker plug-in not clearing its window contents when the main playlist is cleared
Fixed the equaliser not working well with more than 2 channels of stereo & it seems I've likely not had a properly working implementation for stereo since I implemented the handling in wacup's core
Fixed the taskbar text not updating as expected when moving the position of the current playlist item or when playlist items were being deleted due to an optimisation from a while back to reduce doing too many updates
Fixed a possible deadlock that in_psf & in_qsf could trigger when editing metadata
Fixed the probable cause of dsp_wc for some setups ending up using a lot of cpu time when there's no need for it due to not doing the appropriate internal clean-up after sending title updates to a server
Fixed the empty artwork state not being sent by dsp_wc to the SCv2 DNAS as expected along with a change to try to avoid what is cached by the plug-in being clobbered which might be the reason for a report of the artwork stopping updating
Fixed in_url not being able to display the server name for things like the SCv2 DNAS due to not looking at the icy-notice2 header line
Fixed artwork look-up for CD items so it'll now get to it's handling instead of in_url trying to take on things that it shouldn't have been tring to do
Fixed the volume handling of notsowavey not being right with process volume control not always working along with audio issues when working on the digital audio directly causing it to sound wrong
Fixed mp3 files handled by in_wave causing 2 file handles to be opened & kept on the playing file when only the main handle was needed once the length of the file has been determined before full playback
Fixed an unexpected high cpu problem seen if there are delays during the loading of the plug-ins which was causing the taskbar text to be regenerated when other aspects weren't yet in an appropriate state
Fixed an issue with the file converter api implementation which could prevent things like the replaygain processing being able to report the correct percentage of file that's been processed (the x86 build was not affected by this problem)
Updated libcurl (libcurl.dll) to 8.22.0 (2 Sep 2026)
Updated libopenmpt (in_mod.dll) to 0.8.9.25652 (19 Aug 2026)
Updated libpng (image.w5s) to 1.6.59 (28 Sep 2026)
Updated lzma (lzma.dll) to 26.03 (3 Sep 2026)
Updated OpenSSL (libcurl.dll) to 3.5.9 (29 Sep 2026)
Updated taglib (tag2.dll) to 2.3.2 (5 Sep 2026)
Updated the installer to use NSIS 3.12 (27 Sep 2026)
Updated unrar (unrar.dll) to 7.3.1 (9 Sep 2026)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 27 Sep 2026