For using Disc vs CD based on media type, i will explain the part to modify. Look at this code :
$if($gt(%totaldiscs%,1),
$if($and(%_discsubtitleForFilename%,$eq(%_showDiscSubtitle%,1)),
$if($eq(%_useSubDiscFolder%,1),/,[)CD%discnumber%~%_discsubtitleForFilename%$if($eq(%_useSubDiscFolder%,1),/,]/),
$if($eq(%_useSubDiscFolder%,1),/,[)CD%discnumber%$if($eq(%_useSubDiscFolder%,1),/,]/)
)
)/
So translation in plain english :
If (there is more than one disc) {
if (disc subtitle is set AND user set to show subtitle) {
if (user set to use subfolder for disc) {
add "slash" (to indicate a folder)
} else {
add "opening bracket" (So we have [CD])
}
add "CD" + disc number + "~" + disc subtitle
if (user set to use subfolder for disc) {
add "slash" (to indicate a folder)
} else {
add "closing bracket" (So we have [CD])
}
} else {
if (user set to use subfolder for disc) {
add "slash" (to indicate a folder)
} else {
add "opening bracket" (So we have [CD])
}
add "CD" + disc number
if (user set to use subfolder for disc) {
add "slash" (to indicate a folder)
} else {
add "closing bracket" (So we have [CD])
}
}
As you see, we use CDx or CDx~subtitle for folder naming. So what we need is to check if it’s a vynil, and change CDx/CDx~subtitle to Discx/Disc~subtitle when necessary.
Original :
$if($eq(%_useSubDiscFolder%,1),/,[)CD%discnumber%~%_discsubtitleForFilename%$if($eq(%_useSubDiscFolder%,1),/,]/),
$if($eq(%_useSubDiscFolder%,1),/,[)CD%discnumber%$if($eq(%_useSubDiscFolder%,1),/,]/)
Transformed to use CD/Disc :
$if($eq(%_useSubDiscFolder%,1),/,[)$if($in(%media%,Vinyl),Disc,CD)%discnumber%~%_discsubtitleForFilename%$if($eq(%_useSubDiscFolder%,1),/,]/),
$if($eq(%_useSubDiscFolder%,1),/,[)$if($in(%media%,Vinyl),Disc,CD)%discnumber%$if($eq(%_useSubDiscFolder%,1),/,]/)
CD%discnumber% get replaced by $if($in(%media%,Vinyl),Disc,CD)%discnumber%
So before it was simply write CDx, and after :
if (there is Vinyl in media type) {
write Discx
} else {
write CDx
}
Sorry if it’s a bit long, but i think explaining Foobar scripting in c++ like pseudo code is good for better understanding.
For disc numbering, yeah it’s possible, i will post you the solution later.
For separate live album, i’m not sure. If there is tag on metabrainz database to handle this, yes it’s possible, i will look into it.
For vinyl numbering, yes it’s a problem. My idea was to check if media type is vinyl AND if vinyl numbering is not present, then take the disc number, replace with the letter at this position in alphabet (so disc 1 track 1 become disc A1, disc 2 track 1 become B1 etc…), but there is no function to transform number to letter position in alphabet (ah ah we’re just using some basic scripting language, it’s not c++ :D)