Questions about Music Developments
#1
Music 
I know non-devs and non-team members aren't welcome here, so I'll just leave some observations on recent music developments, and some no-doubt naive questions that maybe people can consider at their leisure.

Music Ratings
Recent Jarvis nightlies include the new user rating update screen. It seems there was a lot of debate about this on github, including the continuing debate about whether ratings should be out of 5 or 10. Zag's earlier thread about this was shut down pretty quicky, so I'm not going to bother re-stating that AllMusic, iTunes, Rate Your Music, etc, all use rating 1-5 including half stars. The only one that uses out of 10 is The Audio DB, which I believe Zag has changed to fit in with Kodi. This all seems to be going in the wrong direction to me. Anyway, here's the question:

In the Movie database years and ratings seem to be stored as text. So a movie rating is stored as 8.10000 or 7.90000, etc. I can then create smart playlists to select movies rated greater than 8 for instance or years greater than 2005. It seems though that when it comes to music ratings are to be an integer and therefore half marks aren't allowed, and hence the burgeoning crappy way of rating that is either going to limit it to a 1-5 scale or is going to require thousands of tracks and albums to be re-rated on a 1-10 scale specifically for Kodi. Simply amending the music ratings to text seems to me the easiest solution, and I don't understand why this couldn't be done.

Music Development
Dave Blake has obviously been doing an enormous amount of work on the music library, for which I think everyone is enormously grateful. The emphasis of this work seems to be with the MusicBrainz ids for multiple artists, instrumentalists, conductors, etc. etc. For years a number of us were asking simply for the Composer tag to be scanned into the library, so that we could create smart playlists that way (pre-dating nodes and all that). Many people using mp3tag or foobar probably already have those tags fully populated, and don't overly care about the whole musicbrainz bit.

So, what I don't understand is why it isn't possible to just scan the composer tag to the library and then if you want a playlist of Paul McCartney compositions you could have Composer Contains McCartney to include compositions by Lennon & McCartney or Lennon / McCartney or however you have it tagged. To me as a non-prgrammer that woudn't seem to be vastly different from the other tags, for example a movie playlist where Plot Outline Contains Alien. While I really do appreciate the work Dave's doing, it does seem he's going a number of stages further with orchestras, conductors, MBID integration, etc, than what seemed to be a reasonably simple feature request that's been hanging around for years and years.


In general it seems to me that Kodi music is moving slowly but steadily moving towards a stand-alone library structure, assuming people don't use things like iTunes, tagging programmes or nfo creators like MediaElch. It also seems a bit confused as to whether it is targeting newbies with little computing knowledge who will never need to press more than one button, or it is for home theatre enthusiasts who want to bespoke it for their preferred set-up. It seems to be trying to be all things to all people and that's a very hard thing to achieve. To me, the greatness of Kodi (XBMC) over the years has been its ability to import a lot of raw data and display it in flexible creative designs. The music system seems to be on a trajectory of having to use it in the way prescribed, which may well be inconsistent or incompatible with other programs people may use, and I'm afraid that may be going in the wrong long-term direction (though it will make it more like Apple).
Reply
#2
(2015-10-27, 15:37)WelshPaul Wrote: I know non-devs and non-team members aren't welcome here, so I'll just leave some observations on recent music developments, and some no-doubt naive questions that maybe people can consider at their leisure.

Music Ratings
Recent Jarvis nightlies include the new user rating update screen. It seems there was a lot of debate about this on github, including the continuing debate about whether ratings should be out of 5 or 10. Zag's earlier thread about this was shut down pretty quicky, so I'm not going to bother re-stating that AllMusic, iTunes, Rate Your Music, etc, all use rating 1-5 including half stars. The only one that uses out of 10 is The Audio DB, which I believe Zag has changed to fit in with Kodi. This all seems to be going in the wrong direction to me. Anyway, here's the question:

