• 1
  • 2
  • 3(current)
  • 4
  • 5
  • 24
Managing music albums Box-Sets properly with KODI library feature
#31
Yeah, I meant add the subtitles, rather than the MBID's.

Anyway, I think internally that Kodi uses idAlbum to link all the tracks of an album.
sql:
mysql> select strTitle,iTrack from song where idAlbum = xxxx;

~~~~ EDIT ~~~~

So, in my head (which may not be the best place to figure this out !!) I think we need another table in the db (set).  In 'Album' we need another field, 'idSet'. Song would also need another field, 'strDiscSubtitle'.  We also need a new table, 'set'.

If Album.idSet is NUL, nothing changes.  If however, Album.idSet is not NUL, then we need to look up all the disc subtitles in the set table that have a corresponding idSet. Stepping through the GUI, this would show you the Album( which is actually a box-set), then the individual discs within that set (named accordingly with the Disc Subtitle).  We can then look up the tracks for each individual disc using the idAlbum (which is the whole entity) and strDiscSubtitle, which is specific to each individual disc within the entity.

The set table should include art so that individual discs within the set can have their own artwork (eg, discart, cover, etc).

A query like
sql:
mysql> select strTitle,iTrack from song where idAlbum = xxxx AND strDiscSubtitle = 'some title';
should show all the tracks for that box set on a specifically titled disc.

With the little baby steps I have taken so far, I have a version of Kodi that creates the required db.  Next step is to add to the tag reader to populate the required fields....... I think !!
Learning Linux the hard way !!
Reply
#32
If I were a coder, I would start with just adding a proper solution for DISCSUBTITLE to the KODI.

And I would no way stuck to Musicbrainz as the only source for proper tagging. Like I wouldn't stuck to any other 3rd party library.

Making KODI library compatible with MB is great, but MB shouldn't be the only source for proper tags.
Reply
#33
(2019-08-09, 21:19)garfield Wrote: And I would no way stuck to Musicbrainz as the only source for proper tagging. Like I wouldn't stuck to any other 3rd party library.

Making KODI library compatible with MB is great, but MB shouldn't be the only source for proper tags.

It's not the only source, but they are by far the biggest database out there, and Picard, the dedicated app for tagging music is (importantly) open source. This for a lot of people is a factor.

Ultimately Kodi have to have some sort of standard for music tagging that they follow, and with MB having the biggest library, long established criteria for tagging, its undoubtedly the best one to use as a yardstick. you can tag with any software you like, and you can use whatever tags you like, but if you use Mb and in turn Picard, you should get a better experience in Kodi.
Reply
#34
(2019-08-09, 21:19)garfield Wrote: If I were a coder, I would start with just adding a proper solution for DISCSUBTITLE to the KODI.

And I would no way stuck to Musicbrainz as the only source for proper tagging. Like I wouldn't stuck to any other 3rd party library.

Making KODI library compatible with MB is great, but MB shouldn't be the only source for proper tags.
I think there are two separate concepts:

1.  The music database.  The Musicbrainz database schema may not be perfect, but it's well-documented and I think it adds real value.

2.  Tagging.  Tagging is just a way of providing a subset of the database as metadata to files.

The concept of "box set" is interesting as it relates to previous releases but not always is a consistent way.  Sorry to bring up MB again, but MB has the concept of "work" which is really the output of a composer or songwriter, and "recording" which is a specific rendition of a "work".  A "box set" is typically a collection of recordings that were released elsewhere, but with more structure than a simple "best of".  Elucidating that structure is not easy.\

Mostly what I've seen of "box set" is either a collection of releases (singles or albums) or "complete works" of classical music where the physical media in the set do not correlate to specific releases.

scott s.
.
Reply
#35
(2019-08-10, 01:51)scott967 Wrote:
(2019-08-09, 21:19)garfield Wrote: If I were a coder, I would start with just adding a proper solution for DISCSUBTITLE to the KODI.

And I would no way stuck to Musicbrainz as the only source for proper tagging. Like I wouldn't stuck to any other 3rd party library.

Making KODI library compatible with MB is great, but MB shouldn't be the only source for proper tags.
A "box set" is typically a collection of recordings that were released elsewhere, but with more structure than a simple "best of".  Elucidating that structure is not easy.

