# Compilation handling

**URL:** <http://support.symfonium.app/t/compilation-handling/951>\
**Category:** Support\
**Tags:** fixed\
**Created:** [November 19, 2022, 10:56pm UTC](http://support.symfonium.app/t/compilation-handling/951 "2022-11-19T22:56:38Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![RadioZab](http://support.symfonium.app/letter_avatar_proxy/v4/letter/r/4bbf92/32.png) [@RadioZab](http://support.symfonium.app/u/RadioZab)\
**Post date:** [November 19, 2022, 10:56pm UTC](http://support.symfonium.app/t/compilation-handling/951/1 "2022-11-19T22:56:38Z")

</div>

## Issue description:

Hi, first of all i want thank you for this app which is on Android the best Subsonic client you can have right now.  
I’ve a little problem with compilations: i’m using Symfonium with Astiga as Subsonic provider and i’ve some problems on viewing a whole compilation. I know that Subsonic can’t support album artist tag but on Symfonium i can’t view the whole compilation.

I saw the Astiga API documentation but i can’t figure out how Subsonic manages compilation.

Below i’ve attached an example viewing the compilation from the folder view and then as an album.

## Screenshots:

 ![imgonline-com-ua-twotoone-tgIMJjOreUObh](http://support.symfonium.app/uploads/default/original/1X/cfb98f4c6842005511d35ea35777324db9166fac.jpeg)

---

<div class="post-metadata">

**Author:** ![Tolriq](http://support.symfonium.app/user_avatar/support.symfonium.app/tolriq/32/726_2.png) [@Tolriq](http://support.symfonium.app/u/Tolriq)\
**Post date:** [November 20, 2022, 8:13am UTC](http://support.symfonium.app/t/compilation-handling/951/2 "2022-11-20T08:13:15Z")

</div>

Please provide logs [[Wiki] How to gather logs and open an issue - #2](https://support.symfonium.app/t/wiki-how-to-gather-logs/18/2) containing a full sync so I can see the data that that server returns (Never tested that one)

Or send me a test account in private so I can repro and see what I can do.

---

<div class="post-metadata">

**Author:** ![RadioZab](http://support.symfonium.app/letter_avatar_proxy/v4/letter/r/4bbf92/32.png) [@RadioZab](http://support.symfonium.app/u/RadioZab)\
**Post date:** [November 20, 2022, 9:38am UTC](http://support.symfonium.app/t/compilation-handling/951/3 "2022-11-20T09:38:35Z")

</div>

Here’s the log with a full Sync inside, thank you Tolriq  
[debug-20221120\_103709.zip](http://support.symfonium.app/uploads/short-url/A8y9AGvs7aHsrPKU6SiKc9KfT4O.zip) (6,4 MB)

---

<div class="post-metadata">

**Author:** ![Tolriq](http://support.symfonium.app/user_avatar/support.symfonium.app/tolriq/32/726_2.png) [@Tolriq](http://support.symfonium.app/u/Tolriq)\
**Post date:** [November 20, 2022, 10:11am UTC](http://support.symfonium.app/t/compilation-handling/951/4 "2022-11-20T10:11:45Z")

</div>

Ok so your server returns strange data here ☹

When asking for the albums it returns only 1 result for `Are we too Late for the Trend?`with id `22488678`

```auto
        {
          "id": "22488678",
          "parent": "2045502",
          "title": "Are we too Late for the Trend?",
          "album": "Are we too Late for the Trend?",
          "name": "Are we too Late for the Trend?",
          "artist": "Bangkok Impact",
          "artistId": "2045502",
          "isDir": true,
          "duration": 1563,
          "songCount": 5,
          "coverArt": "22485070",
          "created": "2022-11-20T08:43:21",
          "starred": "2022-11-20T08:43:21",
          "year": 2003
        },

```

When asking for the songs of that album it returns:

```auto
          "id": "22488913",
          "parent": "22488678",
          "title": "Pop",
          "artist": "Bangkok Impact",
          "artistId": "2045502",
          "album": "Are we too Late for the Trend?",
          "albumId": "22488678",

```

* * *

```auto
          "id": "22485085",
          "parent": "22485069",
          "title": "Tsjupa tsjupa",
          "artist": "Mr. Clavio",
          "artistId": "22389327",
          "album": "Are we too Late for the Trend?",
          "albumId": "22485069",

```

* * *

```auto
          "id": "22488915",
          "parent": "22488914",
          "title": "No one Puts Baby in the Corner",
          "artist": "Red White Rose",
          "artistId": "22488916",
          "album": "Are we too Late for the Trend?",
          "albumId": "22488914",

```

See that the albumId is different for every songs, preventing the proper allocation of the songs to the album.

Since you have configured the app to use the Compatibility mode (probably no choice on that server) then I can mostly workaround and ignore the data and use the one I used to query, but there’s something wrong with that server that might worth reporting to them. (Maybe they can also fix the need to use compatibility mode)

TL;DR: Your server returns invalid data but as long as you use Compatibility mode I’ll be able to workaround it.

---

<div class="post-metadata">

**Author:** ![RadioZab](http://support.symfonium.app/letter_avatar_proxy/v4/letter/r/4bbf92/32.png) [@RadioZab](http://support.symfonium.app/u/RadioZab)\
**Post date:** [November 20, 2022, 10:44am UTC](http://support.symfonium.app/t/compilation-handling/951/5 "2022-11-20T10:44:54Z")

</div>

thanks Tolriq, yep that’s a very strange behaviour, the strange thing is also that Astiga API provides also a search3 endpoint but for using Astiga with Symfonium i need the compatibility mode

---

<div class="post-metadata">

**Author:** ![Tolriq](http://support.symfonium.app/user_avatar/support.symfonium.app/tolriq/32/726_2.png) [@Tolriq](http://support.symfonium.app/u/Tolriq)\
**Post date:** [November 20, 2022, 10:47am UTC](http://support.symfonium.app/t/compilation-handling/951/6 "2022-11-20T10:47:34Z")

</div>

Yes a few providers does not support empty queries for search3 ☹ I’ve got a few ones to fix their implementation, but some just ignore the reports (like Airsonic) and some I’m not aware but maybe you can report to them since it seems it’s a paid service I suppose they offer some kind of support.

But in this case without the compatibility mode I would not be able to properly fix the invalid data as just checking the album name would not work, there’s plenty of possible case for duplicated album name in a collection.

---

<div class="post-metadata">

**Author:** ![RadioZab](http://support.symfonium.app/letter_avatar_proxy/v4/letter/r/4bbf92/32.png) [@RadioZab](http://support.symfonium.app/u/RadioZab)\
**Post date:** [November 20, 2022, 10:50am UTC](http://support.symfonium.app/t/compilation-handling/951/7 "2022-11-20T10:50:08Z")

</div>

uhm maybe it’s worth trying to report them the thing. I saw they discovered also Symfonium at the end of june

> <https://twitter.com/astigamusic/status/1542449597024505858>

Astiga has also a reddit and a direct community forum for support [https://community.asti.ga/](https://community.asti.ga/)

Update: sorry i didn’t know that Yatse was still you 😅

---

<div class="post-metadata">

**Author:** ![Tolriq](http://support.symfonium.app/user_avatar/support.symfonium.app/tolriq/32/726_2.png) [@Tolriq](http://support.symfonium.app/u/Tolriq)\
**Post date:** [November 20, 2022, 11:21am UTC](http://support.symfonium.app/t/compilation-handling/951/8 "2022-11-20T11:21:32Z")

</div>

I’m not a user of that service so the report will mostly need to be from an user of their service and I’ll be able to jump in if they are interested in fixing.

---

<div class="post-metadata">

**Author:** ![RadioZab](http://support.symfonium.app/letter_avatar_proxy/v4/letter/r/4bbf92/32.png) [@RadioZab](http://support.symfonium.app/u/RadioZab)\
**Post date:** [November 20, 2022, 11:43am UTC](http://support.symfonium.app/t/compilation-handling/951/9 "2022-11-20T11:43:20Z")

</div>

ok post made and thanks again for all the help 🙂 👍[Symfonium and Astiga — Astiga Community](https://community.asti.ga/discussion/543/symfonium-and-astiga#latest)

---

<div class="post-metadata">

**Author:** ![RadioZab](http://support.symfonium.app/letter_avatar_proxy/v4/letter/r/4bbf92/32.png) [@RadioZab](http://support.symfonium.app/u/RadioZab)\
**Post date:** [November 20, 2022, 11:50am UTC](http://support.symfonium.app/t/compilation-handling/951/10 "2022-11-20T11:50:50Z")

</div>

Off-topic: i’m using Symfonium also on WSA and is working very well 👍

---

<div class="post-metadata">

**Author:** ![gravelld](http://support.symfonium.app/user_avatar/support.symfonium.app/gravelld/32/793_2.png) [@gravelld](http://support.symfonium.app/u/gravelld)\
**Post date:** [November 21, 2022, 10:38am UTC](http://support.symfonium.app/t/compilation-handling/951/11 "2022-11-21T10:38:59Z")

</div>

Hi, Dan here, operator of the Astiga service.

Thanks for highlighting this issue.

> When asking for the songs of that album it returns […]

Do you mean via [getSong](http://www.subsonic.org/pages/api.jsp#getSong) ?

I think I can see that in the case of albums with different track artists we are returning different album IDs for each track. I think this is because we are not allowing the album artist to “override” the track artist and as a result we are seeing these as separate albums when viewed at the song level.

@Tolriq can you describe a little more what you mean by:

> Yes a few providers does not support empty queries for search3

You’re correct we don’t support results for empty queries in any of the search methods. In your opinion, what should be the results - should it return everything? This isn’t specified at [Subsonic](http://www.subsonic.org/pages/api.jsp)

---

<div class="post-metadata">

**Author:** ![Tolriq](http://support.symfonium.app/user_avatar/support.symfonium.app/tolriq/32/726_2.png) [@Tolriq](http://support.symfonium.app/u/Tolriq)\
**Post date:** [November 21, 2022, 10:53am UTC](http://support.symfonium.app/t/compilation-handling/951/12 "2022-11-21T10:53:11Z")

</div>

@gravelld

I meant via `getAlbum` it will returns songs with albumId that does not match the requested albumId.

But at the same time `getAlbumList2` only return 1 album.

So in the end there’s no real proper way to match things. Either they are treated as different albums and the albums should be returned via `getAlbumList2` or they are an unique album and then the `albumId` should be consistent.  
In this case this can be workarounded since I know the proper `albumId` I want. But if you update the search3 endpoint this won’t be the case anymore.

* * *

For `search3` yes it should return everything, quite a few provider support that, or have made the changes to support that. (Ensure a default sort internally to avoid non deterministic paged data on most SGDB)  
Either via no query parameter or with query=“” version. I can adapt if you return your server name in the `serverVersion` of `subsonic-response` like many do too to help adapt the calls. (By default I send query=“”)

This is not specified at the API level but it’s not said it should not do that. Many do that, and this is the only way to properly get all the data in an efficient way. Else to get all the songs for an offline first app it requires getting all the albums then asking for all the songs of each albums, this triggers a tons of slow queries and so a very slow synchronisation.

---

<div class="post-metadata">

**Author:** ![gravelld](http://support.symfonium.app/user_avatar/support.symfonium.app/gravelld/32/793_2.png) [@gravelld](http://support.symfonium.app/u/gravelld)\
**Post date:** [November 21, 2022, 4:57pm UTC](http://support.symfonium.app/t/compilation-handling/951/13 "2022-11-21T16:57:28Z")

</div>

Ok, I understand. I was going to ask what the actual use case was for empty `search3` queries.

Is `serverVersion` documented anywhere? There appears to be a mix of approaches. Most just have a version string, and then a “type” for the server name.

---

<div class="post-metadata">

**Author:** ![Tolriq](http://support.symfonium.app/user_avatar/support.symfonium.app/tolriq/32/726_2.png) [@Tolriq](http://support.symfonium.app/u/Tolriq)\
**Post date:** [November 21, 2022, 5:20pm UTC](http://support.symfonium.app/t/compilation-handling/951/14 "2022-11-21T17:20:14Z")

</div>

Don’t think it’s documented so yes each do something different ☹

I would say serverVersion with name/1.x.y like http user agent makes the most sense.

Edit: But as long as there’s the name in one of the field I can adapt the parsing.

---

<div class="post-metadata">

**Author:** ![gravelld](http://support.symfonium.app/user_avatar/support.symfonium.app/gravelld/32/793_2.png) [@gravelld](http://support.symfonium.app/u/gravelld)\
**Post date:** [November 22, 2022, 9:43am UTC](http://support.symfonium.app/t/compilation-handling/951/15 "2022-11-22T09:43:59Z")

</div>

Yes, I was thinking the same.

Thanks for this, we’ll look to implement it soon.

---

<div class="post-metadata">

**Author:** ![Tolriq](http://support.symfonium.app/user_avatar/support.symfonium.app/tolriq/32/726_2.png) [@Tolriq](http://support.symfonium.app/u/Tolriq)\
**Post date:** [November 22, 2022, 10:33am UTC](http://support.symfonium.app/t/compilation-handling/951/16 "2022-11-22T10:33:11Z")

</div>

If need a Symfonium license or infinite trial to do your tests just PM me;

---

<div class="post-metadata">

**Author:** ![gravelld](http://support.symfonium.app/user_avatar/support.symfonium.app/gravelld/32/793_2.png) [@gravelld](http://support.symfonium.app/u/gravelld)\
**Post date:** [November 22, 2022, 3:02pm UTC](http://support.symfonium.app/t/compilation-handling/951/17 "2022-11-22T15:02:20Z")

</div>

Thanks! And likewise.

---

<div class="post-metadata">

**Author:** ![RadioZab](http://support.symfonium.app/letter_avatar_proxy/v4/letter/r/4bbf92/32.png) [@RadioZab](http://support.symfonium.app/u/RadioZab)\
**Post date:** [December 10, 2022, 6:44pm UTC](http://support.symfonium.app/t/compilation-handling/951/18 "2022-12-10T18:44:38Z")

</div>

Hi, just for letting you know that i’ve installed the new version of Symfonium and the workaround is working greatly, thank you very much 👍

---

<div class="post-metadata">

**Author:** ![gravelld](http://support.symfonium.app/user_avatar/support.symfonium.app/gravelld/32/793_2.png) [@gravelld](http://support.symfonium.app/u/gravelld)\
**Post date:** [January 13, 2023, 2:09pm UTC](http://support.symfonium.app/t/compilation-handling/951/19 "2023-01-13T14:09:34Z")

</div>

We’ve shipped the serverVersion and search3 changes now, although I haven’t actually tested this with Symfonium yet…

> **[New release thread](https://community.asti.ga/discussion/comment/2284/#Comment_2284)**
>
> This thread contains summaries of each new build and upload we make to the Astiga service.

---

<div class="post-metadata">

**Author:** ![Tolriq](http://support.symfonium.app/user_avatar/support.symfonium.app/tolriq/32/726_2.png) [@Tolriq](http://support.symfonium.app/u/Tolriq)\
**Post date:** [January 13, 2023, 2:21pm UTC](http://support.symfonium.app/t/compilation-handling/951/20 "2023-01-13T14:21:43Z")

</div>

Nice. If you have a test server with some data send me a PM and I’ll do the tests if you want.

[Next page](http://support.symfonium.app/t/compilation-handling/951.md?page=2)
