Post Reply 
Serento: The audiophile UPnP controller app for iOS/macOS
03-09-2026, 09:53
Post: #35
RE: Serento: The audiophile UPnP controller app for iOS/macOS
(02-09-2026 22:51)serento Wrote:  What Serento does during a sync

When a server advertises Search with a upnp:class predicate, Serento takes a fast path instead of walking the tree album by album.

I haven't been able to test this with Serento because I'm on Android, but you may have issues when building albums from tracks because of the way tracks can be grouped (represented as albums within albums, typically for classical works).

Using the album Foxtrot by Genesis as an example, the final 7 tracks form part of the broader work Supper's Ready, so all are tagged with GROUP='Supper's Ready', which when displayed on a control point looks like:
   
Your search would return (only a partial listing included):
Code:
<item id="0$:items$*i5" parentID="0$:items" restricted="1">
    <dc:title>Watcher Of The Skies</dc:title>
    <upnp:genre>Pop/Rock</upnp:genre>
    <dc:date>1985-01-01</dc:date>
    <upnp:album>Foxtrot</upnp:album>
    <upnp:artist>Genesis</upnp:artist>
    <dc:creator>Genesis</dc:creator>
    <upnp:artist role="AlbumArtist">Genesis</upnp:artist>
    <upnp:originalTrackNumber>1</upnp:originalTrackNumber>
    <upnp:class>object.item.audioItem.musicTrack</upnp:class>
</item>
<item id="0$:items$*i4" parentID="0$:items" restricted="1">
    <dc:title>Time Table</dc:title>
    <upnp:genre>Pop/Rock</upnp:genre>
    <dc:date>1985-01-01</dc:date>
    <upnp:album>Foxtrot</upnp:album>
    <upnp:artist>Genesis</upnp:artist>
    <dc:creator>Genesis</dc:creator>
    <upnp:artist role="AlbumArtist">Genesis</upnp:artist>
    <upnp:originalTrackNumber>2</upnp:originalTrackNumber>
    <upnp:class>object.item.audioItem.musicTrack</upnp:class>
</item>
...
<item id="0$:items$*i3$3-26" parentID="0$:items$*i3" restricted="1">
    <dc:title>Apocalypse In 9/8</dc:title>
    <upnp:genre>Pop/Rock</upnp:genre>
    <dc:date>1985-01-01</dc:date>
    <upnp:album>Supper&apos;s Ready</upnp:album>
    <upnp:artist>Genesis</upnp:artist>
    <dc:creator>Genesis</dc:creator>
    <upnp:artist role="AlbumArtist">Genesis</upnp:artist>
    <upnp:originalTrackNumber>6</upnp:originalTrackNumber>
    <upnp:class>object.item.audioItem.musicTrack</upnp:class>
</item>
<item id="0$:items$*i3$3-27" parentID="0$:items$*i3" restricted="1">
    <dc:title>As Sure As Eggs Is Eggs (Aching Men&apos;s Feet)</dc:title>
    <upnp:genre>Pop/Rock</upnp:genre>
    <dc:date>1985-01-01</dc:date>
    <upnp:album>Supper&apos;s Ready</upnp:album>
    <upnp:artist>Genesis</upnp:artist>
    <dc:creator>Genesis</dc:creator>
    <upnp:artist role="AlbumArtist">Genesis</upnp:artist>
    <upnp:originalTrackNumber>7</upnp:originalTrackNumber>
    <upnp:class>object.item.audioItem.musicTrack</upnp:class>
</item>
...
As you can see tracks 6 and 7 appear to belong to a different album. Maybe you could use the parentID (not = "0$:items") to trigger an album by album approach?

During a previous discussion @simoncn mentioned that it's possible for a control point to request that multi-valued items be delivered individually (artist, genre e.t.c.) so it might be worth chasing up with him on that. What I don't know is if that would apply to users using the .displayFormat setting to display collaborations e.g.
   

Here's a truncated version of the Foxtrot album for testing.

.zip  Genesis.zip (Size: 24.42 KB / Downloads: 1)
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Serento: The audiophile UPnP controller app for iOS/macOS - simbun - 03-09-2026 09:53

Forum Jump:


User(s) browsing this thread: 2 Guest(s)