Mostly what I've seen of "box set" is either a collection of releases (singles or albums) or "complete works" of classical music where the physical media in the set do not correlate to specific releases.

scott s.

I would say historically, yes, a Box set traditionally was all of the artists LP releases, put in a nice box. And that was about the extent of it.

But, I would say now, and this is probably the case since CD's came along, the vast majority of "box sets" fall into one of three categories

1) Anthologies - things like Biograph (Bob Dylan), Between Thought And Expression (Lou Reed). Basically multi disc greatest hits packages.

2) Album remasters with bonus material - For instance the recent White Album remasters (along with the upcoming Abbey Road remasters). The original albums remastered along with multiple discs of outtakes and live recordings

3) Completely original multi discs releases, like for instance the Rolling Thunder releases recently (Bob Dylan)



I own probably 50 "box sets" and only one of them is a collection of previous releases (Neutral Milk Hotel Box Set)

Of course, very few things really come in "boxes" anymore, they can cram 6 cd's into a digipack Big Grin
Reply
#36
Some small progress made.  Tagreader can read the disc subtitle and add it into the song table.

php:
idSongidAlbumidPathstrArtistDispstrArtistSortstrGenresstrTitleiTrackiDurationiYearstrDiscSubtitlestrFileNamestrMusicBrainzTrackIDiTimesPlayediStartOffsetiEndOffsetlastplayedratingvotesuserratingcommentmoodstrReplayGaindateAdded

1 14 U2 U2 Rock Where the Streets Have No Name 655373372017 The Joshua Tree 1-01 Where the Streets Have No Name.flac176ce892-5deb-457b-b3a2-d947c45ac7120000002019-08-01 19:05:53
2 14 U2 U2 Rock I Still Haven’t Found What I’m Looking For 655382772017 The Joshua Tree 1-02 I Still Haven't Found What I'm Looking For.flac94793531-2679-4ea7-a273-945fdf64c06f0000002019-08-01 19:05:53
3 14 U2 U2 Rock With or Without You 655392952017 The Joshua Tree 1-03 With or Without You.flac6b9a509f-6907-4a6e-9345-2f12da09ba4b0000002019-08-01 19:05:53
4 14 U2 U2 Rock Bullet the Blue Sky 655402712017 The Joshua Tree 1-04 Bullet the Blue Sky.flacde73f389-69c3-4d3f-ab0b-30b1e4748e030000002019-08-01 19:05:53
5 14 U2 U2 Rock Running to Stand Still 655412572017 The Joshua Tree 1-05 Running to Stand Still.flac88ad5e5e-521e-499f-9201-4114d7feb6c40000002019-08-01 19:05:53
6 14 U2 U2 Rock Red Hill Mining Town 655422922017 The Joshua Tree 1-06 Red Hill Mining Town.flac3f7ee760-5ba7-462d-b523-f0e0026df4a60000002019-08-01 19:05:53
7 14 U2 U2 Rock In God’s Country 655431762017 The Joshua Tree 1-07 In God's Country.flac4e148771-1a7b-4d36-90d4-5c1c8dac4f170000002019-08-01 19:05:53
8 14 U2 U2 Rock Trip Through Your Wires 655442112017 The Joshua Tree 1-08 Trip Through Your Wires.flac69e71dd2-1c51-48d0-a7cc-8f952c49121a0000002019-08-01 19:05:53
9 14 U2 U2 Rock One Tree Hill 655453222017 The Joshua Tree 1-09 One Tree Hill.flac2c81e785-299f-4e87-9ff1-882cffcf748e0000002019-08-01 19:05:53
10 14 U2 U2 Rock Exit 655462532017 The Joshua Tree 1-10 Exit.flac8d8d1f8e-bdff-4d01-8c9e-9daeedc229820000002019-08-01 19:05:53
11 14 U2 U2 Rock Mothers of the Disappeared 655473142017 The Joshua Tree 1-11 Mothers of the Disappeared.flac09c7be61-aad9-4992-8a1b-3b192b6682d20000002019-08-01 19:05:53
12 15 U2 U2 Rock Where the Streets Have No Name 1310733902017 The Joshua Tree Live at Madison Square Garden 19872-01 Where the Streets Have No Name.flac7a348d30-0df9-4e04-8f2c-d0feaa535f0d0000002019-08-01 19:05:53 
13 15 U2 U2 Rock I Will Follow 1310742382017 The Joshua Tree Live at Madison Square Garden 19872-02 I Will Follow.flacda976c60-50cf-43ae-a683-2783e4d1d1f20000002019-08-01 19:05:53
14 15 U2 U2 Rock Trip Through Your Wires 1310752252017 The Joshua Tree Live at Madison Square Garden 19872-03 Trip Through Your Wires.flacfd3ac04b-09d1-48e7-9a31-caff5140127f0000002019-08-01 19:05:53
15 15 U2 U2 Rock I Still Haven’t Found What I’m Looking For 1310763512017 The Joshua Tree Live at Madison Square Garden 19872-04 I Still Haven't Found What I'm Looking For.flaccdc397e7-4166-4534-a23d-8a0f a6dc10d3000 0002019-08-01 19:05:54
16 15 U2 U2 Rock MLK 1310771222017 The Joshua Tree Live at Madison Square Garden 19872-05 MLK.flac5bbe231f-cb52-4a14-b634-92919c487e7e0000002019-08-01 19:05:54
17 15 U2 U2 Rock Bullet the Blue Sky 1310783472017 The Joshua Tree Live at Madison Square Garden 19872-06 Bullet the Blue Sky.flacae696b16-0646-4b18-9a1a-3bfe8576b4740000002019-08-01 19:05:54
18 15 U2 U2 Rock Running to Stand Still 1310792852017 The Joshua Tree Live at Madison Square Garden 19872-07 Running to Stand Still.flac362b8a76-c4ed-47b1-b36d-917d8df1b62b0000002019-08-01 19:05:54
19 15 U2 U2 Rock In God’s Country 1310801692017 The Joshua Tree Live at Madison Square Garden 19872-08 In God's Country.flac6a2d614a-dbb8-4358-9d68-750a9549fedf0000002019-08-01 19:05:54
20 15 U2 U2 Rock Sunday Bloody Sunday 1310812532017 The Joshua Tree Live at Madison Square Garden 19872-09 Sunday Bloody Sunday.flaccfdd6ed8-b3e6-4850-a7f7-157e98279d700000002019-08-01 19:05:54
21 15 U2 U2 Rock Exit 1310822792017 The Joshua Tree Live at Madison Square Garden 19872-10 Exit.flacdc92e558-2fbd-462a-987a-49bb6dfa09fd0000002019-08-01 19:05:54
22 15 U2 U2 Rock

