Rename mixed FLAC/MP3 files into folders, Was: Here is what I am wanting to do... |
![]() ![]() |
Rename mixed FLAC/MP3 files into folders, Was: Here is what I am wanting to do... |
Dec 2 2009, 09:22
Post
#1
|
|
|
Group: Members Posts: 12 Joined: 24-July 05 Member No.: 23489 |
So here is what I am wanting to do... It doesn't seem like much in my eyes, but I cannot seem to find the best way to do it.
I have flac and mp3 files intermingled in a unsorted folder. I want a program to separate the two into separate directories according to their extension and then by their tag data. So here is what it looks like: Input: C:\unsorted folder\random subdirectories\mp3 and flac files Output: C:\music - mp3\file directories according to tag data\mp3 files C:\music - flac\file directories according to tag data\flac files Is there a program that will get this done? This post has been edited by Seufari: Dec 2 2009, 09:23 |
|
|
|
Dec 2 2009, 10:36
Post
#2
|
|
![]() Group: Super Moderator Posts: 4887 Joined: 12-August 04 From: Exeter, UK Member No.: 16217 |
foobar could do this for you, or (I expect) MP3Tag.
I'll deal with foobar as I don't know MP3Tag (although I think the syntax is the same/similar). You would throw all files into a playlist, and then choose to move or copy them using a file name pattern like: Music - %codec%\[%album artist%\][%album%\][Disc %discnumber%\][%tracknumber% - ]%title%$if($meta(album artist),' ('$meta(artist)')',) ... choosing a destination folder of C:\. You will find the file operations in the context menu of the playlist (select all files, right click, and choose "File Operations" > "Move To". There is probably a guide here that explains the process in depth further. Use the preview in the dialogue to ensure that the files will be renamed as you hope. Edit: The files will be named according to their tags. You must ensure that your tags are accurate before you perform the operation. It's always useful to have accurate tags in any case. "Various Artists" albums should have the ALBUM ARTIST "Various Artists". Albums with only one artist should not use ALBUM ARTIST, only ARTIST. The file name pattern above is (apart from the initial folder) the string that I use, and will result in file paths like so: Music - MP3\Pixies\Doolittle\01 - Debaser.mp3 Music - FLAC\Eels\Blink Lights And Other Revelations\Disc 1\01 - Theme From Blinking Lights.flac Music - FLAC\Various Artists\8 Mile Soundtrack\01 - Lose Yourself (Eminem).flac Music - MP3\Various Artists\CBeebies - The Official Album\Disc 2\01 - Mambo No 5 (Bob The Builder).mp3 This post has been edited by Synthetic Soul: Dec 2 2009, 10:44 -------------------- I'm on a horse.
|
|
|
|
Dec 2 2009, 10:39
Post
#3
|
|
|
Group: Members Posts: 945 Joined: 6-September 04 Member No.: 16817 |
Pretty sure mp3tag can do a similar thing.
|
|
|
|
Dec 2 2009, 10:45
Post
#4
|
|
![]() Group: Super Moderator Posts: 4887 Joined: 12-August 04 From: Exeter, UK Member No.: 16217 |
Yes, I very much expect it will, and the OP may be happier to use it if he is happy with his player already.
Personally, I use foobar for playing, tagging, renaming, the lot. -------------------- I'm on a horse.
|
|
|
|
Dec 2 2009, 11:24
Post
#5
|
|
|
Group: Members Posts: 30 Joined: 27-March 07 Member No.: 41926 |
I actually wrote a program in VB.NET to do this for me based on tags after I recovered a load of WMA Lossless files from a dead HDD (the recovery software obviously couldn't find the folder or file names because the MFT was corrupt so they were named "Windows Media Audio (xxxx).wma" where xxxx was a random number). Probably wouldn't be useful for you though.
This post has been edited by DragonQ: Dec 2 2009, 11:24 |
|
|
|
Dec 2 2009, 13:02
Post
#6
|
|
![]() Group: Members Posts: 2296 Joined: 18-May 03 From: Denmark Member No.: 6695 |
You can always use %filename% in correlation with Synthetic Soul's example in foobar2000 if you are unsure if your tags are correct.
-------------------- Can't wait for a HD-AAC encoder :P
|
|
|
|
Dec 2 2009, 17:07
Post
#7
|
|
![]() Group: Members Posts: 512 Joined: 18-January 04 From: bethlehem.pa.us Member No.: 11318 |
IIRC, doesn't %album artist% defer to %artist% if no Album Artist tag exists?
|
|
|
|
Dec 2 2009, 17:28
Post
#8
|
|
|
Group: Members Posts: 12 Joined: 24-July 05 Member No.: 23489 |
Thanks for the quick replys...
QUOTE You will find the file operations in the context menu of the playlist (select all files, right click, and choose "File Operations" > "Move To". Unfortunately my foobar does not have this context menu... When I right click, I get: Remove Crop Sort Cut Copy Utils Add to Playback Queue Open Containing Folder ReplayGain Properties Convert Why is mine different? |
|
|
|
Dec 2 2009, 17:35
Post
#9
|
|
|
Group: Members Posts: 31 Joined: 5-May 06 Member No.: 30424 |
Unfortunately my foobar does not have this context menu... Which version you have installed? File operations came with Version 0.9.5. Latest Version is 0.9.6.9 or 1.0 beta 2a. |
|
|
|
Dec 2 2009, 17:38
Post
#10
|
|
|
Group: Members Posts: 12 Joined: 24-July 05 Member No.: 23489 |
Unfortunately my foobar does not have this context menu... Which version you have installed? File operations came with Version 0.9.5. Latest Version is 0.9.6.9 or 1.0 beta 2a. I have the latest non-beta version... Re-installing... Seems File Operations is not installed by default... This post has been edited by Seufari: Dec 2 2009, 17:38 |
|
|
|
Dec 2 2009, 18:18
Post
#11
|
|
![]() Group: Super Moderator Posts: 4887 Joined: 12-August 04 From: Exeter, UK Member No.: 16217 |
IIRC, doesn't %album artist% defer to %artist% if no Album Artist tag exists? Yes, it does.I use the system - and I believe it is reasonably popular - that relies on ALBUM ARTIST only being there if it is required. Therefore on "normal" albums I set ARTIST only, and on VA albums I set ALBUM ARTIST to "Various Artists" and ARTIST to the track artist. This means that %album artist% will always provide the album artist, but $if($meta(album artist),' ('$meta(artist)')',) will only append the artist name to the track title if ALBUM ARTIST is set. Edit: Perhaps a more robust script may only append the artist if ALBUM ARTIST is present and is different to ARTIST, but I personally don't need to complicate my script further. This post has been edited by Synthetic Soul: Dec 2 2009, 18:23 -------------------- I'm on a horse.
|
|
|
|
Dec 2 2009, 18:28
Post
#12
|
|
|
Group: Members Posts: 2270 Joined: 19-May 08 Member No.: 53637 |
I use pretty much the same system.
I believe you can simplify above. Would adding [%track artist%] to track title column formatting accomplish the same as the if statement? Just FYI terry This post has been edited by tpijag: Dec 2 2009, 18:30 |
|
|
|
Dec 3 2009, 16:25
Post
#13
|
|
![]() Group: Members Posts: 512 Joined: 18-January 04 From: bethlehem.pa.us Member No.: 11318 |
Yes, that's essentially my line of thought, tpijag. I was hoping Synthetic Soul could confirm or deny that.
I actually use the same tagging system (Album Artist iff Artist is not common for all tracks, or release entity -- in the case of Japanese doujin circle releases -- is not the same as the actual artist). However, in my tagging scripts I use something similar to "%album artist% ... [%artist%] ... " This post has been edited by Zarggg: Dec 3 2009, 16:28 |
|
|
|
Dec 3 2009, 16:38
Post
#14
|
|
![]() Group: Members Posts: 2296 Joined: 18-May 03 From: Denmark Member No.: 6695 |
%album artist% will return the ALBUMARTIST field if it's defined! If it's not set, it will rely on the %artist% field.
Adding brackets [ ] around a tag makes it only appear if the tag is set. If a tag is not set, it will return a questionmark "?" instead. There's no such thing as %track artist% - You have %artist%, and this will always return the ARTIST field - Not ALBUMARTIST even if it's set or not. Visiting the foobar2000 forum regarding foobar2000 questions might yield better results - We are a few more than just Synthetic Soul that uses foobar2000 -------------------- Can't wait for a HD-AAC encoder :P
|
|
|
|
Dec 3 2009, 17:12
Post
#15
|
|
![]() Group: Super Moderator Posts: 4887 Joined: 12-August 04 From: Exeter, UK Member No.: 16217 |
Would adding [%track artist%] to track title column formatting accomplish the same as the if statement? Yes, that's essentially my line of thought, tpijag. I was hoping Synthetic Soul could confirm or deny that. Well, I have no idea how long %track artist% has been available, but I must admit I had no knowledge of it, and you are correct: it could simplify my string. I've been using the above string for a while, and I just haven't bothered trying to improve it.It seems that I could change: CODE %title%$if($meta(album artist),' ('$meta(artist)')',) ... to: CODE %title%[' ('%track artist%')'] Thanks for the info. -------------------- I'm on a horse.
|
|
|
|
Dec 3 2009, 17:14
Post
#16
|
|
![]() Group: Super Moderator Posts: 4887 Joined: 12-August 04 From: Exeter, UK Member No.: 16217 |
Edit: Simplify and improve: as it will deal with tracks with ARTIST and ALBUM ARTIST being the same.
Bah! What happened to quick posts being joined! This post has been edited by Synthetic Soul: Dec 3 2009, 17:15 -------------------- I'm on a horse.
|
|
|
|
Dec 3 2009, 17:44
Post
#17
|
|
|
Group: Members Posts: 335 Joined: 12-April 06 Member No.: 29453 |
Mediamonkey also does this (auto-organize) and has some conditional branching you can use to customize the paths/naming for particular tags (or absence of tag).
For example, my rather complex and long 'final resting place' mask: CODE $left(\Media\$upper(<Type>)\$if(<Album Artist>,$if(<Album Artist>=various,_<Album Artist>,$if(<Album Artist>=techno,_<Album Artist>,$if(<Album Artist>=soundtrack,_<Album Artist>,<Album Artist@1>\<Album Artist>))),<Artist@1>\<Artist>)\$if(<Album>,$if(<Year>,<Year> - )<Album> [$upper(<Type>)])\$if(<Track#>,<Track#:2> - )<Artist> - <Title>,230) results in a path like J:\Media\FLAC\A\A Silver Mt. Zion\2000 - He Has Left Us Alone, but Shafts of Light Sometimes Grace the Corner of Our Rooms... [FLAC]\01 - A Silver Mt. Zion - Broken Chords Can Sing a Little.flac -------------------- Last.FM Nodes for your library @ http://build.last.fm/item/356
|
|
|
|
Dec 3 2009, 18:36
Post
#18
|
|
![]() Group: Members Posts: 2296 Joined: 18-May 03 From: Denmark Member No.: 6695 |
So, my sig finally made a point...
%track artist% only returns ARTIST field if it's different from ALBUMARTIST it seems? Well guess that could turn out to be useful some day, but currently... not for me. -------------------- Can't wait for a HD-AAC encoder :P
|
|
|
|
Dec 3 2009, 18:40
Post
#19
|
|
![]() Group: Members Posts: 2296 Joined: 18-May 03 From: Denmark Member No.: 6695 |
It seems that I could change: CODE %title%$if($meta(album artist),' ('$meta(artist)')',) ... to: CODE %title%[' ('%track artist%')'] Just to make it clear, those two formattings are NOT the same! This post has been edited by odyssey: Dec 3 2009, 18:41 -------------------- Can't wait for a HD-AAC encoder :P
|
|
|
|
Dec 4 2009, 17:02
Post
#20
|
|
![]() Group: Super Moderator Posts: 4887 Joined: 12-August 04 From: Exeter, UK Member No.: 16217 |
No. I assume you are referring to the point I made in post #16?
The first will append " (<artist>)" if ALBUM ARTIST has been set to any value. If ARTIST is not set you will get " ()". The second will append " (<artist>)" if ALBUM ARTIST has been set to a value that is different to ARTIST. If ARTIST is not set you will get "" (nothing). It works for my current system, and will cope better with tracks that have both set the same (and even tracks that have no ARTIST tag set, of which I have none). This has also spurred me to make another amendement to cope similarly with a TOTALDISCS value of "1" (I don't want a "Disc N" subfolder if there is only one disc), making my new string: CODE [%album artist%\][%album%\]$ifgreater(%totaldiscs%,1,Disc %discnumber%\,)[%tracknumber% - ]%title%[' ('%track artist%')'] Thanks again to tpijag for the suggestion. -------------------- I'm on a horse.
|
|
|
|
![]() ![]() |
|
Lo-Fi Version | Time is now: 22nd May 2013 - 03:00 |