In the Movie database years and ratings seem to be stored as text. So a movie rating is stored as 8.10000 or 7.90000, etc. I can then create smart playlists to select movies rated greater than 8 for instance or years greater than 2005. It seems though that when it comes to music ratings are to be an integer and therefore half marks aren't allowed, and hence the burgeoning crappy way of rating that is either going to limit it to a 1-5 scale or is going to require thousands of tracks and albums to be re-rated on a 1-10 scale specifically for Kodi. Simply amending the music ratings to text seems to me the easiest solution, and I don't understand why this couldn't be done.

[...]

Hey Paul,
everybody is welcome here. As long as their input is staying on topic.

I did most of the rating work, so I might be able to give some answeres (or create some new ones).
As you said other dbs use 1-5 with a half start rating system. So that is essentially the same as 1-10 with only full starts. Should be fully compatible without loosing any data.
It makes sense to me, to have the same range for ratings for both music and movies. Otherwise users that use both might get confused by it.

Years might be stored as text, but thats legacy and has to die at one point, as it's a bad way of saving numerical data. Music user ratings/my ratings are stored as text also (char if you actually want to know whats happening). So this is more of a frontend database problem. And if we change it to 1-10, we will make sure to use the correct datatype (hint it is not text).
On a side not it seems like your comparing the movie ratings with the userratings from music. These are two different field with different usecases that are not really compareable.

And you won't need to rerate anything, we can import pretty much anything you throw at us, via json.
Reply
#3
Thanks for your reply Razze.

So, to clarify the ratings question - if I have an album with the following output from iTunes:

Track 1 - Rating 3.0
Track 2 - Rating 2.5
Track 3 - Rating 3.5
Track 4 - Rating 2.0
Track 5 - Rating 4.5
Track 6 - Rating 4.0

Overall album rating 3.5

This is imported to Kodi and shown in song/album information as:

Track 1 - Rating 3
Track 2 - Rating 2
Track 3 - Rating 3
Track 4 - Rating 2
Track 5 - Rating 4
Track 6 - Rating 4

Overall album rating 3

So, I don't really understand your JSON point and I don't agree that 1 - 5 with halves is the same as 1 -10, and with rating being at the core of most of my playlists it's limiting to only have 5 choices..

I appreciate that both your and Dave's work is WIP, which may well ultimately result in some benefit, though I'm not sure the pop-up rating selection will be that easy to use with a choice of 10 items. My point is that it seems to a non-programmer that there are low hanging fruit to make improvements while waiting for those grand plans to play out. While you and Dave paint the Sistene Chappel ceiling I'd just quite like a fresh coat of paint on the walls.
Reply
#4
Perhaps I'm being thick here, but from your example the rating imported would be displayed on a 1-10 scale as:

Track 1 - Rating 6
Track 2 - Rating 5
Track 3 - Rating 7
Track 4 - Rating 4
Track 5 - Rating 9
Track 6 - Rating 8

Overall album rating 7
Reply
#5
So can you point me to where the 2x table is in the database? How does 3.5 get doubled to 7 when imported? Point me towards that automated process and I'll understand.
Reply
#6
(2015-10-27, 20:30)WelshPaul Wrote: So can you point me to where the 2x table is in the database? How does 3.5 get doubled to 7 when imported? Point me towards that automated process and I'll understand.
It's not done yet. This is the huge ceiling painting we wanted to do while you wanted the walls painted
Read/follow the forum rules.
For troubleshooting and bug reporting, read this first
Interested in seeing some YouTube videos about Kodi? Go here and subscribe
Reply
#7
Thanks Martijn, I was thinking I had completely missed something. So, my point remains that ideally when the chappel roof is done we won't need to re-do all the ratings we did in other programs, and in the meantime I thought it might be relatively easy for someone with SQL knowledge to replicate the text based process in the music DB (and to add a column for composer), but what the hell, it's only been 10 years, what's another couple.
Reply
#8
(2015-10-27, 20:30)WelshPaul Wrote: So can you point me to where the 2x table is in the database? How does 3.5 get doubled to 7 when imported? Point me towards that automated process and I'll understand.

