WACUP Development Update November 2023 (Patreon)
Content
If anyone knows where the 2 weeks I seem to have lost this month have gone then I'd be much appreciative as I've obviously not managed to get a new beta build done this month despite the plan of last month's update so I'm a bit miffed with myself.
Things have been progressing though it's been slow going fixing the stuff that really shouldn't have been wrong but sadly was & seems to explain a lot of the odd issues I've not been able to replicate for some time that have been cropping up in the crash reports. This all relates to finding out that WACUP basically won't run for too long if Application Verifier (appverifier) is enabled & I've been doing as much as I can to re-test all of the aspects I've got control over to not have appverifier get triggered.
The appverifier testing showed up a number of deadlocking issues that I had thought were resolved with the local library & history threaded handling during the lengthy beta phase but obviously weren't & those should now finally be resolved if it's results are correct. The impact of these issues seem to have been able to cause odd crashes on closing (more so for saving out playback history changes) along with conflicts when the local library views were being loaded.
-
An unintended side-effect of the above testing was that I ended up breaking my main local library test database which consists of ~330K entries that has accumulated a number of quirks & issues from testing over the last few years along with it along with being a very useful strain on the system (in the future I need to find a solution to reduce it's memory overhead as there is a bunch of data duplication going on with it).
The end result of that breaking was some actions not working as expected since the files couldn't be found due to the filename cache index (part of the idx file, the dat file was thankfully still valid) having gotten corrupted at some point which led to wasting around a week trying to get the thing working again.
A solution is now in place so as long as the idx file isn't too badly corrupted then the handling should be able to recover things back to a valid working dat+idx file pairing. How common of an issue this is I really don't know but based on some of the problems from playback history not being updated / saved on closing & the crash on closes, I'm hoping that all of these changes will behave when a new build goes up.
-
Otherwise it's been a case of working through more of the issues that have been reported or planning what might need to be done where the issue is more than just a simple change afaict. As long as IRL doesn't get too much in the way then the next build is going to have a chunky ol' changelog to go over.
-
The final thing to mention which I started on yesterday after feeling like last week was mostly a waste of time relates to trying to get a native equaliser implemented. Currently WACUP has to leverage the original winamp core (aka the winamp.original process via the legacy mode handling which still is mostly WACUP code but uses that & live code patching to get the WACUP core used) with the compromises that it brings just to be able to call its equaliser implementation.
Also it's something the 64-bit WACUP build doesn't have any support for at all as seen with no equaliser window in that build & is needed to be able to get it one step closer to being feature complete against the 32-bit build.
Just before I started this update post I'd gotten the basic equaliser preamp working in the 64-bit build & was about to look into the limiter option to minimise the clipping effect of pushing it too far. It'll likely be a few more days before I've got everything hooked up & tested in both build types along with how far I go with the 32-bit build. I also need to decide if I'm going to go ahead with removing all of the legacy mode handling from the WACUP core which currently is very likely I'll be doing that when the current preview build #17040 could still be viable to use for equaliser comparison testing.
With that, back to coding I go :)
-dro