ASCII Transliteration in Search

Feature description:

Unicode artist and album names are common, but the search in the app appears to be very strict when matching. Some friendly ASCII transliteration library would be super helpful.

Problem solved:

If I want to find Jóhann Jóhannsson in my library, typing “johann” into search currently yields no results. There are countless other examples running the gamut from pretty mainstream to deeply niche.

Brought benefits:

Music is notorious for having non-ascii characters scattered around band names, let alone international characters in artist names, weird concept or art albums, etc. This problem space can turn into a rabbit hole, but a simple transliteration solution would get us pretty far.

Other application solutions:

DSub does this silently and helpfully, but I recognize there are consistency issues and implementation roadblocks with whether you’re querying a local db or using an API endpoint to search directly…

My testcase is connecting to a Navidrome instance. Apologies if this is a Subsonic API problem discussed previously but I didn’t find anything about it in feature suggestions here.

1 Like

Unfortunately I’m dealing with local database so broken SQLite from Android that does not support collate on like and glob …

The only way to achieve that is by adding a normalized column everywhere but this takes a lot more storage and the proper transliteration API is Android 10+.

With that said now that the app is API 28 min (So Android 9). The really low storage devices are way less frequent and it’s only one API level that does not have the proper API so I could fallback to simple accent removal for those as they are few.

Will do some test with Google transliteration API to check performance and support and will maybe reconsider adding the normalized row to enable this.

So seems it works pretty well on Android 10+ so next release will have this.