Currently, if I know the disc subtitle I can do something like
sql:
SELECT * from song WHERE strDiscSubtitle = "The Joshua Tree Live at Madison Square Garden 1987";

lists all the songs on the second disc.

Next step is to add the subtitle ONCE to the set table, and link it back to the album so that we can find all the subtitles for a given album (if any exist).  I think....

Interestingly, the albumid is different for the second disc compared to the first. I don't think I've altered anything there, but I guess I should check because I'm pretty sure that in my 'proper' library, all those songs have the same albumid.....
Learning Linux the hard way !!
Reply
#37
(2019-08-10, 19:30)black_eagle Wrote: Interestingly, the albumid is different for the second disc compared to the first. I don't think I've altered anything there, but I guess I should check because I'm pretty sure that in my 'proper' library, all those songs have the same albumid.....

thats something going wrong your end, just checked here and its all the same

Image
Reply
#38
Yeah I know it was something wrong at my end.  I dunno what it was as I've not been able to reproduce it again.  Anyway, I'm reasonably sure that the tag-reading part is correct although I need to re-encode some stuff to test the apple tags and asf/wma support.  Kodi builds OK though so in theory it should work but I need to be sure.

~~~EDIT~~~

Yup, works fine.  Now onto stage two !!
Learning Linux the hard way !!
Reply
#39
Thinking out loud, what would be amazing is if when you enter your music library, it lists "Box Sets" as it does with compilations

