Page 1 of 1
Search not working for various artists comps
Posted: Sat Apr 21, 2012 12:15 pm
by music_not_rap
I didn't know quite where to place this topic but I thought this was as good a place as any. When I do a search it does not consider any compilations that have more than one artist, only the song titles themselves. For example, if I search for "grapes" it will find songs that have "grapes" in the title, but will not find any songs by the band "The Grapes of Wrath" if those songs are on a compilation, because the artist name is not listed. Or, if I wanted to find a certain artist on all of my compilations it will only come up with entire CD's by that artist, but not if the artist is on "various artists"-type of compilations. Also, I noticed that in the Library only song titles are shown and not artists on any "various artists" compilations. I partially understand this is because of space constraints, but the greatest use I get out of CDPedia is the ability to search for songs, using the "Track Others" feature, and I was hoping (or more accurately, assuming) this was going to be built into Pocketpedia. I have many compilations that I reference using CDPedia, and to lose this ability in Pocketpedia is quite alarming. Am I doing something wrong, or is this a feature that is absent in Pocketpedia?
Re: Search not working for various artists comps
Posted: Sun Apr 22, 2012 3:35 am
by Nora
Turn on the preference to search all fields (in your Settings app > Pocketpedia 3 > Search All Fields ON). This will slow down your search response from the program especially since it has to go through hundreds of tracks now but all fields will be searched.
Re: Search not working for various artists comps
Posted: Sun Apr 22, 2012 8:21 am
by music_not_rap
Nope, it still doesn't work. Also, you haven't addressed the issue of various artists CD's not listing the artist, just the song title. I'm assuming because the artist doesn't show is the reason for the search coming up short. If the artist is not listed then I am assuming a search cannot find what is not there in the first place.
In case I wasn't being clear, this is my frustration. In my library, when I click on, for example, "The Golden Age of American Rock 'n' Roll", I get the cover pic (along with the title). Below that shows:
Label: Ace
Genre: Pop
Release: July 1, 1997
# of Tracks: 30
Format: CD
Date Added: May 3, 2005
Tracks: Denise
Sally Go Round the Roses
Mule Skinner Blues
Sixteen Candles
I won't go on and list the entire 30-track listing, but as you can see, nowhere does Pocketpedia display the ARTIST for each song. Is this normal, or is something not "set" right?
UPDATE:
Okay, looking at CDPedia in the tracks window, if I add the artist on the same line next to the song title, with say, a hyphen (Alice's House - The Psychedelic Furs), it shows up in Pocketpedia that way. Well, this is not the way it should have to work, but I don't see another way when it comes to various artist compilations. I'm not about to change every listing of this type in CDPedia, since I am able to maintain separate columns for each of the song title, and the artist, so why should I have to change it to barely function in Pocketpedia? Even then, it wouldn't improve the search feature that much. I'm scratching my head at this one.
Re: Search not working for various artists comps
Posted: Wed Apr 25, 2012 10:31 am
by Nora
The iPad version of Pocketpedia displays the artists at track level but because of space constraints we omitted this in the iPhone version. We'll look at adding them for the next version, thanks for bringing that up.
As for the search for artists on track level, you're correct that the program does not search those. We took it out since the search response became too slow for testers with larger collections. We'll see if we can speed this up for the future so we can include them again.
Re: Search not working for various artists comps
Posted: Wed Apr 25, 2012 2:42 pm
by music_not_rap
Thank you for your reply. I am looking forward to using Pocketpedia. Also, I may have used what appeared to be a harsh tone, and I apologize for that.
Re: Search not working for various artists comps
Posted: Mon May 07, 2012 5:08 pm
by jschaffe
Nora wrote:...the artists at track level... We'll look at adding them for the next version...
As for the search for artists on track level, you're correct that the program does not search those. We took it out since the search response became too slow for testers with larger collections. We'll see if we can speed this up for the future so we can include them again.
I still have Pocketpedia 2 with nearly as many entries and its search seems noticeably faster. I look forward to both compilation artist names *and* faster search!
I'm really happy you pulled off both version 5 of the 'pedias and Pocketpedia 3. Well done!
Re: Search not working for various artists comps
Posted: Fri Feb 08, 2013 8:43 am
by jschaffe
I'm up on the current versions of Pocketpedia and CDpedia. I have "search all fields" turned on, but when I search in Pocketpedia for an artist whose work appears in one or more compilations, the tracks are not found. I can see the artist's name when I open a compilation and look at the tracks, but search isn't finding them.
Is it supposed to? If it is, Is there a fix for my problem?
Re: Search not working for various artists comps
Posted: Fri Feb 08, 2013 3:43 pm
by Conor
Searching track level artist in Pocketpedia made the search very slow as it's bits of information that have to be load for each CD that normally Pocketpedia loads on a needed basis. We are working on improving the speeds of that search so that we can include it in the future with the search all preference.
Depending on the number of compilation CDs that you have with multiple artist you could copy and paste some of the artist names into a custom field that would be searchable by Pocketpedia as well as always keeping the search fast in the future.
Re: Search not working for various artists comps
Posted: Fri Feb 08, 2013 4:12 pm
by jschaffe
Conor wrote:Searching track level artist in Pocketpedia made the search very slow as it's bits of information that have to be load for each CD that normally Pocketpedia loads on a needed basis. We are working on improving the speeds of that search so that we can include it in the future with the search all preference.
Depending on the number of compilation CDs that you have with multiple artist you could copy and paste some of the artist names into a custom field that would be searchable by Pocketpedia as well as always keeping the search fast in the future.
I need to be able to search by artist/track-artist before I purchase new music, and I have hundreds of compilations. So unless there there were some automated way to produce the custom field, it's not practical for me to do this manually.
Re: Search not working for various artists comps
Posted: Sat Feb 09, 2013 5:00 am
by Conor
You can automate it with SQL.
1. Quit CDpedia
2. Make a copy of your database file as a backup, it's located in ~/Library/Application Support/CDpedia/Database.cdpd.
3. Open the program named Terminal in /Application/Utilities
4. Copy paste the four following commands:
Code: Select all
sqlite3 ~/Library/Application\ Support/CDpedia/Database.cdpd
UPDATE ztrack SET zartist = NULL WHERE zartist = '';
UPDATE zentry SET zcustomtag1 = (SELECT GROUP_CONCAT(ztrack.zArtist, ', ') FROM ztrack WHERE ztrack.zentry = zentry.z_pk);
.exit
5. Launch CDpedia and Custom Tag One will now have all the artist in the track level (you might need to enable custom tag one in Preferences->Fields, also a good time to rename it to "Track Artists" by clicking on the name). Next time you sync it will move track artists over to Pocketpedia and be searchable.
A small explanation of the four commands. First one opens the database with SQLite3 for reading and writing. The second one removes any empty track artist to be actually NULL. Although the same for CDpedia, it's not the same for SQL who might then add empty bubbles via the next command as it considers empties to be values ( ", , , , ,"). The third command is the magic, it sets customtag1 to all track artists joined by a comma (I have to thank NoisyScott for the
original SQL join command for DVDpedia that this is based on). Fourth exits SQLite3.
You can run that command periodically and it will update any changes made as well as new CDs added. So it's best to not edit the custom tag one in CDpedia, to let the SQL line above update it when needed.
On a side note I been retesting speeds on artist search and while great on new devices it's a bit slow on the old 3GS iPhone and similar, but looking to the future it's likely to make it into the next version at the expense of slower searches for users with older hardware.
Re: Search not working for various artists comps
Posted: Sat Feb 09, 2013 10:13 am
by jschaffe
Conor wrote:...
UPDATE zentry SET zcustomtag1 = (SELECT GROUP_CONCAT(ztrack.zArtist, ', ') FROM ztrack WHERE ztrack.zentry = zentry.z_pk);
.exit[/code]
... The third command is the magic, it sets customtag1 to all track artists joined by a comma (I have to thank NoisyScott for the
original SQL join command for DVDpedia that this is based on).
On a side note I been retesting speeds on artist search and while great on new devices it's a bit slow on the old 3GS iPhone and similar, but looking to the future it's likely to make it into the next version at the expense of slower searches for users with older hardware.
First of all, you're the
Man, Connor! Works brilliantly and fast.
Second, in the third command, what does "...WHERE ztrack.zentry = zentry.z_pk..." accomplish? it looks like no Track Artists get added when there's only one artist for the album, is this how that happens? This is a real nitpick, but it would also be cool if the album artist could be supressed from the list, for example, on Tony Bennet Duets, Track Artists looks like this:
Tony Bennett & Stevie Wonder, Tony Bennett & Sting, Tony Bennett & Elvis Costello, Tony Bennett & George Michael, Tony Bennett & Juanes, Tony Bennett & Dixie Chicks, Tony Bennett & k.d. lang, Tony Bennett & Michael Buble, Tony Bennett & Billy Joel, Tony Bennett & Tim McGraw, Tony Bennett & James Taylor, Tony Bennett, Tony Bennett & John Legend, Tony Bennett & Paul McCartney, Tony Bennett & Barbra Streisand, Tony Bennett & Celine Dion, Tony Bennett & Diana Krall, Tony Bennett & Elton John, Tony Bennett & Bono
It would look somewhat nicer without Tony being repeated for each track.
And finally, I look forward to the possibility of artist search in a future update. Is there a way to make it optional for slower devices?
Thanks, I love you guys and gals and canines!
Re: Search not working for various artists comps
Posted: Sat Feb 09, 2013 12:15 pm
by Conor
What does "...WHERE ztrack.zentry = zentry.z_pk..." accomplish?
The tracks are stored in a different table. The where clause loads only the tracks for a particular CD. Every track entry has a zentry attribute that matches the z_pk of a CD. (pk stands for Primary Key). In English the parenthesis part of the statement would be, "select all the tracks for this CD based on the "z_pk" and group them with comma" the section outside the parenthesis is "set as zcustomtag1, repeat for all CDs".
It looks like no Track Artists get added when there's only one artist for the album, is this how that happens?
When there is no artist at track level the custom tag one is still set to blank (''), but CDpedia does not mind.
It would also be cool if the album artist could be supressed from the list
Updated code:
Code: Select all
UPDATE zentry SET zcustomtag1 = (SELECT GROUP_CONCAT( ltrim( replace(ztrack.zArtist, zEntry.zArtist, ''), ' &/,'), ', ') FROM ztrack WHERE ztrack.zentry = zentry.z_pk AND ztrack.zArtist != zEntry.zArtist);
Same as original but the middle section has an added replace() function that takes the main artist and replaces it for nothing if found in track artist. Then trims any whitespace, ampersand, comma and slash from the left side. I find this will be more flexible than looking for exactly "Artist & ", it will handle things like "Tony Bennett, Maria" or "Tony Bennett / Dixie Chicks". Also added an extra AND to the where clause to ignore the track completely if the artist matches the main artist exactly.
Since the above is to update the database directly the following code is a
select instead. Which is useful when testing, debugging or improving the SQL. It prints out the results directly in Terminal without making any changes:
Code: Select all
select ztitle, (SELECT GROUP_CONCAT(ltrim(replace(ztrack.zArtist, zEntry.zArtist, ''),' /& ,'), ', ') FROM ztrack WHERE ztrack.zentry = zentry.z_pk AND ztrack.zArtist != zEntry.zArtist) FROM zentry limit 100;
Is there a way to make it optional for slower devices?
We thought about including it as a preference, but then composer at track level needs to go in there as well and credits in DVDs and roles in DVDs. The preferences start looking like a christmas tree of options and we wanted to keep it simple. Instead concentrating on making it work in a future version. No matter how you handle it, searching case insensitive for parts of names in 50,000 tracks or credits will never be fast on an iPhone. So we might still need a single preference to activate all even more complex searches.