Closed certuna closed 8 months ago
Working on this now in this fork: https://github.com/certuna/navidrome . There's a couple of milestones towards full support, but each milestone reached = release.
Server-side:
TIT2
(Song Title),TIT1
(Work), TIT3
(Song Subtitle), MVIN
(Movement) and MVNM
(Movement Name)title
(already exists), song_subtitle
, work
, movement_number
and movement_name
(new columns) in the media_file
table of the databasesong
endpoint of the Navidrome APInd_sort_title
in the database which cascades movement
, sort_title
and title
(+leading article removal) & add it to the API as sortTitle
Web UI:
work
+ movement_number
+ movement_name
, = Apple style) or "Cheerleader · Felix Jaehn Remix" (work
+ title
+ song_subtitle
, = Spotify style, also how the id3 standard prescribes it)title
by movement_number
+ movement_name
("III. Le Vent Dans La Plaine")title
by work
+ movement_number
+ movement_name
("Preludes, Book I: III. Le Vent Dans La Plaine"title
by movement_number
+ movement_name
("III. Le Vent Dans La Plaine")work
and append subtitle
to title
("Cheerleader · Felix Jaehn Remix", like Spotify) in all list viewssortTitle
instead of title
in the song grid (Songs & Playlist views)(note: Subsonic has only one title field)
display_title
which is a) work + movement_number + movement_name
or b) work + title + song_subtitle
if a) doesn't existdisplay_title
to the Subsonic API instead of title
(note: as Navidrome does not read composer, we cannot do a work-by-composer navigation, only work-by-artist) Server-side:
work
table with columns id
, name
(name of the work)work-artist
table with work_id
and artist_id
(many-to-many: "an artist can have multiple works, a work can have multiple artists")work-album
table with work_id
and album_id
(many-to-many: "an album can contain multiple works, a work can be on multiple albums")work_id
to the mediafile
table (one to many: "a mediafile is part of one work, a work can contain multiple mediafiles")work
endpoint in the Navidrome APIWeb UI:
(note: this step is contingent on implementation of the artist credits/"roles" feature: https://github.com/navidrome/navidrome/issues/211 ) Server-side:
work-artist
table to become work-composer
Web UI:
haven't given this too much thought yet - possibly using pseudo-folders?
mbz_work_id
in the mediafile
and work
tablesThis issue has been automatically marked as stale because it has not had recent activity. The resources of the Navidrome team are limited, and so we are asking for your help.
If this is a bug and you can still reproduce this error on the master
branch, please reply with all of the information you have about it in order to keep the issue open.
If this is a feature request, and you feel that it is still relevant and valuable, please tell us why.
This issue will automatically be closed in the near future if no further activity occurs. Thank you for all your contributions.
Still relevant and valueble, on my To Do list
This issue has been automatically marked as stale because it has not had recent activity. The resources of the Navidrome team are limited, and so we are asking for your help.
If this is a bug and you can still reproduce this error on the master
branch, please reply with all of the information you have about it in order to keep the issue open.
If this is a feature request, and you feel that it is still relevant and valuable, please tell us why.
This issue will automatically be closed in the near future if no further activity occurs. Thank you for all your contributions.
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Navidrome should import the Work and Movement tags. Would bring it closer to feature parity with the Apple iTunes/Music ecosystem, and all other music libaries that support these tags. Will make classical music fans happy :) There is:
Work (string): id3v2:
TIT1
mp4:©wrk
Vorbis:WORK
Movement Name (string): id3v2:MVNM
mp4:©mvn
Vorbis:MOVEMENTNAME
Movement Number: id3v2:MVIN
mp4:©mvi
Vorbis:MOVEMENT
Movement Total: id3v2:MVIN
mp4:©mvc
Vorbis:MOVEMENTTOTAL
(Movement Number/Total work the same as Track Number/Total)
This means a couple new fields in the database. Possibly also a good thing to add a "Show Work/Movement instead of Track Title" boolean field to the database so the client-side code doesn't have to figure it all out.
Work/Movement should be used when: