by [Martin Lemburg] aka [male] ---- current version: 1.0 inspired by: "Tagging MP3 files" [http://mini.net/tcl/3272] ---- [http://195.241.128.75/hup/idtagviewer10.jpg] ---- '''1. Purpose''' The purpose is to (re)view or to edit/change id tags of MP3 files of the id tag standard v1. It is possible to: * edit the id tags of a MP3 file by changing directly in the entry fiels of the id tags area (see 3.) * extract the id tags by a scheme from the path of a MP3 file (directory and filename) * change the case of the file name or the id tags of a MP3 file to the lower, upper case or to first char upper and the rest lower case * prepend the track number to and to strip it from a MP3 file * rename a MP3 file on the base of the id tags of this MP3 file To view id tags of a file you simply have to start the idtagviewer with it: idtagviewer.tcl -file dummy.mp3 To scan a directory (with/without its subdirectories), start the idtagviewer with it: idtagviewer.tcl -directory /usr/mp3/rock/BonJovi idtagviewer.tcl -recursive true -directory /usr/mp3/rock/BonJovi If no argument is given than the idtagviewer asks for a directory to scan after the startup. If a not recursively scanned directory contains no files, the idtagviewer enables the recursive scan and rescans the directory '''2. Scanned files''' [http://195.241.128.75/hup/idtagviewer10.files.jpg] This listbox contains all scanned files and is shown only if a directory is scanned. Filenames with a green background have the track number 1. Red ones don't have a track number. The current scanned directory is shown above the list of files. '''3. Id tags formular''' [http://195.241.128.75/hup/idtagviewer10.idtags.jpg] Above the formular the current filename is shown. This formular contains: * checkbuttons to toggle id tags for modifications * one entry per id tag. The topmost checkbutton toggles the state of all checkbuttons below. With: * the and keys you manoeuvres from checkbutton to checkbutton or entry to entry. * the and keys you manoeuvres through the files shown left. The current file is always shown left * the and keys you move like normally through the formular '''4. Possible actions''' [http://195.241.128.75/hup/idtagviewer10.actions.jpg] scan: opens a dialog to choose the directory to be scanned rescan: rescans the current directory number: prepends the track number with the format "%ld." to the file name of the current MP3 file. For conversion see 6 number all: prepends the track number of each scanned file like '''''number''''' does strip number: strips the track number (if present) from the file name of the current MP3 file. For conversion see 6 strip all numbers: strips the track number of each scanned file like ''''''strip number''''' does rename: renames the current MP3 file using the '''''rename scheme''''' from the options and the id tags of this MP3 file. For conversion see 6 rename all: renames all MP3 files like '''''rename''''' does extract tags: extracts the toggled id tags from the current MP3 file using the '''''extraction scheme''''' from the options. Not recognized or extracted id tags won't be changed. Only id tag values are overwritten by extracted ones, if they are toggled for modification. For conversion see 6 extract tags all: extracts all toggled id tags from all MP3 files like '''''extract tags''''' does save: saves the current shown id tag values to the current MP3 file. For conversion see 6 save all: saves all id tag values of the all MP3 files like '''''save''''' does close: closes the idtagviewer, like does '''5. Options''' [http://195.241.128.75/hup/idtagviewer10.options.jpg] recursive scan: toggles if a directory should be scanned recursively to get the contents of all subdirectories too rename scheme: a scheme to describe how the file name of a MP3 file should be changed using the id tags. If a directory is specified by the rename scheme and currently not existing, than it will be created. Here the scheme replacements: %A = artist (max. 30 chars) %a = album (max. 30 chars) %y = year (4 digits) %n = track (1 digit, 0 <= %n <= 255) %t = title (max. 30 chars) %g = genre (a genre specification out of the current defined genre specifcations (see 12)) %c = comment (max. 28 chars) extraction scheme: a scheme to describe how id tag values should be extracted from the path of a MP3 file subtitle -> title: toggles to recognize a subtitle inside a title using the '''''subartist/subtitle sepeartor'''''. A recognized subtitle will be stored as title. Mostly only useful for compilations subartist -> artist: toggles to recognize a subartist inside a title using the '''''subartist/subtitle sepeartor'''''. A recognized subartist will be stored as artist. Mostly only useful for compilations dismiss braced text: toggles to dismiss any text between paranthesis examples: - subtitle/subartist recognition with "_-" as seperators: file: 1. Starvue _ Bodyfusion.mp3 => title = Starvue _ Bodyfusion subartist = Starvue subtitle = Bodyfusion => artist = Starvue title = Bodyfusion - braced text dismission: file: Come On Everybody (Get Down).mp3 => title = Come On Everybody '''6. Conversions''' [http://195.241.128.75/hup/idtagviewer10.convert.jpg] Following actions will take care for the conversion options: number: all file names to be numbered will be converted if the '''''convert filenames''''' option is enabled number all: like '''''number''''' strip number: all file names to contain no prepended number will be converted if the '''''convert filenames''''' option is enabled strip all numbers: like '''''strip number''''' rename: all file names to be renamed will be converted if the '''''convert filenames''''' option is enabled rename all: like '''''rename''''' extract: all extracted values will be converted if the '''''convert tags''''' option is enabled extract all: like '''''extract'''' and '''''save''''', because id tag values are extracted per each MP3 file and saved to the MP3 file save: all id tag values will be converted before saving if the '''''convert tags''''' option is enabled. And all file names of the MP3 files to be saved will be converted if the '''''convert filenames''''' option is enabled save all: like '''''save''''' If the '''''convert tags''''' option is enabled and a scanned file will be selected, than the the id tag values will be converted. Only if a id tag is toggled for modifications, its values will be converted! '''7. Sorting''' [http://195.241.128.75/hup/idtagviewer10.sort.jpg] standard: all files are sorted increasing using their directories, the album and finally the track number alphabetical: all files are only sorted increasing using their file names artist: all files are sorted increasing using artist, the album and finally the track number album: all files are sorted increasing using the album and finally the track number year: all files are sorted increasing using the year, the artist, the album and finally the track number genre: all files are sorted increasing using the genre, the artist, the album and finally the track number '''8. Download''' http://195.241.128.75/hup/idtagviewer10.tar.gz http://195.241.128.75/hup/idtagviewer10.zip ''[MGS]'' [2003/04/02] - Fixed typo in links. Thanks to [Theo Verelst] for hosting the archives and the images inside this document. '''9. Future plans''' * internationalization using msgcat * multiselection in the list of scanned files * buttons below the list of scanned files to select all or to invert the current selection '''10. Bugs (are not welcome, but for sure existent)''' '''11. Comments (are welcome)''' '''12. Currently offically defined genres (table of ids and names)''' 0 - Blues 1 - Classic Rock 2 - Country 3 - Dance 4 - Disco 5 - Funk 6 - Grunge 7 - Hip-Hop 8 - Jazz 9 - Metal 10 - New Age 11 - Oldies 12 - Other 13 - Pop 14 - R&B 15 - Rap 16 - Reggae 17 - Rock 18 - Techno 19 - Industrial 20 - Alternative 21 - Ska 22 - Death Metal 23 - Pranks 24 - Soundtrack 25 - Euro-Techno 26 - Ambient 27 - Trip-Hop 28 - Vocal 29 - Jazz+Funk 30 - Fusion 31 - Trance 32 - Classical 33 - Instrumental 34 - Acid 35 - House 36 - Game 37 - Sound Clip 38 - Gospel 39 - Noise 40 - Alternative Rock 41 - Bass 43 - Punk 44 - Space 45 - Meditative 46 - Instrumental Pop 47 - Instrumental Rock 48 - Ethnic 49 - Gothic 50 - Darkwave 51 - Techno-Industrial 52 - Electronic 53 - Pop-Folk 54 - Eurodance 55 - Dream 56 - Southern Rock 57 - Comedy 58 - Cult 59 - Gangsta 60 - Top 40 61 - Christian Rap 62 - Pop/Funk 63 - Jungle 64 - Native US 65 - Cabaret 66 - New Wave 67 - Psychadelic 68 - Rave 69 - Showtunes 70 - Trailer 71 - Lo-Fi 72 - Tribal 73 - Acid Punk 74 - Acid Jazz 75 - Polka 76 - Retro 77 - Musical 78 - Rock & Roll 79 - Hard Rock 80 - Folk 81 - Folk-Rock 82 - National Folk 83 - Swing 84 - Fast Fusion 85 - Bebob 86 - Latin 87 - Revival 88 - Celtic 89 - Bluegrass 90 - Avantgarde 91 - Gothic Rock 92 - Progressive Rock 93 - Psychedelic Rock 94 - Symphonic Rock 95 - Slow Rock 96 - Big Band 97 - Chorus 98 - Easy Listening 99 - Acoustic 100 Humour 101 - Speech 102 - Chanson 103 - Opera 104 - Chamber Music 105 - Sonata 106 - Symphony 107 - Booty Bass 108 - Primus 109 - Porn Groove 110 - Satire 111 - Slow Jam 112 - Club 113 - Tango 114 - Samba 115 - Folklore 116 - Ballad 117 - Power Ballad 118 - Rhytmic Soul 119 - Freestyle 120 - Duet 121 - Punk Rock 122 - Drum Solo 123 - Acapella 124 - Euro-House 125 - Dance Hall 126 - Goa 127 - Drum & Bass 128 - Club-House 129 - Hardcore 130 - Terror 131 - Indie 132 - BritPop 133 - Negerpunk 134 - Polsk Punk 135 - Beat 136 - Christian Gangsta 137 - Heavy Metal 138 - Black Metal 139 - Crossover 140 - Contemporary C 141 - Christian Rock 142 - Merengue 143 - Salsa 144 - Thrash Metal 145 - Anime 146 - JPop 147 - SynthPop