obviously for compilations its easy as it can either use if = various artists or if = compilation tag, but an if = album has disc titles then put in box sets group would be dandy
Reply
#40
(2019-08-11, 17:24)dm21912 Wrote: Thinking out loud, what would be amazing is if when you enter your music library, it lists "Box Sets" as it does with compilations

obviously for compilations its easy as it can either use if = various artists or if = compilation tag, but an if = album has disc titles then put in box sets group would be dandy

This is pretty much what I'm trying to do.  I also want to be able to do it from the Album view, so that if you navigate into an album and it is actually a box set, it'll show you the individual discs. Whether my skills are up to it though is a different matter.
Learning Linux the hard way !!
Reply
#41
@black_eagle you may also want to consider what to do when tagging is inconsistent e.g. some music files from a disc have DISCSUBTITLE tag and others don't. Of course Picard won't give you that, but users edit tags and don't always do it consistently. I have been slowly trying to improve Kodi's robustness when it encounters that kind of thing, nice to design it into new features.

Having disc subtitle repeated for each song, rather than normalised out into a separate table, probably makes sense for query speed and as  the subtitles are not something that needs codifying. But then you either need to ensure all songs from a disc have the same subtitle (even if they don't in tagging) or that any querying allows for missing values but still keeps the songs from the disc together.
Reply
#42
@DaveBlake  Don't go complicating things further than they already are Big Grin  I will look at improving matching if I ever get once I get a working example that does the basics.

I'm off again now to stare at code and try to make it do what I want !!!!

-=EDIT=-

Got a bit further.  Kodi now builds a 'boxsets' table.  Using 'idAlbum' I can pull out all the sets in my (small) test directory.

Image

 I can also narrow down the query to just one album.

Image

Using idAlbum and strDiscSubtitle it should now be possible to pull out all the tracks for an individual disc in a set as the song table also contains the disc subtitle where appropriate.

Now I need to figure out how to display it !
Learning Linux the hard way !!
Reply
#43
Ah, I'm stuck now !!!

EDIT
NVM, figured it out.  For those that read the post or can see the edits, the field wasn't in the right place in the songview. 
Quote:// Fields should be ordered as they
// appear in the songview

oops !!

This part now works correctly for boxsets with disc subtitles.

Image
Learning Linux the hard way !!
Reply
#44
@black_eagle you are going to have to tell me why you need that Boxsets table, rather than get the data from the song and album tables especially since you don't even put the discnumber in there
Reply
#45
@DaveBlake I'm not 100% sure that I do need it !!

Currently, when you click on an album in the GUI, Kodi lists all the tracks on that album, regardless of number of discs or subtitles of discs.  I want to change that, so that clicking on an 'album boxset' will show the individual disc subtitles (with thumbs) and clicking on one of those will show the tracks that are just tagged with that subtitle.  To be able to do that, I think that I need a way of linking individual subtitles to an album so that for a given albumId, I can get the individual subtitles, and then using the subtitle, I can get just the tracks with that subtitle.  Hence the boxsets table.

However, I'd be the first to admit that my experience with sql/sqlite backends is very little so I wouldn't be at all surprised if there is either a better or faster way of achieving the same thing.

Still, I am learning something if nothing else and at least the first bit is working correctly.  Kodi can now read the subtitle tag and display the subtitle in the GUI when both browsing and playing.  It can also create the boxsets table (even if I end up not needing it, it's been a good learning experience) with the correct subtitles tied to the correct albumId, even if the album is split over multiple directories (that bit didn't work to start with).  All of that works so far.

Similar to the way that the movie library displays collections, I also want to be able to add an overlay to an album cover if its a set.  This partially works. Or, more accurately, sometimes the overlay is on the right covers but occasionally, it misses one or two and overlays an album that isn't a set.  I've still got to figure out why that happens.

With little experience of any of Kodi's core code previously, I'm quite pleased with what I have managed to do so far even though currently not much seems to have changed on the surface - A couple of ListItems and a MusicPlayer.DiscTitle label

I still don't know if this will work out how I want it to, or even if I have enough skills to pull it off but I'm going to try.
Learning Linux the hard way !!
Reply
  • 1
  • 2
  • 3(current)
  • 4
  • 5
  • 24

Logout Mark Read Team Forum Stats Members Help
Managing music albums Box-Sets properly with KODI library feature0