An introduction to computer audio
In Tools > Options > Library you can create custom tags.
One option is to make it a relational field.
Normally if you edit a tag the edit affects only the cells you selected in the interface.
If a field is relational all related cells will be changed even if you edit a single cell only.
What is affected depends on the scope of the relation chosen.
Sounds pretty cryptic I’m afraid.
If you have an artist and you want to add a biography or an URL to his site you have to do this for every track by this artist.
Make a relational field for e.g. the URL and all the tracks will have the same value for the URL.
If you chance it, all tracks will automatically be updated.
You see 2 fields: WorkRelational and Work.
As you might have guessed Work is a "normal"= non-relational field and WorkRelational is defined as "Store one value for each album"
If I edit a cell and change No. 2 to No. 22 I get
In case of Work only the selected cell (blue) is changed.
In case of WorkRelational I changed only 1 cell but all automatically this is applied to the other cells in this album as well.
As the scope of the relational field is album (album title and album artist are the same) only the values of WorkRelational in the first album are changed. The second album remains unchanged.
Note that in my case album is equivalent to composition.
If an album would contain 2 compositions using the relational field in the example above would yield identical names for the both of them.
Inherent to tagging using internet databases is that the result depends on the database used.
Don’t be surprised if you get “String quartet op.1” and “Streichquartett op. 1”
It would be nice if the same compositions would have the same name.
Obvious a relational field tied to the album won’t do the job.
What about Series. I don’t use it in audio and it is the scope of a relational filed.
Set WorkRelational to “Store one values for each series” and populate it with the opus.
This works, all the works with the same opus number gets the same value for WorkRelational the moment I type a value in any cell.
It works a bit too good.
All classical composers starts to write and to publish so there are many opuses 10.
Let’s make a unique key by combining composer and opus by using an expression
Now it works properly.
Well it doesn't.
All those modernist without a decent opus number defy this mechanism.
Add the composition to the key if the Opus field is empty.
Finally there, composer + opus generate a unique key and if the opus is missing the combination composer + work takes over.
At least I thought so until one day I had a look at Brahms opus 79.
It consists of 2 rhapsodies, no. 1 and no. 2 but as they do have the same key and both are called no. 1.
A logical but undesired consequence of having the same value in Series.
This can be solved by making something like Brahms_Op. 79/1 and 2 so distinct keys or just call the both of them Rhapsodies and differentiate in the movement between the two.
Once you have your unique key, adding new performances of a composition already in the library is a breeze. Just fill in the appropriate value in Series and work, year and opus are automatically populated with the right values.
This enforces uniformity, what is the same is spelled the same.
However, one must be very careful assigning a unique value to the key otherwise you ends up with highly uniform but useless data.
If you populate Series using a formula there is a nasty bug in JRiver destroying the tags completely.
Generating the key in Series using a formula like the one above gives you
Obvious all the information in Opus and Work is cleared in the first tracks having the same key in each CD
Posted the problem in the JRiver forum but without luck.
As shown in the examples above, it you change the value in one relational field, all tracks will be changed automatically.
Instead of typing, you can also use a formula to populate the field.
This of course works the same, all fields having the same key in Series will be updated.
What happens if you do a multi select on a relational field?
If you just type, nothing special will happen.
If you do a multi select and paste a formula:
The result will be like this
It took a while before I grasped it.
The formula populates the first field.
All other fields are updated.
Then formula is applied to the second already updated field. This again will update all other relational fields. And so on.
The formula is as often executed as there are selected fields.