Wacup, wat kan worden uitgesproken als wake up, staat voor Winamp Community Update Project en is een gratis mediaspeler voor Windows 7 en hoger. Hoewel 'Community Project' in de naam anders doet vermoeden is de software gratis en niet opensource. Wacup heeft qua uiterlijk veel weg van Winamp en kan ook overweg met plug-ins uit dat ecosysteem. De software is nog in ontwikkeling en kan als bèta worden gedownload. De changelog voor versie 1.99.47.23948 kan hieronder worden gevonden.
Preview Version: 1.99.47.23948 (x64)
- Everything done as part of preview build v1.99.45.23528
- Added more to the "formatinformation" for opus based files & internet streams per a forum request vs the basic information previously being shown for them
- Added a resize cursor when skinned cursors is off for the generic skinned window frames so it's hopefully a bit more obvious where the resize element is
- Added remembering of the last path / filename for the main playlist saving mode
- Added an option to the internet radio view filter button menu so it's possible to hide all of the extra genre columns in the view so it's just the primary column that's shown (irrespective of how valid that might actually be)
- Added an option to the Advanced preference page so the default behaviour for checking if a network based path is still valid to avoid ui related hangs can be disabled if it's causing false failures
- Added support to show the branding / visualisation area (not that WACUP implements a playlist window visualiser mode nor do I plan on implementing that feature) in the classic skin playlist window which is controlled via the classic skin preference page (this is off by default & optionally classic skins intentionally updated to support this can show the branding area irrespective of this preference)
- Changed the local library results pane selection preservation handling to be more like the history view as part of trying to resolve some on-going deadlocks
- Changed the FLAC input plug-in to show the vendor string as part of what's reported in the "formatinformation" response to match the other ogg based formats
- Changed the skinned listview control handling to try to ensure both unicode & ansi equivalent messages for the header are checked for which might explain some installs not seeing column size changes being tracked as expected (am not sure if this will actually help or not as none of my testing has seen the ansi equivalent message appear in the window messages)
- Changed /ENUMPLAYLISTS command-line mode to ensure the output is now CSV format compatible along with including the group along now supporting an optional parameter instead of sending it stdout
- Changed some internal aspects as part of working towards adding in a native mode for being able to at least backup the relevant settings files for an install
- Changed how some of the plug-ins are built to better share more from the core dll which saved around 0.2MB from the reported to be installed size as well as giving a small reduction on loading times
- Changed how the skin provided cursors are loaded so the OS should now hopefully scale them up as needed to better match non-skinned cursors instead of being really small / hard to see based on feedback
- Changed the drag+drop cursor to now use what can be provided by the OS instead of effectively providing a duplicate a copy
- Changed how main playlist title updates are triggered after metadata has been changed if the local library is enabled to do a better job by triggering an async action along with better ensuring that the cached metadata is cleared before the action is sent which should avoid old metadata showing despite the local library view showing the updated metadata if the item was within the current view cache
- Changed how lyrics requests are handled to remove anything pending if the caller is the same so lots of next calls should avoid the likes of gen_lyrics taking an age to respond along with it now trying to abort the active connection if things have changed so the new request can be attempted sooner especially when some of them are taking a comparative age to run
- Changed the podcast downloads view loading to avoid some memory re-allocations which provides a small saving on load
- Changed some more of the internal structures to re-pack them &/or defer when things are created to reduce memory use (e.g. this saves around 3MB with the internet radio view)
- Changed the internal scaling handling for classic skins to avoid recalculating many of the values when it can be pulled from a pre-calculated cache whilst using a bit more of memory
- Changed some of the classic skin window handling to reduce some of the painting overhead at the expense of a few more GDI objects along with trying to make better use of resource caching for many paint calls which appears to make things a bit smoother when moving all of the connected classic skin windows around
- Changed the option to save the current shuffle table between instances to be on the Advanced preferences page & removed the remainder of the Shuffle preference page as the attempted shuffle morph rate option (a left over from when trying to replicate what winamp was doing with its shuffle handling) never made much of a difference nor is it really needed when a shuffle based on metadata & playback history is seemingly more of what's wanted (still considered for some point)
- Changed the Channel Mixer preference page to better indicate if it's not the active output plug-in along with clearing out some of the cached output if it's changed to no longer be the active plug-in
- Changed how shift + mousewheel up / down is handled in the skinned listviews so it should now attempt horizontal scrolling (or vertical scrolling if there's no horizontal scrollbar) instead of causing it to act like enter has been pressed which wasn't intended (something seen when doing shift + mousewheel up in the local library views causing it to try to process all of the files in the current view)
- Changed to no longer show empty audio cds within the main right-click play sub-menu or in agent mode menu to avoid trying to interact with them (the media library views will still be shown if empty)
- Changed some of the classic skin main window song-ticker handling to further reduce the work that it's doing when using non-skinned fonts (there are some possible options to improve this but how Windows can do font drawing is a mess of consistency where the modes able to do what I'm wanting with caching & alpha transparency either don't work with a lot of fonts used or essentially double the time it takes to get wacup loaded before it's ready to then be able to start drawing text & that still doesn't handle all of the fonts compared to the old GDI method being used)
- Changed the way the checking of a network based path which is not being accessed via a mapped drive letter is done to try to avoid false failures (e.g. this showed up by not being able to read the length of files within the local library when using the raw network path but it worked fine when it was accessed via a mapped drive letter based path)
- Changed how in_url handles MP3 stream playback as an attempt to reduce memory allocation churn which might be behind some of the random crashes
- Changed the handling around extracting the skin archives to reduce the time taken to get everything extracted before trying to load those files
- Changed when the skin cursors are loaded to avoid doing it all in one go (which especially with some of the recent loading changes for better dpi support) was causing skin loading to take longer than it should have along with it avoiding loading some cursors that may never be used during the running instance (under testing this almost halved the load time for some classic skins with all custom cursors)
- Changed what the core & setup are doing in an attempt to improve how the OS will treat the running vs non-running instances when trying to pin WACUP to the taskbar (which has never behaved nicely before)
- Changed the core to use the native minizip-ng api for skin extraction which further helps reduce the loading impact & difference in load times between a pre-extracted skin & one in an archive making that be almost no different now in testing (depending on the skin it seems to range from a 20-30ms reduction to a 50ms range depending on the complexity of the skin archive) along with the loading of the skin preference page & inspecting information of the skins which reduces the time to open the skins menus when archives are present
- Changed the core to use the native minizip-ng api as part of creating the crash report archives which at the expense of a few KB increase on the core dll size is now able to create the archive quicker especially with avoiding the need to use temp files for any dmp files being collected as the older compatibility api had used
- Changed the in_zip plug-in / archive as a playlist handling within the core to use the native minizip-ng api which reduces the time taken to find & extract compatible files within such archives along with helping to deduplicate some of the code stemming from the origins of the in_zip plug-in
- Changed the internet radio view handling to make use of some db handling changes which allow it to do some of the filtering quicker compared to before along with avoiding allocating some string values
- Changed some of the internal string handling to better ensure consistency between the x86 & x64 builds (mainly helping reduce memory usage for the x64 build with the x86 build handling working as was)
- Changed the appropriate listview handling in the media library plug-ins to make use of the zero-copy option when the OS is requesting the string to be displayed which reduces some of the drawing overhead
- Changed how the nde cache is implemented to use a different solution which is a bit faster & uses less memory compared to the prior implementation to help reduce the time it takes to load these files
- Changed some of the internal handling for detecting & avoiding duplicate values (e.g. inspecting the local library or building up the internet radio list) to use a different solution which is faster & uses less code to achieve it (always a bonus)
- Changed the format of the internet radio station cache which allows for more memory savings vs the changes already noted above with ~30MB saved in usage (removing duplicate data & making more use of the core genre strings helps with this) along with making it quicker to find genre results & reducing the size of the cache download by around 13% (the legacy cache db will still be provided whilst there's enough older builds still trying to use it but it is planned to eventually stop updating that file for only this newer one)
- Changed the skin bitmap loader to use a more direct approach which avoids some unwanted overhead from the previous solution along with better leveraging modern cpu support which futher reduces the time to load skins along with reducing some of the processing overhead when it comes to PNG, JPEG, GIF & WEBP images
- Changed how the library playlists are internally handled on initial loading to reduce the memory usage & code complexity & to make things a bit quicker from less overhead when doing later on interactions
- Changed the media library podcast view loading to try to reduce it's impact on initial loading & some of the ui churn from the loading panel which it was previously using
- Changed how the podcast feed item descriptions are processed to do more work up-front to avoid unwanted whitespace & formatting which makes their later display & saving to be quicker by avoiding unwanted data that's not going to be seen
- Changed how the playlist editor, equaliser & video windows are created which shouldn't affect Windows (maybe making things a bit snappier on loading) to avoid the reproduced instances of those windows flashing black / white during loading under WINE due to how it vs Windows differs in the timing of window creation
- Changed how the window layout handling works (e.g. for setting the placement of things in the media library window) to reduce it's resource & code overhead which should make things a bit smoother whilst resolving some issues during skin change which could cause bits of the windows to not update their background as expected
- Changed how the tooltips on the native & generic skinned classic skin windows are handled to reduce it down to a single shared tooltip from effectively doing one per main window (for the main windows)
- Fixed a crash when trying to rename (or possibly create a new) media library playlist if there wasn't already a name
- Fixed the Icecast mode of the Streaming Source DSP not working (this was already provided via a post-release update)
- Fixed the main right-click & agent menu bookmark category sub-menus having the last character clipped which also caused the results to be incorrectly grouped
- Fixed a ui related deadlock that could occur when sorting the library playlist root view (more likely to occur with many playlists & triggering quick sorts)
- Fixed some repainting issues when the library playlists are set to be shown within the media library navigation window & their state is being changed
- Fixed the custom atf setting for finding artwork getting cleared when interacting with the preference page when there's been no intentional changes made to it
- Fixed the /ENUMPLAYLISTS command-line mode appending the library playlist settings path to the known to be externally stored playlist files breaking the path
- Fixed the obvious performance difference seen when starting up with the library playlist root view as the initial view due to too much initial repainting
- Fixed going back to the library playlists root view not always showing the columns as expected due to a timing issue breaking the column width calculations
- Fixed some issues with the non-skinned cursor handling on dividers & listview header controls where it wasn't always updating the cursor to be what's expected
- Fixed the skinned listview header control not show an expected cursor if skinned cursors are off when starting & then turning that mode on
- Fixed some other cursor handling issues which was causing more re-processing of what's to be shown which reduces the overhead during fast mouse movement
- Fixed most instances of the skinned listviews being reset back to the first item (e.g. when editing a library playlist item but was affecting other calls)
- Fixed the handling of the filter selection of the main playlist saving mode not saving it to be m3u nor clearing out the settings file if it's been set to the m3u8 default
- Fixed saving metadata edits to local opus files not working as it was incorrectly trying to do it if it was an url which wasn't the intended result, meh
- Fixed double-clicking not working as expected in the main playlist after using the classic skin window playlist buttons along with not updating the selection & not sending the notifications that should be sent on selection changes along with making it not (re-)start playback if not done on playlist item
- Fixed the ASAP plug-in preference dialog not working due to a missing resource problem introduced some time back
- Fixed the volume / panning bars for classic skins not being drawn if they're less than the typical 11px height
- Fixed posbar for classic skins with an empty / transparent main block not showing up correctly (this and some of the following fixes makes the handling be more like webamp when using a skin with image files with transparency in them)
- Fixed the classic skin main & playlist windows to better handle the skinned & non-skinned font handling where transparency is being used in the images for so they don't show a generic black background
- Fixed the windowshaded classic skin main window not showing the current playback position when the focus of the window changes until the next timed drawing update occurs making it lag in its updating
- Fixed the duration sent when doing some of the online lyrics look-ups being incorrectly encoded causing most of those call to fail
- Fixed a crash on closing in the Win7Shell plug-in if due to timing weirdness with when messages are sent / received getting something when the rest of the plug-in has been closed down
- Fixed the probable cause of a crash seen by some installs when going to the Skins preference page & not waiting long enough for the handling to terminate the background thread used to avoid ui blocking
- Fixed the plug-in profiling mode not releasing it's working buffer once the loading tracking has been completed for a small memory saving
- Fixed a small performance issue when loading the internet radio view due to how the many station objects were being created & maintained
- Fixed a locking conflict with the classic skin main window painting which might explain some painting weirdness / failures reported
- Fixed the focus transparency mode with the gen_classic plug-in not behaving correctly when interacting with the embedded windows (frame or contents) along with the fixed transparency mode not being live applied when changed in the settings as well as the opacity sub-menu in the window settings sub-menu in the main right-click menu not being enabled when this plug-in is enabled
- Fixed a crash with the toast formatting string handling if an empty string is left as the field on closing the preference page
- Fixed clearing the proxy string on the Internet | Online preference page not being saved as expected
- Fixed some drawing issues with the media library navigation tree & button when the divider is resized all the way to the left or just the bottom window area between those elements not redrawing on sizing
- Fixed some other drawing issues with large static controls & the view dividers where the highlighted element might not always appear when mousing over the element
- Fixed the new instance handling not behaving correctly due to an issue when generating the paths to use which caused the new instance to crash before it completes
- Fixed the video window sometimes during initial loading showing the base skin before the specified skin is loaded before the rest of the handling has completed
- Fixed some issues seen when the loaded state of the Streaming Source dsp plug-in changes in the running instance which could cause problems with the loading of the related Stream Source preference pages
- Fixed a timing issue which could still cause the albumart window to incorrectly blend the image with the background despite the option to do so being unchecked
- Fixed some performance issues with the geiss visualisation plug-in so it should have less CPU overhead & be more likely to hit higher frame rates at high screen resolutions (is still not near 60fps 4K)
- Fixed the initial loading of the media library podcast view causing a main ui thread lock-up if the local library database hasn't yet been loaded as part of trying to get the last played information for the feed items being shown
- Fixed some quirks with some of the media library view loads which prevented the grouped play button either appearing immediately or having the dropdown action applied to it making it look wrong
- Fixed a logic issue causing the podcast feeds file to be reloaded when checks are made on when to next run the updates instead of using the already loaded feed information
- Fixed a crash that could occur when renaming a local library view which has already been renamed within the same running instance due to a problem with the data used to keep the views unique on name re-use
- Fixed the list within the excluded files window not displaying correctly when enabled under WINE due to a timing issue between applying the skinning to it vs hooking done by the plug-in on the listview
- Fixed the media library navigation tree not handling font size changes correctly when running under WINE causing the icons & text to overlap when drawn or to have a large unwanted gap until restarting
- Fixed a small performance issue with the handling of adding the items into the preferences & internet radio view's genre list
- Fixed the obvious concurrency issues with the handling of archive playback which could cause inconsistent playback or hang &/or crashes to occur for some users along with RAR extraction which could conflict with the working temp folder causing those files to not persist long enough causing playback failures
- Fixed some more performance issues noticed with the jumplist handling mainly from converting strings internally when not needed or triggering each action to save when it can be done once after all is done
- Fixed the possible reason for the line rendering mode in the waveform seeker window appearing to not draw the bottom edge if the data to be shown is clipping
- Fixed some of the input plug-ins incorrectly being built with an embedded manifest files when there's no need for it
- Fixed the gen_classic plug-in not working under the x64 build due to a change some time back that meant it didn't get the expected response when checking if a classic or a modern skin is being used which is hard-coded to classic skin only for this build type)
- Other small changes as part of trying to determine why some of the on-going crashes are still happening or where it cannot be replicated but changes were made
- Updated ASAP (in_later.dll) to 8.0.0 (16 Feb 2026)
- Updated minizip-ng (zlib.dll) to 4.1.0 (21 Jan 2026)
- Updated libexpat (xml.w5s) to 2.7.4 (31 Jan 2026)
- Updated libopus (libopus.dll) to 1.6.1 (14 Jan 2026)
- Updated libpng (image.w5s) to 1.6.55 (9 Feb 2026)
- Updated lzma (lzma.dll) to 26.00 (12 Feb 2026)
- Updated Monkey's Audio (in_ape.dll) to 12.34 (20 Feb 2026)
- Updated OpenSSL (libcurl.dll) to 3.5.5 (27 Jan 2026)
- Updated unrar (unrar.dll) to 7.2.4 (1 Feb 2026)
- Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 15 Feb 2026
- Updated WavPack (in_wv.dll) to 5.9.0 (16 Jan 2026)
- Updated zlib-ng (zlib.dll) to 2.3.3 (3 Feb 2026)