That is beeing done here:
https://github.com/xbmc/xbmc/blob/master...m.cpp#L303
It's using 5 as basis, but you can set "max" on import via json or nfo (I think) and it will normalize it down to a 1-5 rating.
Reply
#9
Paul the slowness of my progress frustrates me too! But I don't think it would have been much quicker if I just stuck to the composers tag only. It is one of those cases where you just can't get there from here, there is stuff to tidy-up first. To use your analogy, you can't even paint the walls and expect it to last without doing some basic prep first. No good comes from just throwing paint around enthusiastically! And anyway the devs simply wouldn't merge my work if I tried that.

Quote:To me, the greatness of Kodi (XBMC) over the years has been its ability to import a lot of raw data and display it in flexible creative designs. The music system seems to be on a trajectory of having to use it in the way prescribed, which may well be inconsistent or incompatible with other programs people may use, and I'm afraid that may be going in the wrong long-term direction (though it will make it more like Apple).

I'm not into prescriptive software Paul, so for my part I will be working towards extending flexibilty and the kinds of tag data Kodi can make use of. As it happens rating music doesn't interest me at all, so I have no comment to make on that.
Reply
#10
Quote:Razze wrote:
That is being done here:
https://github.com/xbmc/xbmc/blob/master...m.cpp#L303
It's using 5 as basis, but you can set "max" on import via json or nfo (I think) and it will normalize it down to a 1-5 rating.

Thanks Razze. I may have not have been telling the truth when I said "point me to where this is done and I'll understand". Anyway, I have faith you know what you're doing and that you understand my point.

Quote:Dave Blake wrote:
the slowness of my progress frustrates me too! ...... the devs simply wouldn't merge my work if I tried that

