Ok, so a few more findings - and tagging @TMC who was also interested in this use case, in a separate thread.
I tested a few scenarios on my x86 and ARM Linux devices (bolds for the Sonic data):
A) Pre-sonic DB, no “Music Analysis 1” folder
B) Pre-sonic DB, with “Music Analysis 1” folder
C) Post-sonic DB, no “Music Analysis 1” folder
D) Post-sonic DB, with “Music Analysis 1” folder
Also, for labeling scenarios, I’m referring to x86 and ARM as the two scenarios.
A) Pre-sonic DB, no “Music Analysis 1” folder
This scenario works the same in x86 and ARM, and it’s exactly what Plex worked like prior to the Sonic analysis feature being released. No changes there.
The only difference is that in a x86 device I have the option to enable Sonic Analysis, which will proceed to analyze the library.
B) Pre-sonic DB, with “Music Analysis 1” folder
This scenario works differently across ARM and x86.
In ARM, there are absolutely no changes - works as previous Plex did.
In x86 it will display the “Sonically Similar Artists/Albums” information on Plex (Web, at least, I believe on PlexAmp as well). It does not enable “Play Track Radio” options, nor “Album Radio”, etc. It does not suggest Sonically Related tracks on PlexAmp.
C) Post-sonic DB, no “Music Analysis 1” folder
This scenario works the same in x86 and ARM. It enables the “Play Track Radio”/Play Album radio options on PlexAmp. It does not show Sonically Related Artists/Albums, nor present sonically related suggestions. Alas, in both scenarios it will not work because (I assume) it will need the data in the Music Analysis 1 folder to retrieve related items. We get a “found 0 sonically related tracks” etc.
D) Post-sonic DB, with “Music Analysis 1” folder
This scenario works differently across ARM and x86.
On x86, it works as intended: Sonically Similar items get shown in the UI, sonically related songs show up, you can start Track Radio, etc.
On ARM, however, it works the same as scenario C: we get the “Play Track Radio” entry, but it can’t find any sonically related tracks.
Once again, this is exactly the same data in the same file structures - my media and Plex Media Server data folder are in an external drive, which I symlink from /var/lib/plexmediaserver/Library/Application\ Support/. Permissions are catered for, etc. Both systems are Linux, I just change the Preferences.xml file so that they register as two separate servers. For sanity checking, I migrated the same setup to my wife’s work Macbook, and it behaves exactly as the x86 Linux machine (i.e. it works well, and results are equally replicable there).
Following @TeknoJunky 's sound remarks, this has zero chances of working in a setup where paths change - which would include migrations across Operating System with different path separators.
Based on the fact that scenarios C behave the same across ARM and x86, but that scenario D works like C in ARM make me think that for some reason Plex is unable to access the Sonic analysis database.
My hypotheses for that, off the top of my head:
- It’s a Sonic database location issue;
- It’s a permissions issue;
- The code path simply isn’t available in ARM binaries;
For 1), I have no idea why it would be located elsewhere, and I have no idea to assess that as even with a Debug log there is no message around “can’t find XXX”.
For 2), it’s a possibility, but the permissions seem to be correct - plex:plex for all. And it works in Mac and x86 Linux with the same permission setup, so I’m not strongly inclined to this option.
For 3), it’s a likely option, with a few potential reasons:
- There are other x86-specific libraries that are required for this to work when playing back these mixes, and as such it is disabled for ARM.
- It simply is disabled as the feature wasn’t really expected to be of use for ARM - meaning, there is no expectation on ARM for that folder to exist.
- It is disabled because of the same compile-time or runtime flags that enable “Sonic Analysis” (and that aren’t shown on ARM).
Hoping that it not the first option (also, because the explanation in the FAQ for its absence is that “Unfortunately, the neural network libraries required for the sonic analysis are not currently available for ARM-based processors. That means that this feature is currently only supported for Plex Media Server running on x86/x86-64 processors”) and assuming it is a fairly risk-free change (as in its absence it seems to behave exactly as previous Plex) would it be possible to get this code path to be active for ARM, meaning, if the folder is present, use its data to show Sonically Related items and play Track/Album radio, thus fully supporting the data migration path across system since (if) the playback does not depend on x86-specific libraries?
Tagging @elan for awareness if possible, as he was also involved in answering another Sonic Analysis thread, so he might be more informed about this area and can certainly clarify any parts we’re missing here.
Above all, thank you @TeknoJunky and everyone who’s been involved in supporting the community in this rollout, and the entire team for putting together this awesome feature. I am just trying to see if there is an option to relieve the possible code-constraints on ARM for this feature to support this.
Have an awesome weekend.
EDIT: And I will say, the mixes I’m getting have been so far stellar. It’s great to be able to explore my library this way, and listen to songs that hadn’t surfaced often so far but that make a lot of sense in the mixes. Thank you!