pfarrell;274934 Wrote: > > The key to doing this is to not only stop using the genre/artist/album > structure, but to not expect that the tags are the be-all and end-all. > > Its a relational database, focusing on flat tags is a severe > limitation. It does mean that some actions are harder, a 'rescan' can't > just throw away the whole database. > > I want to use the files and their tags as just one data source. This > will mean that we have to define concepts of external data, how we sync > the external data to the flac files, etc. But its all doable, its just a > SMOP > > (Small matter of programming). > Even though I completely agree with you, I've got the impression that Logitech wants to avoid letting SlimServer be a library manager. This is something that has been stated several times unless I've totally misunderstood things. Unless I misunderstand what you are saying, you are basically saying that you like to start the road into making SlimServer a library manager. Of course, a library manager could mean several things, one is to not discard data during rescan, another it making data editable from SlimServer even though not changing the tags in the files and a third is making it possible for SlimServer to actually manage the music files.
I've done some work in this direction with TrackStat and Custom Scan plugin. When doing this as plugins I had to create separate tables to make sure SlimServer didn't clear my data during a rescan. The number of hooks to hook into the scanning operation is also currently a bit limited and hard-coded, but it is getting better for every release. On of the main problem you will get into is that there is no unique id for the objects in the standard SlimServer database that will survive a rescan. The id-columns in the database will change in a rescan, the url will also change if you have moved or renamed a file. The only partly unique id is the musicbrainz tag information, but not all people are using musicbrainz tag. TrackStat makes sure ratings, play counts and last played time statistics is persisted over rescans. It does this by handling this information my it self and synchronizing it with the standard SlimServer tables at the end of a rescan. The main problem with the TrackStat solution today is that it uses the url as a key which is defined as a 'text' field in the standard SlimServer tables which results in pretty poor performance when joining the data with the standard SlimServer tables. Custom Scan scans information from external sources, it contains scanning modules to scan information from custom tags in the music files, from amazon.com, from lastfm.com. The information is currently stored in a number of flat tables. The major problem here is that these flat tables is getting pretty large if you have a large library, the result is poor performance when using the information for browsing the library. It would be possible to change the database layout to a more relational based structure and this should improve the performance, but I haven't got the time to do this yet. I've stated earlier that if anyone is interesting in taking over or helping to implement functionality or changing my plugins this is very welcome, just let me know. http://forums.slimdevices.com/showthread.php?t=41583 However, I also feel that as long as these things are done through plugins it won't get integrated enough into the SlimServer standard functions. The main problem is that if you use separate tables this also means that they won't be used by the standard SlimServer browsing and searching mechanisms, so you basically end up re-implementing all browsing and searching code currently available in SlimServer. This is what I had to do for browsing in the Custom Browse plugin which provides the browsing mechanism for the data scanned with the Custom Scan plugin. IMO, the best way would really be if the standard SlimServer started to use the database as a real relational database and not just a cache for the tag information in the music files. However, this require that Logitech also plans to go into this direction, which I've got the impression that they currently don't. As a side note, I think vrobin is doing some work outside SlimServer that is going to make it possible to retrieve different information from various online internet sites and store it into XML files. -- erland Erland Isaksson 'My homepage' (http://erland.homeip.net) 'My download page' (http://erland.homeip.net/download) (Developer of 'TrackStat, SQLPlayList, DynamicPlayList, Custom Browse, Custom Scan, Custom Skip, Multi Library and Database Query plugins' (http://wiki.erland.homeip.net/index.php/Category:SlimServer)) ------------------------------------------------------------------------ erland's Profile: http://forums.slimdevices.com/member.php?userid=3124 View this thread: http://forums.slimdevices.com/showthread.php?t=43851 _______________________________________________ ripping mailing list [email protected] http://lists.slimdevices.com/lists/listinfo/ripping
