If you are updating these actions from a version prior to Release 4, be aware of the following: Previous versions of this set of actions used a replacement set named Artist Reference Database Information. The name was changed so that updating to the newer version of the actions would not destroy your settings. If you want to preserve older settings, do the following:
- Download, unzip and install the new file.
- Delete the Artist Reference Database preference set.
- Rename your old Artist Reference Database Information preference set to Artist Reference Database.
- If your old Artist Database had items which only differed in their alphabetic case, you will have to rebuild it.
With the introduction of query databases in v3.10 we were looking to create a proof of concept action. We thought it would be neat to maintain an Artist database which would allow us to lookup various information about artists in our collection.
This file describes a variety of actions which were written to build the databases, manage them as part of your new album workflow and to provide the query functionality.
v3.10 introduced the concept of importing information from a Reference Set. This is a convenient means of sharing common information across a variety of actions and it is also a means of suplying actions to you where you don't have to go into them to make subtle changes configuration changes. This suite uses an Artist Reference Database Replacement Set which is provided in the download. The following fields are present:
- ARDB Album Database
- This is the path to the Album database used in various places. The default value places/references the database in a ~/Documents/Yate folder. You can change this location to wherever you'd like. Note that this item describes the path to the csv file, not the associated plist file.
- ARDB Artist Database
- This is the path to the Artist database used pretty much everywhere. The default value places/references the database in a ~/Documents/Yate folder. You can change this location to wherever you'd like. We typically keep these files in a DropBox folder so that any of our Macs can get at them. Note that this item describes the path to the csv file, not the associated plist file.
- ARDB Do Involved People
- You can optionally process Involved People fields as well as Album Artist, Artist, Musician Credits and Title. Simply set the item to a non zero numeric value.
- ARDB Featuring
- Title fields often have featuring lists which describe one or more artists. Everything to the left of the featuring keyword must be ignored as it is the title and not artist related. This item contains a comma separated list of words which can start a featuring list. The list should be ordered such that longer words appear first. The list is case insensitive.
- ARDB Fuzzy
- Certain parts of the suite support fuzzy comparisons. A number in the range of 1-100 defines when a fuzzy match succeeds. The default is 80. If you want to play with the values, you can do so here. Note that fuzzy comparisons are a little disappointing in this suite as you are searching for an artist name which typically has two words. Fuzzy comparisons do much better on long word runs.
- ARDB Ignore Exact Match
- The Artist detection algorithm is not perfect. Certain layouts of names can cause the detection of artists which are actually simple descriptive words. For example: Eric Clapton, J.J. Cale are two unique artists. Gary Clark, jr. is a single artist. This item tweaks the algorithm to ignore certain words when they seem to appear alone. The order is irrelevant and the items are case insensitive.
- ARDB Ignore Prefixes
- Similar to ARDB Ignore Exact Match, this items describes those artist names which should be ignored if they start with any of the listed words. The default of various will stop the recognition of various and various artists.
- ARDB Separator Characters
- This is a set of single characters which can be used to delimit artist names.
- ARDB Separator Words
- This is a set of words which can be used to delimit artist names. The order is irrelevant and the items are case insensitive. They are essentially break sequences.
In order to get full functionality out of this suite of actions you will require an Album Database which describes the albums in your collection. For the purposes of this suite the database only has to have an Album, Folder Path and Yate Album ID field. However, you may as well throw other columns in there, as Album database are really useful. Personally we keep Album and Track databases updated at all times. The supplied builder for the Album database uses an Export Set called ARDB: Album DB. You might want to take a look at it to see if you want to change any of the fields. Note that the column order is irrelevant as this suite determines the column layout at runtime.
A word on Yate Album IDs. There has been some pushback on them and some people have stated that they are not standard fields. There are thousands of non-standard UDTIs out there! A Yate Album ID is simply a unique value. Every database, including iTunes uses unique IDs. We have Yate Album IDs and Yate Track IDs in all of our tracks to maximize the database capability.
If you do not already have an Album database you will have to create one. Further, you have to construct the Artist Reference database. There are three actions provided to do so. Whichever action you pick must be run through the Batch Processor. Make sure that you enable Auto-Saving of files.
- ARDB: Build Album Database
- This action will construct the initial Album Database. Yate Album IDs will be created if required.
- ARDB: Build Artist Ref DB
- This action will construct the initial Artist Database. Yate Album IDs will be created if required.
- ARDB: Build both Databases
- This action will construct the both databases. Yate Album IDs will be created if required.
There are three actions provided which you can call as part of your new album workflow. They are intended to be rn from the UI.
- Add to Artist Ref DB
- This action evaluates the current open tracks and adds their artist information to the Artist database. Yate Album IDs will be created if required.
- Remove from Artist Ref DB
- We used this while debugging. It removes the artist information for the open tracks.
- Update Album DB
- This action opens and updates the Album database with information from the currently open tracks. Yate Album IDs will be created if required.
There are three helper actions which are called in a variety of places. They are not intended to be directly called.
- Helper: Apply Reference Artist List
- Information form the current tracks are applied to the Artist Database.
- Helper: Remove Reference Artist List
- Information from the current tracks are removed from the Artist Database.
- Helper: Build Reference Artist List
- This is the main workhorse action. It scans the information in tracks or a named variable looking for artist names. One of the goals of this action is to produce a list which has a standardized case representation for an artist. Title case is used and the default exception set, the default name set and the default replacement set all are used.
Before you build the Artist database, it might be a good idea to check some of your preference settings. In Preferences-Exception Sets you can assign a Names List to handle name exceptions and special rules for names starting with Mc or Mac.
And now for the fun part. The Query Artist Reference DB action. Some of us have this on a toolbar icon because we use it so often. The action issues a prompt and depending on what text you enter, various result types are displayed.
This is all displayed in the prompt but will itemize the various modes here:
- One or more artist names separated by commas.
- The log file will display a list of all albums on which all of the specified artists appear. The artist names are case insensitive. Once you have the results you can copy an album's path to the clipboard and do an Open Path in Clipboard to immediately see an album.
- = text
- Where text is a Yate Album ID. This is mostly useful if you are viewing the Artist Database and you want to see what a particular ID references. We mostly used this for debugging, but we left it in.
- ~ text
- Where text is part of an artist name. A fuzzy lookup is done n the Artist Database looking for all artists which match the data. This test is marginal as the fuzzy compare algorithm works best on longer runs of words.
- ? text
- Where text is part of an artist name. Look for all artists whose name contains the text. The text is case insensitive.
- ! text
- Where text is part of an artist name. Look for all artists whose name contains the text on word boundaries. The text is case insensitive.
- # text
- Where text is an artist name. Look for all artists who are credited on any album where artist text appears
Note if you hold down the Shift key when starting the action, you will only be prompted for input if a consistent Album Artist or Artist cannot be found.
Repeated Query Artist Reference DB is an action which will loop forever calling the above Query Artist Reference DB action until you tell it to stop.
Action source links: For clarity reasons, the action source code was placed in different files. Clicking on any of the Action: entries below will display the appropriate source code.
Folder: Artist Reference Database
Action: Query Artist Reference DB
Action: Repeated Query Artist Reference DB
Action: Add to Artist Ref DB
Action: Remove from Artist Ref DB
Action: Update Album DB
Action: Helper: Apply Reference Artist List
Action: Helper: Remove Reference Artist List
Action: Helper: Build Reference Artist List
Action: ARDB: Build both Databases
Action: ARDB: Build Album Database
Action: ARDB: Build Artist Ref DB
Export set: ARDB: Album DB
Export set: ARDB: Artist DB
Replacement set: Artist Reference Database
2015-12-16 First release in v3.10 Preview 1.
2015-12-12 Changes for v3.10 Preview 2.
2015-12-16 Changes for v3.10 Preview 3.
2016-02-24 Patch to ensure that list items are treated as separate entities in Helper: Build Reference Artist List when applying case transformation.
2016-08-28 v3.14 optimizations.
2016-09-19 Query Artist Reference DB will test if the Shift key is down. If it is and a consistent Album Artist or Artist can be found, the query will automatically use that data.
2018-04-03 Release 4: Updated to maintain the Artist Database keys as being case insensitive.