Wednesday, December 15, 2021

Quality check

Recently I ran a CueTools scan on an entire previous version of TLMC, as I was planning to do since I discovered I had this option. Not exactly the v.19, as it was already slightly dismantled (~25 albums replaced with better versions, renames applied), but something pretty close, say 99+%. The results were quite unexpected for me. If you're curious you can download full check logs (the checker might've also grabbed some extra files from bonuses) and a summary in both original text format and a table. Visual html+css table form uses some heuristics to transform summary text into color-coded quality representation, so it's not entirely precise. If in doubt refer to the detailed logs. You could also run the check yourself, although be prepared to let the program single-threadedly crunch numbers for a day or so, the bottleneck is the audio decode time, which runs at ~200x realtime on my CPU for the TTA codec. My logs slightly differ from the ones produced by the original Cuetools, because I patched it a little for my convenience, but the change only displays calculated offset in CTDB checks, which is not shown in the unmodified version.

The summary of the results is as follows: about 20% of all disc images fail verification. Here by "fail" I don't mean "disc was not found", I mean "was found to be different and unrepairable". Oh, and completely by coincidence the peak level of the supermajority of such rips is almost exactly 98%. And by another coincidence normalization to 98% is the default value in an admittedly turned-off-by-default setting in "Exact"AudioCopy. In addition to those there are another 15% of disc images, which also have peak level of 98% and return "disc not found" and it'd be fair to assume they would also fail to verify.

Lessons to be had here:
1. Not only it is your duty as a software developer to provide sensible defaults, doing only that and no more is clearly insufficient to produce reasonable outcomes. Out of 10 monkeys that see an unknown lever at least 3 will pull it and leave it there. Any option that does anything unpredictable to the dumbest possible user should be hidden behind a curtain that requires a certain intelligence level to bypass, which is enough to understand what the thing that was hidden actually does. In our particular case it could have been a domain-specific scripting language interpreter window for general purpose audio transforms, not a "please ruin my rips" on-off switch in plain sight. Of course there is another danger that by simply removing anything the unfortunate could use to shoot their feet off, instead of properly hiding it because it is easier to do so, you risk turning your software into iCrap.
2. We don't know how badly mangled these rips are.
Maybe they were improperly done and there are stutters or clicks or anything else that wasn't in the original CDs.
Maybe the only problem is the normalization, so it is displeasing on an intellectual level, but would not be audible as a defect.
3. In my defense those album versions were the only ones available, so the only alternative to including these rips was not to include them. I could not have done anything differently, had I known about it, but I wasn't aware of the problem and its extent. Now I am and so are you.

Thursday, December 9, 2021

Some bonuses while you wait

I didn't upload a lot recently, so it came as a mild surprise to me that nyaa pantsu is dead and nyaa si closed registrations.
I'll be posting some discographies of non-touhou circles that are nevertheless pretty awesome to make waiting for the big torrent slightly less annoying.
As always extract cues and use cuesheet-aware player (foobar/deadbeef) to play individual tracks.

2021.12.09 ArsMagnA (Ariabl'eyeS, -LostFairy-, Seraph) lossless music collection.
Magnet link, torrent link, CUETools verification results.

Monday, August 2, 2021

Why do we need a database-based filesystem.

Note 1: there is a small TLMC-based demo at the end of this post, I recommend to check it out.
Note 2: these ideas are neither original nor new. I'm fairly sure there exist similar thoughts in written form from 20 years ago and at least three abandoned prototypes of this kind.

Monday, June 28, 2021

There are no good browsers left.

I actually intended to make this post a year or two ago, but then kept putting it off. Now I stopped doing that, so here you are.
What is this about? I don't mean to criticize how bloated the browsers have became, even if it's true. I don't mean to write about how Firefox always shuffles UI elements around or how Chrome spies on its users. Just the very simple, most basic thing. Fonts and font rendering.
Make sure to set your browser page zoom to 100% to avoid browser scaling image distortions.

Here's a tiny piece of html for this test.

Friday, June 11, 2021

TLMC v.20 PRE-RELEASE post

The bad news: v.20 is still several months away.
The good news: v.20 is only several months away.
This is NOT YET a release, but we are fairly close. Here's how you can help:

Wednesday, April 21, 2021

Booth.pm corrupts your downloads.

If you ever bought direct downloads from them make sure to check that your files are error-free, especially if your downloads were slow.

Today I noticed that half of the files in four free albums by "クロネコラウンジ" did not decode properly. I redownloaded them all and one of the new files was still broken, but another attempt got me a good version. It was the only file that took about two minutes to get (today's first attempt), compared to several seconds for the rest, which suggests that under heavy load the file-serving part of their webmonkey code hiccups and starts sending you wrong file parts. Looking at the broken files in hexeditor you would notice content starts repeating in some random place (the starting position of the first part that gets repeated is aligned at 1 MiB boundary).

Sunday, January 10, 2021

Princess Connect

Important notice 1: TLMC pre-release post soon(tm), the torrent several weeks after that post. Don't ask when, it's being worked on.
Important notice 2: Princess Connect Re:Dive [global] is available both in "32-bit" (ARMv7) and "64-bit" (ARM64) versions, don't listen to anyone claiming otherwise. Just visit some direct-from-google downloader like this, and pick SG Grand Prime (for 32) or SG Note 9 (for 64).
Important notice 3: Leapdroid won't run PCRD (some OpenGL surface issues). Bluestacks emulator, which I saw being recommended by many, contains a metric shitton of malware out of the box, be advised.

Just a short observation - if you feel like peeking at exact values the game uses internally, you should view its db (which is located in "files/manifest" app settings subdirectory; the one with the sqlite header). If, for any reason, you just want to refer to some data there without exporting it yourself, you may use this dump. I'm not sure I'll be sticking with the game for a long time, so I can't promise regular updates yet.

Based on the current db the game will be officially released on 19 Jan 2021 and clan battles will start on 10 Feb 2021.
First "focused gacha"' will be rateup for Djeeta.

20 Feb 2021 edit: Stopped updating the db dump on github.
The game turned out to be pay-to-win trash, wouldn't recommend it to anyone.