Author Topic: Recommendations for program to replace/append multi value metadata ?  (Read 572 times)

alec.tron

  • Sr. Member
  • ****
  • Posts: 405
Heya,
one workflow I have yet to find a good solution for that neither Musicbee nor Foobar can do (afaik - MB: http://getmusicbee.com/forum/index.php?topic=20478.0 , For foobar I use foo_masstagger for similar things, which works mostly, but things get tricky/impossible when it comes to multi value metadata on flac files with that as well...).

I often find myself wanting to append/remove/re-order multi-value metadata; mostly in Genre or Artist field...
For a practical example - I have (on multiple files, lets's say 2 mp3s w TCOn field, queried through mutagen python module):
Genre file 1:
TCON': TCON(encoding=<Encoding.LATIN1: 0>, text=[u'Metal', u'Drum n Bass', u'Dubstep'])
Genre file 2:
TCON': TCON(encoding=<Encoding.LATIN1: 0>, text=[u'Punk', u'Drum n Bass'])


There's 2 operations I'd love to do (ideally on multiple files, which might have different and/or differently ordered tags, which complicates things further...):

1)
append value at specific position.
eg:
In the above case, I would like to append 'Rock' at position 1.
So the result would be:
Genre file 1:
TCON': TCON(encoding=<Encoding.LATIN1: 0>, text=[u'Rock', u'Metal', u'Drum n Bass', u'Dubstep'])
Genre file 2:
TCON': TCON(encoding=<Encoding.LATIN1: 0>, text=[u'Rock', u'Punk', u'Drum n Bass'])

2)
Search for a value, and inject/remove another value:
eg:
In the above case, I would like to replace/add 'Breakcore' behind 'Drum n Bass'.
So the result would be:
Genre file 1:
TCON': TCON(encoding=<Encoding.LATIN1: 0>, text=[u'Rock', u'Metal', u'Drum n Bass', u'Breakcore', u'Dubstep'])
Genre file 2:
TCON': TCON(encoding=<Encoding.LATIN1: 0>, text=[u'Rock', u'Punk', u'Drum n Bass', u'Breakcore'])


I haven't tried mp3tag and some of the other mostly mp3 editors over the last years - does anyone know of one that can do the above (on multiple files [on mp3 = fake multi value fields, and flac = true multi value fields] - which might have different tags/ordered tags even...?)

Cheers.
c.
Last Edit: January 07, 2017, 04:37:49 AM by alec.tron

alec.tron

  • Sr. Member
  • ****
  • Posts: 405
One of the foobar component devs had a good way & syntax to use foobars' auto-fill dialogue for correct multi-value metadata search & replace handling, in case anyone is interested to do the same.
 
i.e., use :
"Other"
and:
$replace(%genre%,', ','; ','genreString','genreString; appended genreString')

this injects "appended genreString" after "genreString" correctly as a multi value tag into mp3s as well as flac files.

c.

theta_wave

  • Hero Member
  • *****
  • Posts: 582
What you are asking is pretty straightforward with regex.  It can be accomplished with any tagging or media player software that supports it.  Both MP3Tag and Musicbee fortunately do.  I don't know about Foobar2k because I don't really use it at all.  I'll be shocked if Foobar2k doesn't support regex.

** For adding the genre "Rock, " at the beginning of other genres (postition 1): Metal, Indie, etc > Rock, Metal, Indie, etc

Musicbee: Musicbee > Tools > Tagging Tools > Search and Replace (I hotkeyed mine to CTRL+SHIFT+R)

1) search for: (.*)
2) in field: Title
3) replace with: Rock, $1
4) search criteria is a regular expression [checked]


MP3Tag: quick action > replace with regular expression

1) field: TITLE
2) regex: (.*)
3) replacement expression: Rock, $1

** For adding Breakcore behind Drum and Bass: Foo, Drum n Bass, blah > Foo, Breakcore, Drum n Bass, blah

Musicbee:
1) Same as above
2) (^.*)(Drum\sn)(.*$)
3) $1, Breakcore, $2$3
4) Same as above

alec.tron

  • Sr. Member
  • ****
  • Posts: 405
Sweet, will try it out now with Regex being available in Musicbee.
The foobar way works but is a tad cumbersome. Regex syntax is still breaking my brains though... so will see if I can make sense of the above :D
Churs.
c.

theta_wave

  • Hero Member
  • *****
  • Posts: 582
Sweet, will try it out now with Regex being available in Musicbee.
The foobar way works but is a tad cumbersome. Regex syntax is still breaking my brains though... so will see if I can make sense of the above :D
Churs.
c.
The regex feature in Musicbee's native search and replace was there before Steven added $rxreplace and $rxsplit functions.  I started using it over a month ago to make small changes to tags while I've used mp3tag for years to make large changes.  Good luck!

On a side note, hiccup made a regex topic: http://getmusicbee.com/forum/index.php?topic=20952.0

If you have any regex questions pertaining to Musicbee, it would probably be best to ask them there in the future.