vinyl track numbers

I'm using Discogs Pone script to tag my files. For vinyl releases I get A1, A2 etc as track numbers. As I next try to rename my files according to tags with this string:

%artist% - %album% (%year%) '['$upper(%_Extension%)']' '['%comment%']'$num(%track%,2). %title%

mp3tag gives files such filenames like 00.xx, 00.yy. It messes up the numbering. I would like to either to change track number for vinyl releases to digits such as 01, 02... or to keep the vinyl numbering with letters.

How can I do that?

Either you don't use the $num(%track%,2) statement - this leaves the contents of track as it is and does not transform the number into a numeric value.
Just a warning: TRACK is supposed to be numeric and A1 or 1A is not numeric ...
So: I would use a user-defined field for the side letter and put the letter there.
You could then rename the files like this:
%artist% - %album% (%year%) '['$upper(%_Extension%)']''['%comment%']'[%side_letter%]$num(%track%,2). %title%
The square brackets make the contents of %side_letter% appear only if there is contents.

This numbering scheme will lead to 2 tracks with the number 1 (and so on) in ordinary players. Hard discs do not know anything about turning over the LP to listen to the other side ...
For the filename

And how would I do that? I've barely set up what I have now.

Load the files
Use a filter
"$left(%track%,1)" IS "A"
for the tracks of the A side
Select the files
Press Alt-T to open the extended tags dialogue.
In this dialogue, click the "new" button.
Enter as name: side_letter (or any other name you like for that field - this creates the user-defined field)
Enter A as value
Click OK until the data is saved.
For the B-sides do the corresponding thing ...
"$left(%track%,1)" IS "B"
and so on.

Thanks. I tried your method, it doesn't work for me. probably because I've changed track value. I've set the Discogs script so that it writes vinyl track numbers in Track field. So now I can convert files using string:
%artist% - %album% (%year%) '['$upper(%_Extension%)']' '['%comment%']'\%track%. %title%

And for "regular", non-vinyl releases I can use the old string. How can I simplify this? Is there a way to assigne actions for each string?

TRACK is a numeric field that may contain the / as only exception.
So if you have "track numbers" like A1, A2 etc, you might come across programs that hickup on that. So I would not favour an approach that leaves the TRACK contents as it is with letters in it and construct a $if(...) statement to cater for vinyls and other releases.
That is why I proposed the idea to move the "A" or "B" to a user-defined field.
You would have to update the TRACK field to get an all-numeric contents, though.

If you then use
[%side_letter%]$num(%track%,2). %title%

then this will cater for both cases: CDs and vinyls as the %side_letter% part will appear in the filename only if the field %side_letter% has been filled - which should be the case only for vinyls.
Try it with a single file first.

BTW: once you have distributed your files into the correct number of folders, it is not necessary to rename the whole (or partical) path - on the contrary: if you want to rename the folder, you should use a "Format value" action for _DIRECTORY only as otherwise you might end up with numerous empty folders or folders that contain only the non-music files as they were not renamed.

You can combine both cases into one formatstring ...


... but you should not do it ...
because a track number is in general a numeric value.

Better you store the vinyl media related play side property, "Side A" resp. "Side B", into its own dedicated tag-field.


I've made my TRACK field numeric, and I've stumbled upon another problem. I store the letter in a separate field and track number in TRACK field, so when I try rename files with the string
[%side_letter%]$num(%track%,2). %title%

I end up not with A1, B2 etc, but with A1, B14, C21 etc, the numbering is going not according to the letter. It is so much trouble, I gave up on this and settled with the old ways when all releases should have numeric track numbers.

Thanks for the tip on renaming folders and files, that was a big improvement over my old method.

THis is the basic problem with the much bigger space that is available on the current storage media and the compromises that the sizes of CDs (with multiple CDs for a collection) or vinyls with 2 sides required.
I do not think that the consequitve numbers originate in MP3tag unless you have used the numbering wizard - and that does not know anything about LP sides. but can react with a counter reset only at folder boundaries.
So you might need to move the files to separate folders for the individual sides.
This should now be easy as you have supplied the side letter:
You may now rename the files to
[%side_letter%][%side_letter%]$num(%track%,2). %title%
using Convert>Tag-Filename
This should create a subdirectory for each side letter originating in the album folder.
You may then run the numbering wizard again.
And then rename the files again with COnvert>Tag-Filename, this time without the path component:
[%side_letter%]$num(%track%,2). %title%
Now everything should be fine.

If you do not want to get the extra folders, you could have to proceed like this:
Sort the files first by TRACK and then by ALBUM - click on the column headers for that in that sequence. THis should sort the files by album and by number.
Now use the filter
%side_letter% IS "A"
This shows all tracks from all albums from side A.
Now use the track numbering wizard with the option "Reset counter for each folder".
This should renumber each file for side A
Now use the filter
%side_letter% IS "B"
and apply the track numbering wizard again.
Now all selected files are numbered for Side B.
Remove the filter and rename all files with
[%side_letter%]$num(%track%,2). %title%

As normal players do not know anything about side A and side B, they rely on the track number. This may lead to confusion as by now you have 2 number 1 tracks and so on for the vinyl albums....
We live in an imperfect world...

This formatstring ...

[%side_letter%]$num(%TRACK%,2)'. '%TITLE%

... cannot produce output like ... 'A1'
... because of the function call ...


... output like ... 'A01' or 'A02' or 'B01' or 'B09' or 'B10' ... would be expected to be correct.

If you would treat 'Side A' and 'Side B' ...
virtually as 'CD 1' and 'CD 2' ... or 'Side 1' and "Side 2', ...
then you may count the tracknumbers from 101 to 199 respectively from 201 to 299.

If you need the character back from the track value, ...
then apply the formula ...


which gives ...
... for track=100..199 ==> 'A'
... for track=200..299 ==> 'B'
... or store the play side name forever into a dedicated tag-field.

And further on ...
it might be helpful to read forum posts having the word "vinyl"


Well, you can imagine the amount of work if you need to rename this way thousand folders - it'll take weeks. Thanks for the tutorial, I'll stick to simple numeric numbering of tracks.


I've tried the search, but I haven't found anything useful, that's why I created this thread. Maybe someone will also find this useful.

Actually, the creation of folders will be done by MP3tag - virtually in minutes if not seconds.
Simply load all the files, apply my suggested filter and renaming pattern and you are done.

Perhaps you try it with one album first (or a copy of that) to see if this looks like what you want.

afaik, Pone's script uses TRACKPOSITION tag to store original tracknumber as it's written on discogs by default (though you might always change it in settings file and re-generate scripts).

so, simply for vinyl releases you just need to use this tag for renaming, e.g.:


for better renaming options you can add some $if where you'll check if there is anything in %TRACKPOSITION% and if not just use regular %TRACK%, that's it.


$if($eql(%TRACKPOSITION%,),%TRACKPOSITION%,$num(%TRACK%,2)) - %ARTIST% - %TITLE%.mp3

make sure to test this before use!