Nested Crates, Custom Tags, Aoide

I have been using nested crates for almost a year, and I like this functionality quite a bit. I also like that you can save searches using the library on that branch.

However, I’m also digging Mixxx 2.3, and I see that nested crates are not going to be integrated moving forward. Instead, we have the very interesting Aoide library, And custom tags which is based on Aoide.

It looks like Aoide support is suspended in favor of custom tags, and this will be introduced in 2.3. It also looks, from the changelog, that stable releases come out about 2 months after beta releases. If this is the case, I will just wait a couple weeks and download 2.3 with the custom tags.

Otherwise, I’m curious to know if it’s worth compiling the custom tags or Aoide branch now, and if so, which one. I saw hints on github that Aoide may be fully integrated into Mixxx in the future, and it actually looks more interesting from its screenshot.

After reading through the Zulip thread, I’m getting the idea that custom tags is a way to introduce Aiode-like functionality into Mixxx in an integrated way, but it also looks like the Aoide branch would allow me to take full advantage of that organizational system. Once that’s integrated into Mixxx, this would become the 3.0 release. But if I wanted to start organizing my music this way now, I would be better off using the Aoide branch because it just attaches an external library like Mixxx does now with Serato.

Then, when that library replaces the Mixxx library entirely, my collection would still remain intact. Is this right?

The aoide data model is still experimental and no migration is provided for existing data until version 1.0 has been released. Be prepared to throw away and repopulate the external database.

The first step towards support of custom tags can be found #2656, solely integrated in Mixxx. The custom tags are stored both in the Mixxx database as well as in a custom file tag as metadata of your audio files, i.e. you could rebuild your Mixxx database while still preserving those custom tags! The data model behind this feature is already considered complete and we hopefully don’t need to modify it again. This branch is sufficient if you want to experiment on how to tag your files. Basic search capabilities for tags in Mixxx are included by using the new key “label:”.

The aoide branch is only required if you want to compose sophisticated queries based on track metadata, including custom tags. These queries are executed by a separate sidecar service on the external database. You can send/export selected tracks from Mixxx to this external database on demand, including all your custom tags. This is needed to initially populate the external database. All subsequent changes of tracks in Mixxx are synchronized.

OK, I followed the PR you linked and went to the custom_tags branch. I cloned and compiled it with no problem, but when I start it up, the custom tags aren’t there in the context menu.

The PR says there will be a folder in the mixxx settings folder called preferences, and inside this is a file called custom_tags_example.json. However, launching this fork doesn’t create this folder or file either.

I tried moving .mixxx so it would recreate this folder, but this didn’t fix the problem. If I click ‘about’ in the menu, it says 2.4.0-alpha-pre (build master r7448). The PR and the Mixxx wiki say you will need to use cmake starting with 2.4, and the PR says it requires cmake, but then it also lists in the todo that it still uses scons. I was able to compile fine with scons.

Anyway, how do I get these custom tags???

Nevermind, I compiled again with cmake, and now I have custom tags. The branch will compile either way, but with scons the custom tags won’t be present.

I should mention to others interested in this that the functionality is, as the PR suggests, very rudimentary. It looks like I can create custom tags and taxonomies and that’s it. You can’t actually browse those in the sidebar, or add them as columns, or anything. So the feature is as-yet unusable in any practical way. Looking forward to the feature, though.

SCons is not supported, only CMake.

Adding custom tags as columns will never be possible, because the track table view is a simple 1:1 database mapping that is not suitable for this purpose.

Better UI support for filtering is a separate task.

Well, columns are no big deal as long as you can browse your tags from the sidebar, which I assume is in the works.

Unfortunately not. I neither have a concrete UI/UX concept nor the time to implement advanced browsing capabilities based on custom tags.

Well in this case, the Aoide branch looks like it’s potentially more useful than custom tags, provided that you can organize your music library with Aoide outside of Mixxx. The PR says it’s read-only, and Aoide appears to only have the Mixx integration, so I’m not sure how one uses it the way it shows in the screenshot.

In general, music management is sorely lacking in almost every music manager, but Aoide seems to solve some major limitations. My favorite music manager is gMusicBrowser, which allows for custom taxonomies (facets) and tags, and you can nest them in a hierarchy. Mixxx’s nested crates branch basically works the same way because the top crate can be your facet and the subcrate can be the tag.

Too bad that branch was closed. I have been using it for a year and it seems perfectly stable to me. The ability to search the library and save the search as a filter is also a nice feature.