> On March 18, 2012, 9:39 p.m., Ralf Engels wrote:
> > Are the unit test running?
> > 
> > There is one specific scenario that the current scanner is handling (since 
> > years. No new change).
> > 
> > ITunes stile collections put tracks from the same album but different 
> > artist into different directories like this:
> > 
> > Michael Jackson
> >  + Bad
> >     + Smooth Criminal
> > Quincy Jones
> >  + Bad
> >     + Commentary
> > 
> > If your fix doesn't break the unit test I am all for committing the fix.
> > Also you might want to make a new unit test to prevent somebody later on to 
> > change the behaviour for the worse.
> 
> Alexey Neyman wrote:
>     Ralf,
>     
>     I wasn't able to run the unit test; even though I installed google mock 
> 1.6.0 ("apt-get install google-mock") on Kubuntu 12.04, cmake does not detect 
> it:
>     
>     
> -----------------------------------------------------------------------------
>     -- The following REQUIRED packages could NOT be located on your system.
>     -- You must install these packages before continuing.
>     
> -----------------------------------------------------------------------------
>        * gmock (1.4 or higher)  <http://code.google.com/p/googlemock/>
>          Used in Amarok's tests.
>     
>     
> -----------------------------------------------------------------------------
>     
>     For the same reason, I didn't add a new unit test.
>     
>     But I am afraid this is exactly the behavior I am trying to fix. With 
> this change, your example would result in two (or more separate albums): 
> "Michael Jackson - Bad" and "Quincy Jones - Bad".
>     
>     So, your change was fixing iTunes but breaking the heuristics Amarok used 
> before. Could you think of a solution that would also handle the following 
> scenario:
>     
>     ABBA
>      + The Album
>         + Eagle
>         + Take a chance on me
>         + One man one woman
>     Chris Norman
>      + The Album
>         + As good as it gets
>         + Every little thing
>         + Red hot screaming love
>     
>     I.e., two completely separate albums being merged? One solution I could 
> think of would be to merge tracks into single compilation if they all share 
> the same year (is it the case with iTunes?). However, this is still prone to 
> errors, for example if the tracks in both directories lack the year tag.
>     
>     Perhaps, make it a config option? Something like:
>     
>     [ ] Detect iTunes-style compilations
>

By the way, is it the case that if one had both albums from my example in 
iTunes collection, they would also be merged in a compilation?


- Alexey


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/104294/#review11582
-----------------------------------------------------------


On March 16, 2012, 12:13 a.m., Alexey Neyman wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/104294/
> -----------------------------------------------------------
> 
> (Updated March 16, 2012, 12:13 a.m.)
> 
> 
> Review request for Amarok.
> 
> 
> Description
> -------
> 
> Older amarok used the following heuristics to determine whether a particular
> album is a compilation (from a comment in 
> amarok-2.2.1/src/collection/sqlcollection/ScanResultProcessor.cpp):
> 
>     //using the following heuristics:
>     //if more than one album is in the dir, use the artist of each track as 
> albumartist
>     //if all tracks have the same artist, use it as albumartist
>     //try to find the albumartist A: tracks must have the artist A or A feat. 
> B (and variants)
>     //if no albumartist could be found, it's a compilation
> 
> 
> However, more recent Amarok versions started to merge different albums
> with different artist in separate directories together, as explained above.
> Amarok started to assume all albums with same name to be compilations
> (even if in separate directories) since the following commit:
> 
> dfd8b457d7094144563c51b2528afdbe23ffc344
> Ralf Engels
> Fix all collection scanner auto tests.
> 
> Now, amarok first scans all directories (sorting albums by the name)
> and then tries to process *album names*, one at a time. If it finds
> more than one instance of an album name, it assumes it to be a compilation.
> Thus, it lost the heuristics in employed before ("if more than one album
> is in the dir...").
> 
> While it is still possible to force the right behavior
> by selecting "Do not show under Various Artists" for each of the erroneous
> albums, it would still be better to restore the original heuristics as there
> may be lots of albums merged this way. I think the old heuristics made sense
> (why would albums be put into separate directories otherwise, if they are
> a single compilation album?).
> 
> The attached patch restores the following logic: If any given directory
> contains tracks that were sorted into a single album and and that album
> was not created as a compilation (i.e. it has non-empty artists), this
> album is excluded from being merged with other albums to create a 
> "compilation".
> 
> 
> Diffs
> -----
> 
>   src/core-impl/collections/db/ScanResultProcessor.cpp 4f02a16 
> 
> Diff: http://git.reviewboard.kde.org/r/104294/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Alexey Neyman
> 
>

_______________________________________________
Amarok-devel mailing list
Amarok-devel@kde.org
https://mail.kde.org/mailman/listinfo/amarok-devel

Reply via email to