Conditional Move action


#1

Hi,

Q: Can I make an action group conditional upon the current value of a tag field?

Requirement

I wish to eliminate a tag field but to archive it in case of future need.
So far I have constructed an action group consisting of:
Guess values "%comment itunnorm%":%mixartist%
Remove fields "COMMENT ITUNNORM"

This works fine. It deletes the data in the "COMMENT ITUNNORM" field after copying it to the MIXARTIST field (which I do not use). However, given that I need to do this to every track in my library, and to all subsequent tracks that I add, it gives me a control problem. i.e. if I accidentally rerun this action group on a track already processed then I will lose the data (COMMENT ITUNNORM) that I am trying to archive.
The most obvious way around this would be to make the action group conditional upon the value of "COMMENT ITUNNORM" not being null.

Background

iTunes generates "Sound Check" data for tracks that it rips, whether or not you wish to make use of it. I have found that iTunes is generating some very odd values that are leading to very large volume differences upon playback (I actually play tracks via "SlimServer" which also uses this data). I don't believe that I will ever need this data (which iTunes stores in the ITUNNORM tag field) but don't wish to eliminate it entirely from thousands of tracks in case in proves of some value at a later date.
(NB iTunes also has an alternative volume adjustment feature which I intend to use in preference to this SoundCheck data.)


#2

Sometimes I fill CDDBID with data from DISCID, but only if DISCID contains some data.
If there is no DISCID data, then CDDBID remains unchanged.

Action type: Format value
Field: CDDBID
Formatstring: $if($grtr(%DISCID%,),%DISCID%,%CDDBID%)

You may use this as an example and adapt it to your needs.

DD.20061219.1500


#3

Just a note:
$grtr() is not needed.
$if(%DISCID%,%DISCID%,%CDDBID%) has the same result.


#4

Many thanks, guys. :slight_smile:

Just for completeness (especially for anyone reading this post in furure) these are the action groups that I now have:

1. "Archive ITUNNORM"
1.1 Action type: Format value

 <i>Field: </i> MIXARTIST
 <i>Formatstring:</i> $if(%comment itunnorm%,%comment itunnorm%,%mixartist%)

1.2 Action type: Remove Fields

 <i>Field: </i> COMMENT ITUNNORM 

2. "Restore ITUNNORM"
2.1 Action type: Format value

 <i>Field: </i> COMMENT ITUNNORM 
 <i>Formatstring:</i> $if(%mixartist%,%mixartist%,%comment itunnorm%)

2.2 Action type: Remove Fields
Field: MIXARTIST


#5

Oh, you could even use $if2(%comment itunnorm%,%mixartist%)
It's the same as $if(%comment itunnorm%,%comment itunnorm%,%mixartist%)

About Sound check values:
I don't really think they are worth keeping.
If you ever want to bring your music to the same volume, you should use replaygain. It's more accurate and also offers album gain.

And if you ever need Sound check values, you can use Mp3tag to fill the sound check tags with the more accurate replaygain volumes.