# Multiple values: Mp3tag & Foobar2000

**URL:** https://community.mp3tag.de/t/multiple-values-mp3tag-foobar2000/8307
**Category:** Support
**Created:** [April 28, 2009, 7:04am UTC](https://community.mp3tag.de/t/multiple-values-mp3tag-foobar2000/8307 "2009-04-28T07:04:41Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Harm](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/h/b4bc9f/32.png) [@Harm](https://community.mp3tag.de/u/Harm)
#### Post date: [April 28, 2009, 7:04am UTC](https://community.mp3tag.de/t/multiple-values-mp3tag-foobar2000/8307/1 "2009-04-28T07:04:41Z")

</div>

I have a problem regarding the use of multiple values in Mp3tag (v2.43) en Foobar2000 (v0.9.6.5).  
In Foobar I've add multiple values in the Publisher field (mp3 file with ID3v2.4) and they show up in Mp3tag, separated by a double backslash (\\), so this seems to work well. If I try it the other way around, it doesn't seem to work at all: Foobar seems to recognise the first value (what is before the double backslash I entered in Mp3tag), but not the others. So it seems Mp3tag saves them using a separator that Foobar cannot recognise. Is this due to a problem (bug?) in Mp3tag or in Foobar? And more important: is there a work around?

(I've also posted this question in the Foobar discussion forum: [http://www.hydrogenaudio.org/forums/index....t=0#entry630379](http://www.hydrogenaudio.org/forums/index.php?showtopic=71521&st=0#entry630379) )

---

<div class="post-metadata">

### Author: ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)
#### Post date: [May 2, 2009, 5:05am UTC](https://community.mp3tag.de/t/multiple-values-mp3tag-foobar2000/8307/2 "2009-05-02T05:05:04Z")

</div>

This seems to be an [issue](http://www.hydrogenaudio.org/forums/index.php?showtopic=71571) with foobar2000 as you've correctly identified.

---

<div class="post-metadata">

### Author: ![incifinci](https://community.mp3tag.de/user_avatar/community.mp3tag.de/incifinci/32/6526_2.png) [@incifinci](https://community.mp3tag.de/u/incifinci)
#### Post date: [June 11, 2015, 10:32am UTC](https://community.mp3tag.de/t/multiple-values-mp3tag-foobar2000/8307/3 "2015-06-11T10:32:29Z")

</div>

I use the next workaround. I use for writing only mp3tag, but I must to use foobar too, for calculating replay gain and bpm (bit per minute) values, and writing them in tags. Because of foobar bugs with multiple values of MP3 tags, in these files I use " / " (without quote) as a limiter between values in COMPOSER, ARRANGER, ARTIST, LYRICIST, CONDUCTOR, PUBLISHER tags.

When I must to use foobar for writing tags:  
FLAC: absolutly no probleme, of course.  
MP3: I have an action in mp3tag to change all 6 (COMPOSER, ARRANGER, ARTIST, LYRICIST, CONDUCTOR, PUBLISHER) "fals" limiters (" / ") and 2 (GENRE, LANGUAGE) real limiters ("\\") to temporary else (i use "_DPL_"). After I did writings of RG and BPM in foobar, change them back. Important: manually **refreshing** in mp3tag after changes in tags with foobar!

These mp3tag actions:  
_Merging MP3 tags before foobar.mta_

```
[#0]
   T=5
   F=COMPOSER
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%composer%, / ,_DPL_),%composer%)
   
   [#1]
   T=5
   F=ARRANGER
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%arranger%, / ,_DPL_),%arranger%)
   
   [#2]
   T=5
   F=LYRICIST
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%lyricist%, / ,_DPL_),%lyricist%)
   
   [#3]
   T=5
   F=ARTIST
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%artist%, / ,_DPL_),%artist%)
   
   [#4]
   T=5
   F=CONDUCTOR
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%conductor%, / ,_DPL_),%conductor%)
   
   [#5]
   T=5
   F=PUBLISHER
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%publisher%, / ,_DPL_),%publisher%)
   
   [#6]
   T=8
   F=GENRE
   1=_DPL_
   
   [#7]
   T=8
   F=LANGUAGE
   1=_DPL_

```

_Changing MP3 tags back after foobar. FIRST REFRESH!.mta_

```
[#0]
   T=4
   F=TRACK
   1=(\\\\d{1,3}).*
   2=$1
   3=0
   
   [#1]
   T=5
   F=COMPOSER
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%composer%,_DPL_, / ),%composer%)
   
   [#2]
   T=5
   F=ARRANGER
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%arranger%,_DPL_, / ),%arranger%)
   
   [#3]
   T=5
   F=LYRICIST
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%lyricist%,_DPL_, / ),%lyricist%)
   
   [#4]
   T=5
   F=ARTIST
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%artist%,_DPL_, / ),%artist%)
   
   [#5]
   T=5
   F=CONDUCTOR
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%conductor%,_DPL_, / ),%conductor%)
   
   [#6]
   T=5
   F=PUBLISHER
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%publisher%,_DPL_, / ),%publisher%)
   
   [#7]
   T=5
   F=GENRE
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%genre%,_DPL_,\\\\),%genre%)
   
   [#8]
   T=5
   F=LANGUAGE
   1=$if($eql(%_tag%,'ID3v2.3'),$replace(%language%,_DPL_,\\\\),%language%)
   
   [#9]
   T=1
   F=_FIELDNAME
   1=2
   2=

```

(A FooBar képtelen kezelni a többszörös mezőket, még az engedélyezett hármat se (előadó, szerző, szövegíró). Megoldás: Ha FooBar-ban kényszerülök címkét írni, előtte lecserélni a 6 személy (COMPOSER, ARRANGER, ARTIST, LYRICIST, CONDUCTOR, PUBLISHER) "ál"-határolóit (" / ") és a 2 valódi határolót (GENRE, LANGUAGE) egyaránt ideiglenes másra, ugyanis íráskor a FooBar valódira-rosszra (";") cseréli, s ekkor adatok tűnnek el. Van rá műveletem (az ideiglenes határoló "\_DPL\_").)

---

<div class="post-metadata">

### Author: ![incifinci](https://community.mp3tag.de/user_avatar/community.mp3tag.de/incifinci/32/6526_2.png) [@incifinci](https://community.mp3tag.de/u/incifinci)
#### Post date: [June 11, 2015, 4:39pm UTC](https://community.mp3tag.de/t/multiple-values-mp3tag-foobar2000/8307/4 "2015-06-11T16:39:23Z")

</div>

I wrote:

> [@](#):
>
> When I must to use foobar for writing tags:  
> FLAC: absolutly no probleme, of course.

It was a mistake: there **ARE** problems with handling FLAC tags in foobar, too. So I use (similar as above) these 2 actions in mp3tag:

_Merging FLAC tags before foobar.mta_

```
[#0]
    T=8
    F=COMPOSER
    1=_DPL_
    
    [#1]
    T=8
    F=ARRANGER
    1=_DPL_
    
    [#2]
    T=8
    F=LYRICIST
    1=_DPL_
    
    [#3]
    T=8
    F=ARTIST
    1=_DPL_
    
    [#4]
    T=8
    F=CONDUCTOR
    1=_DPL_
    
    [#5]
    T=8
    F=PUBLISHER
    1=_DPL_
    
    [#6]
    T=8
    F=GENRE
    1=_DPL_
    
    [#7]
    T=8
    F=LANGUAGE
    1=_DPL_

```

_Changing FLAC tags back after foobar. FIRST REFRESH!.mta_

```
[#0]
    T=5
    F=PUBLISHER
    1=$if($and($eql(%_extension%,flac),$grtr($len($meta(organization)),0),
 $not($grtr($len($meta(publisher)),0))),
   $meta_sep(organization,\\\\),$if($eql(%_extension%,flac),$meta_sep(publisher,\\\\),%publisher%))
    
    [#1]
    T=5
    F=ORGANIZATION
    1=$if($and($eql(%_extension%,flac),$eql($meta(organization),$meta(publisher))),,
 $meta_sep(organization,\\\\))
    
    [#2]
    T=5
    F=COMPOSER
    1=$if($eql(%_extension%,flac),$replace(%composer%,_DPL_,\\\\),%composer%)
    
    [#3]
    T=5
    F=COMPOSER
    1=$if($eql(%_extension%,flac),$replace(%composer%, / ,\\\\),%composer%)
    
    [#4]
    T=5
    F=ARRANGER
    1=$if($eql(%_extension%,flac),$replace(%arranger%,_DPL_,\\\\),%arranger%)
    
    [#5]
    T=5
    F=ARRANGER
    1=$if($eql(%_extension%,flac),$replace(%arranger%, / ,\\\\),%arranger%)
    
    [#6]
    T=5
    F=LYRICIST
    1=$if($eql(%_extension%,flac),$replace(%lyricist%,_DPL_,\\\\),%lyricist%)
    
    [#7]
    T=5
    F=LYRICIST
    1=$if($eql(%_extension%,flac),$replace(%lyricist%, / ,\\\\),%lyricist%)
    
    [#8]
    T=5
    F=ARTIST
    1=$if($eql(%_extension%,flac),$replace(%artist%,_DPL_,\\\\),%artist%)
    
    [#9]
    T=5
    F=ARTIST
    1=$if($eql(%_extension%,flac),$replace(%artist%, / ,\\\\),%artist%)
    
    [#10]
    T=5
    F=CONDUCTOR
    1=$if($eql(%_extension%,flac),$replace(%conductor%,_DPL_,\\\\),%conductor%)
    
    [#11]
    T=5
    F=CONDUCTOR
    1=$if($eql(%_extension%,flac),$replace(%conductor%, / ,\\\\),%conductor%)
    
    [#12]
    T=5
    F=PUBLISHER
    1=$if($eql(%_extension%,flac),$replace(%publisher%,_DPL_,\\\\),%publisher%)
    
    [#13]
    T=5
    F=PUBLISHER
    1=$if($eql(%_extension%,flac),$replace(%publisher%, / ,\\\\),%publisher%)
    
    [#14]
    T=5
    F=GENRE
    1=$if($eql(%_extension%,flac),$replace(%genre%,_DPL_,\\\\),%genre%)
    
    [#15]
    T=5
    F=LANGUAGE
    1=$if($eql(%_extension%,flac),$replace(%language%,_DPL_,\\\\),%language%)
    
    [#16]
    T=1
    F=_FIELDNAME
    1=2
    2=

```

Caution: there are **NO line breaks after commas!**

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [June 13, 2015, 4:30pm UTC](https://community.mp3tag.de/t/multiple-values-mp3tag-foobar2000/8307/5 "2015-06-13T16:30:44Z")

</div>

> [@incifinci](#):
>
> ... problems with handling FLAC tags in foobar ... Because of foobar bugs with multiple values of MP3 tags ...

I am not aware of file resp. tag-type related problems between Mp3tag and foobar, please elaborate.

DD.20150613.2030.CEST

---

<div class="post-metadata">

### Author: ![incifinci](https://community.mp3tag.de/user_avatar/community.mp3tag.de/incifinci/32/6526_2.png) [@incifinci](https://community.mp3tag.de/u/incifinci)
#### Post date: [June 13, 2015, 7:23pm UTC](https://community.mp3tag.de/t/multiple-values-mp3tag-foobar2000/8307/6 "2015-06-13T19:23:38Z")

</div>

> [@DetlevD](#):
>
> I am not aware of file resp. tag-type related problems between Mp3tag and foobar, please elaborate.
> 
> DD.20150613.2030.CEST

Yes, I was not enough exact. Really, problems are mostly with handling MP3 tags in foobar, but...

When I get a new FLAC file:

1. Fill all tags in Mp3tag.
2. Merge those 6+2 tags with actions.
3. In foobar, calculate and fill in tags RG and BPM
4. In foobar convert files to mp3 (VBR V3, ~175 kbps - it's good enough for walking) - I need them in Sansa clip for walking (with mp3: more music in same disk size, plus more accu time).
5. Again in Mp3tag: change back all merged fields, both in FLAC and MP3 files.

ID3v2.3 standard enable multiple values only in few fields. For example, in GENRE, LANGUAGE, ARRANGER, PUBLISHER - no. But, really, we MUST to use multiple genres, languages, etc.

(Yes, I know: ID3v2.4 is a little better - but it is not popular, many apps and clips can not handle it.)

In FLAC no problem with multiple values - but we yet need mp3 encoding, for example, I need it because of my Sansa clip. I must and want use multiple values, and of course, I want exactly identical tags in FLAC and MP3 variant of the same music file.

Yes, theoretically, foobar must not to manage non-standard multiple values. But really, in life, we must to use them. So, in fact, foobar MUST to manage them.

And so: I have a FLAC file with tags...  
Genre1: **tango**  
Genre2: **latin**  
Genre3: **pop**

If I convert this FLAC in foobar to MP3, without merging first these tags, the resulting MP3 file, looking in Mp3tag, will have tags...  
Genre1: **tango;latin;pop**  
Genre2:  
Genre3:

But if I use this merger/divider method, all will OK with mp3 multiple tags, both in Mp3tag and foobar, too.

And, of course, after writing ANY TAG of a FLAC file in foobar, foobar replaces value from PUBLISHER tag to ORGANISATION tag. These actions manage this probleme, too.

And, after writing ANY TAG of an MP3 file in foobar, foobar replaces simple track numbers (4) to complex form (4/17) - but, first, I do not like it; second, FLAC and MP3 tags will different. These actions manage this probleme, too.

---

<div class="post-metadata">

### Author: ![incifinci](https://community.mp3tag.de/user_avatar/community.mp3tag.de/incifinci/32/6526_2.png) [@incifinci](https://community.mp3tag.de/u/incifinci)
#### Post date: [May 13, 2020, 1:56pm UTC](https://community.mp3tag.de/t/multiple-values-mp3tag-foobar2000/8307/7 "2020-05-13T13:56:06Z")

</div>

**Good news** : now Foobar (1.5.4 final) also sees/manages multiple TPUB and TLAN fields in mp3 files (ID3v2.3). If we fill in a new (single) field in Foobar (e.g. BPM or RG), the existing multiple fields will not be "corrupted" either (delimiter will not changed to semicolon). The only residual inconvenience: if we fill in a multiple field in Foobar (typical case: copying fields during FLAC\> MP3 conversion).

However, one interesting thing: when (after file conversion in Foobar) i separate the temporarily merged multiple fields (in the FLAC files), **$replace(%composer%,\_ DPL \_,\\)** is not enough. In the Extended Tags Panel Mp3tag now sees: **composer1** = **first\\second**. Another plus operation is required (after): **split field by separator "\"**. _(A re-save would be enough, but it can not be solved with an action.)_ So, something has changed in the way, Mp3tag works.

Later: [Mp3tag v3.06f](https://community.mp3tag.de/t/455) solves the \\ problem.

---

<div class="post-metadata">

### Author: ![system](https://community.mp3tag.de/uploads/default/original/2X/c/ce7035d426cb755a7916793326d23b465222a407.png) [@system](https://community.mp3tag.de/u/system)
#### Post date: [November 10, 2025, 11:06am UTC](https://community.mp3tag.de/t/multiple-values-mp3tag-foobar2000/8307/8 "2025-11-10T11:06:07Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