Dave, I'm sorry if I sounded critical of your work. That wasn't my intention at all. What I meant was why does it have to be either a massive overhaul or nothing at all. Isn't there a mechanism by which "minor" changes can be made without humungous implications for the entire program. I was being a little disingenuous about not being able to use composers in Kodi. Of course I can and do have composers and can create playlists from them. I do this by populating the Moods tag instead of composer in mp3tag and creating the playlists using that tag. It is this kind of work-around that I imagine many longer-term users have ended up with in the historical absence of any devs really interested in supporting music. Obviously, this has negative consequences, for instance with Moods you can bizarrely use an Album.Mood info tag to display in a skin but not Song.Mood so I can't actually show the composer on screen (n.b. as has been previously noted Playlists stay static on the first item so you can't use List Item info tags).

So, the points I'm trying to make are:

Firstly, it seems like it's feast or famine when it comes to changing things in Kodi. It's the second part of the quote from your reply above that I don't quite get. I don't know if there's a mechanism for a "Work Arounds Corner" on the forum where kind devs (or team members or just generally smart people) can either explain that we don't understand the knock-on effects of what appear to be minor changes, suggest other ways of doing things, or ideally say "yeah, that's a two minute job, we can change that in the next nightly". Matthias has very kindly done this in the past when one of the info lables got broken, but it was quite hard work to get someone to listen and I'm not sure most people would bother being as much of a pest as me. However, I do appreciate that people are donating their time to Kodi and this may well be the last thing they want to be doing.

The second point I was trying to make in my original post was that the ability to find these work arounds seems to be gradually disappearing. I totally understand that what may work as a minor hack for me completely buggers things up for someone else. For instance, ironically in the current absence of a flexible rating system (sorry Razze) the MusicBrainz song ID would be an ideal candidate to store a text rating. So, if I say for instance that I need to know how to change the SQL table so each MBID field doesn't have to be unique, that may work for me but messes up your work. What I'm hamfistedly trying to get at is that as Kodi moves towards a mass market, where anyone can simply click a "scrape my media" button there is a risk of losing the ability for people to tailor it to their particular wishes, and we become ever more reliant on a smaller number of devs with the ability to understand the complexity of it and to make any changes.

I'm honestly not trying to have a pop at anyone, and I don't have a simplistic answer. What I'm throwing out there is a more general point of whether there is a design method to build in the ability for individuals to still tinker. Whether that's by each database table having spare columns that are bespokable (if that's even a word), a mechanism for flexible info labels etc. This seems to me to be the way to balance the needs of people who just want to simply hit a button and play with those who want to access the power of Kodi to adapt it to their perfect and personal home media solution without having to do a masters in C++.

Sorry for the essay, but I think this is really important going forward, and if nothing else proves a little knowledge is a dangerous thing, and in my case very little knowledge is very dangerous indeed.
Reply
#11
(2015-10-28, 11:55)WelshPaul Wrote: Dave, I'm sorry if I sounded critical of your work. That wasn't my intention at all. What I meant was why does it have to be either a massive overhaul or nothing at all. Isn't there a mechanism by which "minor" changes can be made without humungous implications for the entire program. ...

No worries Paul, I didn't feel criticised or under appreciated Smile

Sorry that it seems so all or nothing to you. There are minor changes happening to Kodi every day, in fact the evolution cycle for the next verison is pretty quick. Sometimes things get broken along the way, often not. Whether the things that are done are the things users actually want is another matter. Generaly users only get involved when they change version and find that something is different (for better or worse). We have a vocal minority, like yourself, but no way to know what the silent masses think.

What changes happen depend on the opinions of the dev team, and interests of individuals like me that have the time and skills to contribute. So for example I have no interest in a quick addition of composer, I want to improve music browsing more broadly so that is what I am trying to do. If there are other things I can help with on route then I will.

Quote:It's the second part of the quote from your reply above that I don't quite get. I don't know if there's a mechanism for a "Work Arounds Corner" on the forum where kind devs (or team members or just generally smart people) can either explain that we don't understand the knock-on effects of what appear to be minor changes, suggest other ways of doing things, or ideally say "yeah, that's a two minute job, we can change that in the next nightly". Matthias has very kindly done this in the past when one of the info lables got broken, but it was quite hard work to get someone to listen and I'm not sure most people would bother being as much of a pest as me. However, I do appreciate that people are donating their time to Kodi and this may well be the last thing they want to be doing.

I fear there are just too few experts and not enough time.

My comment about throwing paint about... Anyone can join Github and submit code changes, but only dev team members can merge submissions into Kodi. This is a good thing, a guard against anarchy and chaos, but it also limits and slows things. Unless 2 team members approve my work, and generally agree with the direction then it goes nowhere. A single dev team member can also stop discussion, and close down any work in that direction, that is a bad thing.

Quote:What I'm hamfistedly trying to get at is that as Kodi moves towards a mass market, where anyone can simply click a "scrape my media" button there is a risk of losing the ability for people to tailor it to their particular wishes, and we become ever more reliant on a smaller number of devs with the ability to understand the complexity of it and to make any changes.

There is a desire in the dev team to make Kodi consistent and idiot user proof. If that is done in haste then there is always the risk that Kodi is made less powerful and flexible as you fear. There is always the risk that functionality gets removed just because none of the devs use it. But that is not inevitable, good design can serve the needs of both novices and power users, and is backwards compatible. I will do what I can to ensure things improve for both power users and mass market experiences. I have no authority whatsoever, so I may not be able to deliver, but I will try.

Quote:What I'm throwing out there is a more general point of whether there is a design method to build in the ability for individuals to still tinker. Whether that's by each database table having spare columns that are bespokable (if that's even a word), a mechanism for flexible info labels etc. This seems to me to be the way to balance the needs of people who just want to simply hit a button and play with those who want to access the power of Kodi to adapt it to their perfect and personal home media solution without having to do a masters in C++.

What you are requesting is more generic tag processing, query generation and display control. It is not a "design method" but an approach or philosophy. This is something that has been asked for a few times before, but getting to that point will take more than a quick fix. It will need a few devs to want it and make it happen. Not sure that is the case? But I'm with you Paul that it is a desireable thing.
Reply
#12
I think a generic approach to tags might be the best thing we could do right now. Video tags are also starting to get traction so we might want to have one generic system that can handle every tag that gets thrown at it?
Reply

Logout Mark Read Team Forum Stats Members Help
Questions about Music Developments0