Intro

Introduction of 'The GodFather'
(mp3/ogg/mpc/ape/flac/aac/apl/wv/mp4/ofr/spx File Manager)

The GodFather is a program that helps you keep your audio files collection in shape, by helping you change the filenames ,tags create playlists and even restructure them on your hard drive just the way you want.

Features.

  • Easy installation ( a simple copy of the files in the hard disk will do, no registry settings no complex procedures.)

  • Extended options ( Powerful filters , case options, word replacements etc.)

  • Multi file support ( .mp3/.ogg/.mpc/.ape/.flac/.aac/.apl/.wv/.mp4/.ofr/.spx)

  • Batch modes ( Manipulate a lot of files at once )

  • Library mode ( catalogue your audio files in an enhanced library )

  • Extensible through scripts ( use simple Pascal syntax to extend and accomplish even the most demanding tasks )

  • Language files ( Use your language in the GUI )

Best of all it is FREE!

Home Page


If you have a lot of mp3's you know how difficult it is to get around them without proper filenames & tags
If you like your collection clean you need The GodFather

  • Windows 9x/Me/NT/2000/XP

I designed this program for me and i liked it, so I thought i should share it with a few friends and why not the rest of the world.

YES YES AND YES
Updates will come of course providing extra functionality and bug removal :)

FAQ

  1. Why do I need something like that ?

  2. What are the system requirements ?

  3. Why is it free ?

  4. Will it stay free? and how about updates ?


Version History

  • 06 Feb. 2005 Version 0.69

What is New :

Tag panel's grid 'toggle row selection' feature to manipulated selected rows using standard context menu commands

Online, 'album info' tracks grid has a context menu with basic commands ( add, remove and add rows from files )

Rename panel's grid shows current filename in status bar.

Option to remember main sub pages usage

Option to auto start the tag update dialog.

Option to suspend the log dialog to appear automatically.

Parenthesis removal enhanced with the option to separately remove complete and/or incomplete values.

Online, % percent indicator for IE page load on status bar

Better error flow control and descriptive messages (rename/update)

'Refresh all' command at tree view.

Library, option to auto update track values from album values.

Library, button to update track basic fields from artist values

Library, Clear grid when first level branch selected option.

Library, refresh volume labeling after edit.

Library, find more of the same TITLE command.

+ SCRIPTS +

System: Status bar control, sys_SetStatusText,sys_GetStatusText, sys_RemoveIllegalChars

Tag panel : tg_GetFileName,tg_GetRowCount

Online : on_getFileName,on_LoadFile, on_UpdateThis( const bLoadTags: boolean ); on_SaveComment,on_SaveCredists have a bSilent boolean parameter.

Possibility to use the build in search for title,album, artist commands from within scripts

Restructure: gTag variable usage enable using re_LoadFile

gTag variable has all fields available and can be used to save Tags/ remove tags load pictures... and in general be used to manipulate files from inside scripts.

What is Fixed :

File/exit did not saved the options.

Hide path after rename was fired did not work in rename panel.

Tree view 'Create playlists' command tried to read files other than supported audio.

ID3v2 - COMM frames with corrupt lang identifier are read ok now.

Library [?%*#_ chars fix with LIKE operator

Online CTRL_U,R grid focus problems corrected.

Read only ini files usage possible.

Library several GUI corrections.

Option for library volume labeling mask was not saved.

Lyrics/Pics dialog minor GUI corrections

mp4 files 'gnre' atom fix ( range check )

Remove tags batch ( spx/ofr ) did not work

Small player fixes

Manual panel respects trim options for tag fields

mp4 files fix for non standard files also copyright, URL and language fields behave properly.

Better control for N/A files.

Save only basic fields did not work

  • 14 Nov. 2004 Version 0.68

What is new

OptimFrog file support ( OFR/OFS ) using APEv2 tags.

Speex file support ( SPX ) using vorbis comments.

Library, grid filters can be applied to playlists & queries also.

Library, 'find more of this...' command (artist,album,year, genre ..etch etch..), (button in artist\albums toolbar), (button in albums & artist main toolbar)

Library, extended albums grid option with pictures and other info at artist panel.

Library, go back - forth, history buttons .

Support for hidden folders.

Online, macros script - export script. ( example scripts included: Export to CUE, export to HTML, Paste tracks from clipboard, etch..)

Physical restructure, pop up menu available with standard options ( quick edit, full edit etch )

Physical restructure, The tree view is editable, create new folders, rename them, delete a full branch or a specific file, also full Drag n' drop support implemented.

++ SCRIPTS ++

NEW functions

tg_Rename,on_getXXX, PadLeft, PadRight

CreateDir,RemoveDir,RenameFile,DeleteFile,ForceDirectories,DirectoryExists,FileExists, FileCopy, ChangeFileExt

FormatFloat, StrToFloatDef

sys_FormatDuration, sys_FormatDurationEx, sys_MessageDlg, sys_SaveFileDialog, sys_OpenFileDialog

Changes

sys_Execute parameter for command line Params

on_getCurrentDirectory -> sys_getCurrentDirectory

on_SavePicture now return filename and has an option to save it silently.

on_getTracks, extra param for duration in seconds

What is fixed

Library, track sort fix.

Minor internal fixes.

04 Nov. 2004 Version 0.67

What is New

Copy & paste of tags at manual panel. (Use all data or specific fields (standard/extended/user/picture..etch) cross format copy pasting is possible.)

APE2 & Vorbis comments, field normalization & new fields ( involved people,URL's, original artist/album/year..etch etch )

Unified user defined field names across formats

New % variables, file date, time %S1 %S2 and %Z for file type.

Online, CTRL-T, CTRL-A commands display duration between album track and file to be used.

Online, duration mismatch option and warning.

Online indicator & option if not all track fields are selected for update

Find dialog at tag panel's grid.

Lyrics/Pics dialog at tag panel batch jobs is redesigned also filename format is user defined.

Library, option to show name/volume/text next to drive at volumes

Library, remove volume command

Library, quick edit/full tag edit dialogs always update database when invoked from library

Library, remove sort functionality.

Library, ' apply value to all fields in grid' option in query prompt dialog (easier to search at multiple fields using OR )

Manual panel export as playlist functionality.

Rename panel, hide path column option.

Rename panel, when a playlist is used to rename files auto prompt dialog to save again is possible.

Option for library as default page

Removed limitation of auto scan and sub folders usage.

Changed toolbar with combo box for file format selection.

Last folder used is saved for file operations/save as commands etch.

++SCRIPTS++

Rename panel scripts available

Physical restructure, re_getlevel( 0 ) returns filename.

Changed interface usage a bit, they are easier to use and edit.

MD5 routine has an option for whole file or audio data only.

More sys routines

sys_RenameCurrentTreeFolder - (routine to rename current folder in tree view) , sys_ClipboardCopy, sys_ClipboardPaste

More routines for path/filename manipulation

(ExtractFilePath,ExtractFileDir,ExtractFileDrive,ExtractFileName,ExtractFileExt,CreateDir,GetCurrentDir,GetLastDir)

More online routines

(on_grdApplyRow,on_getGrdField,on_setGrdField,on_getGrdRow,on_getGrdRowCount,on_setGrdRow,on_setGrdSkip,on_setGrdResult,on_getGrdAlbumRow,on_getGrdAlbumRowCount)

Fixes

Tag scripts all rows marked as skip Infinite loop fix.

Replacement matrix 'index out of range' when trying insert a matrix when none existed.

Physical restructure, warning issued if root folder is empty/invalid

Library, alternate artist name usage did not work

Freedb multi line DTITLE fix.

Library volumes first level is sorted properly.

Library, sort by track number works always.

Library fixed problem with bad tag data when importing

Library query prompt dialog cancel does not return all records.

  • 12 Sept. 2004 Version 0.65

What is new

mp4/m4a/m4b file support using iTunes compatible tagging, full cover art support, user defined fields etch.

PNG image file support

Amazon site selection ( com, de, co.uk, co.jp ) - fixed in beta 3

User defined path for library file.

Option to clear values of tag panel on folder change

Option to exclude files marked as skip in tag update dialog

Automatic folder renaming using user defined masks available at treeview.

Installer changes ( folder structure for some of the files )

Script execution and usage, at Tag update/physical restructure and online panel ( custom web grabbers..)

Regular expressions available for scripts ( regex find and replace )

Global log implementation.

Online panel, options as what part of 'tracks' to apply (artist,album,year .. etch)

Track field padding for xx/nn style

Option to remember grid column widths ( tag/manual/online panel ).

Introduction of scripts

1. For tag update :

If you tried all the options but still miss some functionality then you can script your way out of a dead end situation.

Simple Delphi syntax with helper inline help and functions to cure even the most difficult situations.

Sample scripts included to fix the year field, split and update the the title and artist fields, an advanced example with the application of multiple masks to the file name and usage of the tokens to update the tag fields and finally an internal variable usage to sync ID3 tags.

Basic information is included in the tutorial ( fix year script )

2. For Physical restructure:

Sometimes tag variables are just not enough to create the desired directory structure, special artists, count of files etch etch make it impossible to create the exact structure needed.

Scripts come in handy here to define folder creation rules.

Two scripts are included, a simple one that removes 'The ' prefix from artists and an advanced one that uses all the possibilities, from 'The ' removal to special folder creation for artists that begin with numbers etch, genre usage, count of files and more.

3. For Online album grabbing/updating:

Freedb/AMG/Amazon are great but there are more sites with album info.

As an example of the unlimited possibilities of that feature, a Discogs.com album grabber is provided as a tutorial and why not... for usage of electronic music fans.

More scripts can be created easily using the above one as a tutorial.

Fixes

Some library options not saved.

Dozens and dozens of small (mostly invisible) internal changes, fixes etch.

  • 08 Aug. 2004 Version 0.62

What is new.

WV file support using APv2 tags, versions 3 and 4 supported.

Track field handling options enhanced, separate options to pad in filenames and tags, options to use nn/xx style at online panel.

Illegal characters can be replaced with a user defined value.

A few extra grid formatting options ( row height, grid lines )

Fixes

Hopefully final ID3v2 Unicode fix.

Small bugs fixed.

  • 02 Aug. 2004 Version 0.61

What is new.

AAC file support using ID3 tags

APL file support using APv2 tags

Library module has moved to main window

New %I encoder user variable

Online panel restructured, Amazon image grabber, more reliable auto sort algorithm, HTTP protocol as well for freeDb for those behind firewalls,

new AMG parser + new data, new fields ( type, label, themes )

ID3 v1/v2 & APEv1/v2 tags can be removed from all file types.

Special option for %D %U variables regarding multi disk albums.

Duplicates show only current dir + Filename when 'show only filenames' option is used.

Extended hint for library items in the grid, song highlights can be added to favorites.

Range removal available as rename option.

Minor enhancements.

Fixes

Rare ID3v2 Unicode fix.

Small mask bug fixed.
Find duplicates works correctly using the 'ignore tracks from different albums' parameter.

Library grid column selection ( add/remove ) small bug fixed.

Minor GUI/misc fixes.

  • 20 Jun. 2004 Version 0.60

What is new.

Main new feature is the library module

Rename has an ISO level 2 compatible option.

Two new fields Tempo %XP, and Type %XY.

New variable for VBR.

The language combo had duplicate entries, they are removed, has 2 more languages Japanese and Korean and it is sorted.

Manual edit shortcut keys ( F2,F3, SH_F1/F2/F3 ) work anywhere, also SH_PGUP and SH_PGDN will move the current row up or down.

Last Picture type used is saved in batch tag panel

Organize - playlister shows encoder-info and info dialog has size,max,min,avg bitrate and counts only selected files.

Save as playlists in rename/tag grids

Show only filenames option

FLAC transcoding.

User defined command line options for LAME encoder

Go to current song playing command in player.

Move row Up/Down at Tag panel.

Option to overwrite existing files when restructuring

Fixes

LYRICS 3 minor fix

Save to cue file uses correct duration format (mm:ss:ff:)

AMG credits parsed better

Favorite folders combo does not lose focus upon typing

Multi HTML export link bug.

'Open with the Godfather' respects last root used if possible.

Online minor fixes.

Encoder always locates binaries correctly.

Minor GUI fixes.

  • 23 Nov. 2003 Version 0.58

FLAC files support using Vorbis comments.

LYRICS3 v2 support.

Custom names for review, credits text files, option to auto wrap review text file's lines, pop up menu command to auto search for album name at AMG.

Option to remove ID3v1/ID3v2 upon batch update, FLAC/ape files can be decoded to wav, option to clear filters on program start, support for tokens for styles %XS variable ( %XS[1..n] ),some enhancements in a few dialogs and status bar.

Fixes ( minor )

  • 04 Nov. 2003 Version 0.57

Query freedb using the Disk ID calculated automatically from the files or use the original CD-ROM.

Online enhancements : Artist filter for freedb's text search, composer can be parsed from AMG, credits list appears in a grid and can be automatically sorted, auto sort works a bit smarter, dummy rows can be removed all at once, CTRL_T also searches at AMG (first page only), quick edit dialog is available in the grid, and the files can be sorted using multiple columns.

Better support for mpc/ape files, option to preserve all ID3v2 frames upon saving, 100% compliant ID3v2 lyrics frame writing, user fields for mp3 files,

Filters for has pictures/lyrics can be defined, additional option for proper case to force case of special words/phrases, extra find duplicates parameter to use aggressive title field comparison, parameters for default playlist save format and ext. info content.

Full tag edit dialog is available in more grids and has a few enhancements, manual edit grid additional 'haslyrics' column and sort by multiple columns, editable grids have combo boxes according to fields being edited, Tag/Online grids support mark and del/paste to clear/paste a lot of cells at once, option to use synchronized scrolling,play panel changes, rename folder option in treeview.

Fixes ( Find duplicates does not include the same file in more than one result set, installer does not overwrite ini files by default, minor other things )

  • 12 Oct. 2003 Version 0.56

Six new fields with their respective variables and user defined lists introduced. Tones %XT, styles %XS, mood %XM, situation %XU, rating %XR and quality %XQ.

Online enhancements: option to format *.toget files, 'Auto match' command to update your tracks without having to sort them into album order, track duration is shown in both freedb and AMG albums plus the files grid, tones and styles can be parsed and saved from AMG, special 'various artists' option to force handling of any album as a various artists one, 'Get tracks from clipboard' command so you can copy and paste tracks from other online sources ( amazon etch .. ).

Tag panel enhancements: Del cleans the value of the current cell, tag existence filter can be reversed, clear button to easily reset values for variables, 'Apply to this' command so a specific preset can be applied to a single track, Update dialog does not auto close when errors or warnings occur.

Special <ALL> field in tag filters so a value can be easily searched in all fields, full tag edit dialog is available in play and online panels, extra option to ignore tracks from different albums in find duplicates, custom case usage made a lot easer and powerful, status bar enhancements.

Fixes:

( Online panel fixes: files with blank tackno saved correctly, credits are cleared before get album, *.toget files use correct panel freedb/AMG, freedb search can be stopped and ESC key works better.

Misc : Folder treeview does not lose focus and selection is kept for easier spotting of current folder, some right click anomalies corrected as well, better pop up menu control for all grids, 'Ignore correct' at tag panel includes files with no tags, encoder filters out *.ape files, translation engine corrections, large fonts problems fixed again, bitrate filter works with multi HTML export, restructure does not include duplicate files in bad,N/A node, several other corrections )

  • 21 Sep. 2003 Version 0.55

Multi language support using user defined 'language files'.

Considerable tuning was done and the program uses far less resources on Win9x systems and also loads faster and has a smaller memory footprint on all versions of windows.

Tagging enhanced, option to preserve the time stamp of files,option to clear all but basic fields in batch tag update, also tag panel's grids where merged into one and the update log saves only errors or warnings.

Online panel enhanced with the following, possibility to automatically search and retrieve info for a singe track from freedb, 'apply from' command to manipulate single tracks easier without having to be in the album order, Credits can be retrieved and saved from allmusic, 'Dummy rows' can be saved as 0 sized files for future reference, album filtering in freedb can be stored in presets and can use multiple criteria and 'not exists' logic to filter out 'Greatest Hits' and so on.., minor other improvements.

xBox compatible names option in rename, dblclick on play panels grid node plays all files or all play lists.

Fixes ( " and CR/LF added to the illegal characters lists for rename, Quickedit updates the playlister/encoder track column, Genres typo's fixed, mask bug corrected, minor other fixes )

  • 17 Aug. 2003 Version 0.52

Four new % variables introduced : %O composer, %P Copyright, %W URL, %E Encoder.

Tag panel enhanced with the following : All values are saved/retrieved to/from presets, editable preview has extra columns for all common fields, 'Ignore correct' option so only potentially wrong or incomplete tagged files can be processed, The Sync/Remove buttons are also available at editable preview, new option in Sync menu 'Fit ID3v2 to ID3v1' along with special options so ID3v2 tags can be safely converted to ID3v1.

Export enhanced with HTML capabilities, export to a single file or a hierarchical array of pages, options to format colors etch. Also export specifications can be saved/retrieved from presets for easier usage of various export formats.

New option in tree view's popup menu, to create play lists automatically. Options on how to name & sort. Create a play list per folder with a single click.

Tag filters enhanced with more fields, the '!' character can be used as the 'not' operator to reverse the criteria, empty fields are not ignored anymore, presets are available here as well and multiple commonly used filters are a lot easier to save and use.

The Quick edit dialog is also available at manual edit grid with a special interface so multiple files can be handled and common fields can be updated at batch for files selected.

Auto scan works with playlister/encoder grid, freeDb's result grid has case insensitive sort, manual grid can be exported to html and/or xls file, play list entries formatting options moved to parameters window.

Fixes ( Minor corrections in %# variable, import columns mapping, AMG album parse and a few other small changes)

  • 30 July 2003 Version 0.51

Import from csv files functionality added.

Rename files and/or update tags using information from external files, user defined mapping of fields to columns and preview of results available.

Tokens enhanced, it is possible to use more than one separator (single or multi character values accepted), also as an alternative masks can be defined and used for filename and folder tokens, you can even combine the above to create a full proof mechanism to extract tokens. Finally 4 more tokens are available for filenames %F6-%F9.

%# variable enhanced with the option to be reset upon folder change and it is incremented per file basis and not per usage.

Physical restructure options to create a log or not and also to include other files than audio when restructuring, so images and other files will be moved/copied as well, user defined file masks.

Manual edit has the option to use sub folders and also to auto sort or not.

Option to use case insensitive sort at editable tag preview, extra command line option for Oggenc, larger padding values for ID3v2 ( up to 20Kb ), sort by filename also at online grid, option to auto stretch rename/tag grids, save as 'folder.jpg' at AMG panel and also at batch image processing, Tag filter grid has a Popup menu, shortcuts for 'scan'( F7), 'update' (F8) commands.

Fixes ( P4 HT start up crash, quick edit/tag editable preview correction, AMG albums with no review are parsed ok, all options at LAME/Oggenc presets are saved properly,encoder always finds executables when current path is changed, Track field sorting corrections, various misc fixes)

  • 16 June 2003 Version 0.50

Mpc/Ape file support using APEv2 tags. Includes all standard & proposed fields plus user defined fields and lyrics.

Reads APEv1/v2 and writes APEv2. Also can remove ID3v1 from mpc files. Encode to/from mpc.

Playlists can be opened in rename/tag panels.

Ffile/path resolution when opening playlists is a lot smarter now.

Special 'Rename To..' functionality, copy or move files to a new location with new names.

Restructure produces a log which can be saved in many formats.

Find duplicates parameters are now available to the end user.

Some GUI changes, filters are in their own floating window and are applied to all parts of the program, manual edit grid has a toolbar, Full ID3v2/Ogg/Ape edit dialogs have save & next/Previous buttons and more shortcut keys.

Fixes ( Better reading of ID3v2 lyrics/comments frames, several multi file support corrections, encoder now displays estimated time correct at all situations,couple of fixes in online grid, installer fixes, small GUI corrections/enhancements here and there..)

  • 01 June 2003 Version 0.45

Ogg Vorbis file support. Includes all standard & proposed fields plus user defined fields and lyrics.

Encoder/decoder enhancements, convert from one format to the other ( mp3/ogg ) without losing Tag info, wave files are not decoded in temp folder but in actual location so copy of huge files in not necessary.

Better support for wave files with detailed info about their attributes.

New "apply options" functionality in Rename/Tag grids so re scanning of files is not necessary upon options change, especially useful in Editable tag preview.

Manual edit has a row indicator and is printable.

New option as how to treat consecutive separators for tokens, usage of space is a lot easier now.

Fixes ( Proper case small fix with multiple separators, user defined genres properly appear in manual edit 'full edit' dialogs, large font display problems corrected, support for long track names from freeDb.org, space is correctly saved as a token separator, small visual appearance/interface corrections)

  • 12 May 2003 Version 0.44

New %U(1..5) variables so you can use up to 5 folders from the full path of the file, starting 1 level down from containing folder.

Remove parenthesis extended with characters like [] & {} and a special option to remove incomplete also.

Extra options when saving play lists as how the folders will be structured ( keep original, remove drive, replace drive or use a custom string using plain text and %variables )

Has picture checkbox column in manual grid.

Restructuring gives user feedback about the current file being processed.

Online panel has being enhanced with the following ( Auto sort of tracks using freedb's track lengths, sort by Track field, Artist per track can be used for various artist albums, Option as how empty fields will be treated, Choose what to update at AMG panel [tracks/comment/Picture], also new popup menu for Album image & toolbar for comment with options to load/save from-to file/clipboard.)

Fixes ( sorting problems with some grids fixed, illegal chars are removed when exporting AMG picture/comment to file, Batch tag update dialog fixes, Folder details in restructure leave plain text's case intact, other minor fixes ).

  • 04 May 2003 Version 0.43

New genre editor allows custom genres to be defined and used.

Find duplicates uses the MD5 algorithm as well , when the 'audio' size of the files is identical.

Folder restructure now uses % variables at any combination possible so more flexible structures can be defined, a pop up menu is also available with more options.

New %N variable for the language tag field.

Rename has two more options, Joliet compatible file names and the removal of words inside parenthesis.

The playlist display format is customizable using % variables and an extra option to sort it is available both as a parameter and popup menu command.

Batch tag update has the ability to use pictures ( from file or clipboard ).

Online panel's album grids are editable, new option to append or not album cover art from allmusic.com to file , save as .cue file possibility when using freedb albums.

Fixes ( A better reading of ID3v2 frames is done so some files not 100% compliant to the ID3v2 standard can be edited, %D variable bug fixed, rare bug in folder restructuring found and corrected, minor fixes on control focus at AMG panel, small corrections in manual edit and play panel ).

  • 25 Apr. 2003 Version 0.42

FreeDb panel is renamed to Online and contains an allmusic.com interface to manipulate full albums, so you can use an alternate option to freeDb plus use album art and detailed commentary from AMG's web site.

File operations ( copy, move, delete ) are now possible in manual edit and play panel, a new option to delete files to recycle bin was also added.

Manual edit no longer uses file tokens but the full presets defined in tag panel so it possible to use any kind of file/folder token plus ID3 variables.

Track handling was enhanced and two more options are now available to clean tracks in rename and tag update.

There is a toolbar in play panel's amg search, with an option to auto search or not for artist when a new song is loaded.

Manual edit options to update/remove Tags are now saved and a new option to automatically close the batch tag update dialog upon finish is added.

Fixes (All open file handles are closed properly in play panel, online 'if renamed' column minor fix, extension is no longer lost when case in not used in rename, wav's do not use low bitrate color, online panel no longer freezes when non folder entity is selected, minor fixes and improvements in batch tag update dialog, small fix in variable trim option, minor fixes in track field formatting, possible error in play panel with no shuffle and manual interaction in the playlist corrected, a few more minor changes )

  • 11 Apr. 2003 Version 0.41

FreeDb panel's grid has one more column (skip) plus you can insert dummy rows (placeholders) in case some tracks are missing.

New Quick Edit dialog , so you can manually rename or update files anywhere in the program.

New incremental number variable, option to restructure or not "N/A missing" files, next and previous buttons in file info dialog, extension always lower in proper and custom case.

Fixes ( Some columns that did not sort correctly are now ok, ID3v1 genre in batch tag update gets the correct value,minor fixes in manual edit and playlist maker, files with illegal folder characters in restructure correctly handled, minor interface corrections/enhancements.)

  • 01 Apr. 2003 Version 0.40

Tag panel enhanced. An editable preview grid is added to help you preview and/or change the tags before you choose to update them. Presets are also added to the tag field text boxes, so you do not have to type over and over again let's say the file name tokens. The batch update dialog is also re worked with new buttons to sync tag fields and queue for files to be updated.An option dictating how to treat empty variables was also added.

Replacement matrixes re worked also, Options to use them in rename and or tag update added, the interface changed a bit also.

Token separator option can now accept more than one separators and is placed in the parameters dialog along side with the trim variables option.

Custom case is expanded to work better on all parts of the program and an extra option to format non variables (plain text) added.

Sync tags option in manual edit.

Colors can now be defined using bitrate in Organize playlister/encoder and Play panel's playlist.

The favorite folders combo is editable so you can type in your values, and option to "Auto scan" the current folder is also added for easier navigation.

Fixes ( Access violation on favorite folders when selecting first item removed, filenames with spaces now save correctly in queue and alternative picture folders, matrixes are saved and retrieved a lot better, minor fixes in batch update and manual edit and some minor GUI fixes/enhancements)

  • 22 Mar. 2003 Version 0.36

Batch rename panel redesigned.

More variables added ( File/Folder tokens, Comment field, and bitrate/mode of mpeg files ). Also custom case was enhanced to take care of all the added fields ( you need to reset your parameters for custom case after the update)

There is a new window for common parameters such as case and replacement matrix for easier access.

Fixes ( duplicate files marked as skip in rename works better, folder variable always gets current folder, some minor fixes in freedb panel, 'Access violation' messages that use to happen on Win2000/98 machines are fixed, a couple of more minor changes)

  • 10 Mar. 2003 Version 0.35

Batch tag update panel redesigned.

You can use variables as the source of tag fields ( file,folder tokens and ID3x fields ), swap,move,copy between fields is possible now.

Two new functions to manipulate tags, move ID3v1 to ID3v2 and vise versa so you end up using only the version you need, lyrics pictures handling ( remove, export to folder or both )

Option to trim spaces from each field.

Rename, duplicate files are automatically marked as skip,URL's always lower option for proper case.

Misc, search for lyrics using google in ID3v2 dialog, stretch picture option saved now, folder name being scanned is displayed in status bar, remove row from grid option in rename/tag/manual edit grids, play queue random order option, playlist and folder contents have both a find dialog to easily locate your songs, scanning for files is twice as fast now.

Fixes, ( Last character of URL field no longer trims,alternate locations for pictures are saved correctly, manual edit minor fixes, lame preset index is saved correctly, when empty fields only is checked in tag update those fields are not filled with new values)

  • 09 Feb. 2003 Version 0.34

Encode/Decode with L.A.M.E added. ( encode wav's into mp3's decode mp3's or re-encode your mp3 files to a more efficient size/quality without losing any tag information).

User configurable and ready made presets available.

Rename panel has two more options to remove (trim) spaces from filenames.Also illegal characters are removed or turned into spaces according to option.

Minor improvements ( select all/none added to right click menu of most grids, clear grid button in rename/tag update grid,"not equal" operator added to bitrate filter,clipboard shortcuts for copy work for non editable columns in grids, tray icon hint displays current song playing, the genre field in batch tag update is editable so you can type in your own values)

Fixes/changes( If an entity other than folder/drive is selected in the treeview grids do not try to populate,play queue checks for file existence first,picture display flow is a lot nicer now, small proper case fix, smarter reading of ID3v2 genre field,search for duplicates works smarter now, a few more changes here and there..)

  • 02 Feb. 2003 Version 0.33

More options in play panel ( select folders to display pictures from, set duration and if they are displayed at random ).

Play list queue added. ( store your play lists in a queue and listen to them automatically ).

Manual edit enhanced with visual feedback to the user when the filename or tags need to be saved.( An icon is displayed and also the font of the fields becomes bold/Italic, old values are stored in the hint for easy reference.

Fixes/Enhancements ( Genres are displayed in alphabetical order for easier selection, hints stay on screen longer, stop button also unlocks the file in play panel, if no file exists in a play list you can now stop it from entering an infinite loop, some minor cleaning up in play panel info display, a bug with replacement matrixes is fixed in some rare cases were 'replace this' - 'with this' lists did not have the same count of items.)

  • 25 Jan. 2003 Version 0.32

Export to file functionality added, user defined template, export to delimited or fixed length file.

More ID3 variables for renaming files ( %G for genre and %Y for year), also added to ID3 filters along with track field.

Enhanced picture display while playing and option to read pictures from the folder the mp3's reside on.

Minor fixes.

  • 18 Jan. 2003 Version 0.31

Find duplicates functionality added, track down and eliminate those annoying dup files!.

Minimize to tray option

Open in explorer option in tree view pop menu.

Some enhancements in play panel.

Fixes( Play volume is now adjusted internally and does not modify master volume, minor enhancements)

  • 4 Jan. 2003 Version 0.30

New freedb panel allows you to manipulate full albums using freedb's full text search capability.

You can insert pictures from the clipboard or copy to it in the ID3v2 dialog.

Add to shell functionality and default page to show at startup option

Track padding is also applied to tags in batch modes.

Fixes ( manual edit formatting of tag fields according to options corrected, minor batch updated corrections, correct ID3v1 version display, support for international characters in case conversion, minor interface cleanup/improvements.)

  • 24 Dec. 2002 Version 0.25

Installer/Uninstaller added.

New play panel allows you to play your files. Includes 16 band EQ, pictures lyrics and other info while playing and also support to search at AMG.

Track padding option when renaming files according to track number.

Fixes.( Playlist fixes in organize panel, interface cleanup, ID3v2 tags are now appended to files that did not have them without any problems.)

  • 07 Dec. 2002 Version 0.22

Multiple replacement matrixes can now be defined.

A pop up menu was also added with options to move up or down elements.

The root of the tree view can be set to any folder and also saved in options.

Fixes ( Some options are saved in a better manner avoiding possible errors when deleting rename formats and having a lot of empty "replace with" fields in replacement matrix, Scanning and tree view navigation are both a little faster now, small interface cleaning up ( tab order, hourglass visible, status bar messages and so on.. )

  • 24 Nov. 2002 Version 0.21

Favorite folders feature added.

%D variable to rename files using folder information.

Stretch picture option in ID3v2 dialog.

Auto sync ID3 Tags option in batch update.( Automatically fill empty tags or empty fields using the other tags info.)

Duration is now displayed in mm:ss format.

Fixes ( minor interface cleanup, quite a few glitches fixed in batch tag update, correct apply order of formats in manual edit )

  • 15 Nov. 2002 Version 0.20

I consider this to be a major upgrade to the program.

Full ID3v2 support including ..pictures,lyrics and more than 20 new fields. Support for compressed frames and user defined padding.ID3v2 revision is now displayed.

Re designed manual file edit panel now has colors,ability to sort by tag existence,a lot easier formatting & file renaming capabilities,option to use file tokens for all supported fields or selectively chose a specific token for a field. Grid now has a Popup menu with keyboard shortcuts for even faster edits. You can edit simple ID3v2 fields or edit the whole budge of them in a special designed dialog.

Two more rename options for proper case (First letter always upper/First letter of token always upper) allow for better looking file names.

An option to format & update all extra fields in batch tag update.

Expand all/Collapse all buttons added in restructure tree view.

More options are saved now and a new option to clear lists when moving from folder to folder was added along with Filename tokens option.

And of course a lot of enhancements here and there in the GUI were made ( like XP theme support ) and ...quite a few disturbing bugs are now fixed

( Play list info correctly displays duration, Skipping works in batch update, ID3 detection in case both being present works a lot smarter, duplicate comment in file properties removed and a few more small ones .. )

  • 14 Sep. 2002 Version 0.13

Better IDv2 Track field handling.

'Undo this' option and minor fixes in rename tab.

Batch tag update option to use file token for track field, option to clear tag fields and option to apply formatting easier.

Double click opens file in manual grid and ESC can abort the population of the grid.

Similarity functionality included in filtering to search for similar sounding words in tags.

Play list now includes track number.

  • 01 Sep. 2002 Version 0.12

Minor interface improvements: More options in pop up menus better control over sliders, invert selection capability.

Enhance play list creation, added drag & drop from explorer like list view, delete items/selected/clear. Open play list files and possibly merge them. Information about play list.

  • 26 Aug. 2002 First version


Interface

The program follows standard GUI rules incorporating an explorer like interface with a twist!

Most of the available choices are on the top part of every page for easy access , additional Popup menus appear simply by right clicking on specific objects , like grids, the tree view etc...

Remember pressing ESC will always ask you if you want to abort the current operation.

Always look at the status bar for messages.


Options

General TAB

Restore last folder

Restore the last working folder in the Tree View.

Restore last root

Restore the last working root of the Tree View.

Clear Rename/Tag lists on folder change

This will clear the Rename and Tag update girds when the working folder is changed.

Hide main window when encoding/decoding.

The main application will be hidden and only the encode/decode dialog will be visible.

Minimize to tray.

This will place an icon in the tray (near the clock) so the program can 'get out of your way' while playing your music or doing something else. A pop up menu is available using the right mouse button.

Automatically close tag update dialog.

When the update job is done in tag update the dialog closes automatically.

Stretch rename/tag grids.

If checked then those grids will auto size to fit the contents in the current window width

Default page

Make your favourite page open at start up ( useful for those who like to use the pay panel a lot for example).

Tags/Rename TAB

ID3 preference

If both tags exist The Godfather uses this option to select fields. If you select one of them and some field does not exist then automatically the other Tags field will be used.

Clean track field options

Some files contain track fields in a format like track n of sum example: 2/12. It is nice to get rid of the /xx part when renaming files for example and even when saving the track field. There are both of these option for you to choose from.

Track padding

Allows you to select the %R variable behavior.( rename files using 01 instead of 1 as track and so on.. ).

Also track padding will be used in batch update operations and freedb album import.

Padding size

One of the features of ID3v2 is padding. ID3v2 resides at the beginning of the file, so in the case of future editing if the tag is not the same size the whole file needs to be re written which is slow. By using a little extra space after the tag, future edits are faster because new data only needs to be written where the padding characters were. So if you plan to update your files often.... use padding it only makes the file a tiny bit larger but your work a lot faster.

Preserve date of tagged files

The date of the files will not change upon update of tags.

Illegal characters in rename.

If an illegal character ( for example * or ? ) happens to end up in the rename result then you have the option to remove it or replace it with a space.

Genres

'Other' for N/A genres will prevent the ID3v1 genre field to become blank when a non supported genre is defined in ID3v2 and a sync operation takes place.

Here you can also define your own custom genres and activate them or not on demand .

Colors TAB

Here you can set colors for the grids so it will be easier to identify files.

Misc TAB

Add to context menu.

This will integrate The Godfather into the windows right click so you can easily launch it in the current folder of explorer.

Delete to recycle bin

Use the windows recycle bin, when deleting files in 'find duplicates' or file operations..

Clear values when using presets in manual edit

Presets are saved with which field was checked information plus the field's value. In manual edit it is possible to select to clear or keep existing values from the non checked fields of the preset.

Online

Clear empty fields

Check this if you do not want to preserve the original Tag values when an online album's field is empty. ( For example if the comment field does not have any info from freeDb and you want to keep the original comment value un check this option)

Artist per Track

Check this if you want a specific artist per song for various artists albums

Alternative image capture

This should be checked when no image is returned from AMG 'Get album' button

All options are saved in one .ini file, nothing is written in your registry!


General parameters

  • Case

Change case in a lot of ways, UPPER, lower, Proper, Sentence case or user defined according to ID3 variables.
Special options for proper case include forced words for UPPER or lower case.

You can select the first letter of the filename to be always upper regardless the forced lowercase option, the same applies for tokens as well
( Tokens are filename parts that logically separate the different elements of the name, the token separator is user defined and defaults to - )

There are some rules about proper case options:

  1. Forced upper case words are the strongest of all

  2. First letter/ token Upper case comes next.

  3. And forced lower case comes last in significance.

This makes sense as it is shown in the following examples:

If first letter always upper is checked then we end up with this ( Inxs - xxxxx. instead of the correct : INXS - xxxxx )

If first token upper is selected then we get ( xxxx - and justice for all instead of : xxx - And justice for all )

So by forcing the above hierarchy the results look more sensible.

  • Replacement matrix

Simple replace 'this ' 'with this' list. User defined include as many characters or words you want.

You can edit the matrix by using the following keys.

INS = insert row.

DEL = delete row.

Enter,F2 = Update values.

You can define more than one matrixes and the order that they will be applied with. There also options to make it active or not and to apply it when renaming files or updating tags.

  • Options

Tokens

Here you set up exactly how you want the program to 'break apart' values from file and folder names so you can use this values as parts to update or rename your collection.

Use separators

You can set up multiple separator values as single or multi character values. They will be applied in the order specified.

Use Mask

Using the % symbol you can create masks of how information is stored in the filename/folder name any other character will be considered a separator and will dictate a 'breaking point'.

Combine

This will help you use masks and separators at the same time, how? simply leave a mask field empty and separators will take over or if you specify a mask and the file or folder does not comply with it separators will be used again to resolve tokens.

example Metallica - 01 -one.mp3

if you use '-' as token separator then

token1 = Metallica

token2 = 01

token3 = one

if you use ' - ' as token separator then

token1 = Metallica

token2 = 01 -one

if you use '% - % -%' as file mask then

token1 = Metallica

token2 = 01

token3 = one

Variables

Trim variables ( leading and trailing spaces will be removed from all variable fields before they are applied to the filename/tags)

Number %# variable options are set here, those are simple and they include starting value and padding. Also you can select to automatically force the value of the counter to be reset when a folder changes, useful for updating files in subfolders. This option however is successful in Rename and Editable tag preview grids.


% Variables

Variables are a powerful and flexible way to use information about the file for renaming/tagging and other tasks. You can interchange data in a limitless way in order to get the desired custom format you are after.

They consist of 4 groups ...

1. Tag field Variables

%R

Track

%A

Artist name

%L

Album title

%T

Song title

%Y

Year

%G

Genre

%C

Comment

%L

Language

%O

Composer

%P

Copyright

%W

URL

%E

Encoded by

%XT

Tones

%XS

Styles ( use %XS[n] for tokens )
Example : %XS[1] Hard Rock, Heavy metal, .... = Hard Rock

%XM

Mood

%XU

Situation

%XR

Rating

%XQ

Quality

%XT

Tempo

%XY

Type

2. File/folder Variables

%F

Original filename

Example : C:\mp3\Rock-Pop\Abba - SOS.mp3

%F  = Abba - SOS.mp3

%F1 = Abba

%F2 = SOS

%F1-%F9

Original filename tokens

%D

Containing folder

Example : C:\mp3\Rock-Pop\Abba - SOS.mp3

%D  = Rock-Pop

%F1 = Rock

%F2 = Pop

%D1-%D5

Containing folder tokens

%U1-U5

Specific folders from full path

Example : C:\mp3\Rock-Pop\Abba - SOS.mp3

%U1 = mp3

%U2 = <empty>

3. Audio info

%B

Bitrate

%M

Mode

%I

Encoder

%H

Duration (mm:ss)

4. Incremental numbering

%#

Configurable number

* Tokens are user defined

* There are special options to format the Track field


General Filters

Custom filtering using ID3 tag fields is possible here. You can use wild cards as well (*?).

* = all

? = one character only.

You do not have to include * at the end of the value it is used by default.

Examples

Artist = Rol , will include the Rolling stone files...

Title = *love* will include all the files that have the word love inside the title..

For multiple lines you can use and/or. And = all of the conditions must be ok, Or = even one of them to be ok.

You can edit the fields by using the same keys like the replacement matrix..

You can even filter by similarity.

If you include ~ as the first character in artist, title, album fields then words that sound similar will be found and included.

example: ~Metallica for artist will find possible errors and return Metellica and so on.

You cannot use both wild cards and the similarity operator

The ! character when used as the very first one, will reverse the criteria thus will act as the not operator.

Further more you can filter files by quality.


Batch Rename

OPTIONS

Rename Format

Use ID3 tag fields to construct the filename :
fields supported are ( %A = artist, %T = title, %L = album, %R = track, %G = genre, %Y = year, %C = comment ) ,
%F is the old filename and %D is the containing folder of the file ( example c:\mp3\Rock\xx.mp3 %D = Rock ). You can also use file/folder tokens and %B for bitrate, %M for mode of the mpeg file.
You can create and manage multiple formats.

Filters

If you select 'Use ID3 filters' then the program will present only the filenames that DO NOT contain the ID3 tag fields chosen. This is an easy way to find at once wrong file names.

Other flags

One tag must exists. ( if checked then files with no tag info will not be included). So you can select only files that have some ID3 tag info to be presented.

Trim result ( leading and trailing spaces will be removed from final filename)

Joliet compatible is useful for preparing files to be burned on CD's and will reduce the length of files to 64 characters if needed.

Remove words inside (..), this will delete all text between () plus the parenthesis.

ACTIONS

Scan

The current selected folder ( and if selected subfolders ) will be searched for mp3 files.
Once done you can preview the result in the 'if renamed' column, the file is actually intact until you press rename. You can edit this field by pressing F2 or type over it.

* DUPLICATE files will be automatically marked as skip.

Open

Opens a playlist file , respecting all filters options when parsing it.

Rename

Files will be renamed according to the 'if renamed field' the ones marked 'skip' will be left alone. After the job is done in the column result you will be able to check for errors.

Undo

You can undo the renaming.

Rename To

This will copy or move files to a new location and after that do the rename.

Skip 'correct filenames'

If the two columns 'Original filename' & 'If renamed' are identical then by checking this button those files will be excluded.


Batch tag update

Batch ID3 Tag Update

OPTIONS

Field names

Check the fields you want to be updated (only those checked will be processed ). You can use variables as the source for the fields like file,folder tokens and other ID3 fields . Swapping copying and moving of fields can be accomplished by using ID3 fields as variables, there are no constraints in their usage and you can use more than one for each field.

You can save your typed values as presets for easier editing in future updates. No more typing the same values over and over again!

You can use an image (from disk file or clipboard ) to be added to the file's images if append is checked or become the file's only image if append is not checked.

If you check the picture check box without defining an image in combination with append not being checked then you will be able to remove all pictures from the file (s)

Filters

Here you can make the program include only files based on the existence of certain Tags or even by certain fields!. The 'Any' means that even if one of the selected fields is missing include the file, 'All' means that all selected fields must be blank in order to include the file.

Options

You can select to update ID3v1 ,ID3 v2 ( or even remove them) Vorbis and APE tags.

Empty fields only means that if the field has some value leave it alone.

Also case options and replacement matrix can be optionally applied to tags.

Clean fields that are empty means that if i check a field to be updated and i leave it empty then the program will not fill it with the current tag value so it will be cleared.

Use formatting and save non checked fields will apply case and or replacement matrix to all fields and also save them without you having to check them all. Extra ID3v2 fields are the 'more fields' page and these will be formatted and updated by selecting this option.
This options will respect the update Tag 1 /2 and empty fields option!

Save only basic fields : WARNING all extra fields will removed from the file upon update.

ACTIONS

Scan

Same as batch. But the grid will be filled with the formatted values for the tags. You can edit them manually if you wish to make some refinements on spot.

Open

Opens a playlist file , respecting all filters options when parsing it.

Update

The update screen will appear but the fields will be filled using the grid's cell values.

Ignore correct

If checked then files with tags not being affected by any of the options selected will not be presented.

Sync

Keep tags in sync by copying one to another.
Manually copy and if empty create, either of the two tags from info found on the other tag.
Use the auto sync function, to fill or create an empty tag from the other if it exists and also if both tags exist this option will fill the empty fields keeping the tags in perfect sync.

You can even move one tag to another, this works by first synchronising tags and then removing the one being moved.

Special option to 'Fit' if possible ID3v2 tags into ID3v1.

Remove

Remove all or any of the tags.

Manipulate lyrics & pictures.

Remove lyrics and picture content or export them as files in your disk or both.
Use the file's folder or a user defined one for the export function


Manual Edit

Here you can manually do the renaming and updating of files with all the previous options laid out to chose from.

By selecting a folder in the tree the grid will be populated automatically with the mp3 files in that folder only!. You can sort by any of the columns for a custom view.

On the bottom part of the page you have a toolbar with the actions to perform like Rename or Tag update, also you can synchronize the tags or use file tag update presets...

The options panel lets you select the Format style for file name, case options and replacement matrix. There are check buttons for each one of those choices, if they are pressed the program automatically formats the appropriate fields.
(These are the fields AFTER formatting and not the original, the original are shown if needed in the hints of the fields also if the filename or tags are not correct an icon is displayed next to them and the specific fields become bold/italic)

You can use the Popup menu or simply the keyboard shortcut's and the renaming or tag update is done for you.

Also you can edit the full properties of ID3v2 tag like lyrics, pictures and more than 20 unique fields. You can load save lyrics from text files, load save and view pictures from all the supported formats ( *.jpg, *.gif, *.bmp, *.ico, *.pcx, *.wmf, *.emf ), also clicking on the URL labels will open the link in your web browser.

Make sure that you press rename or/and update to save your settings.


Organize

Create play list.

Press scan and the grid will be filled up with the usual way also taking care of the ID3 field filters you created..

Now you can listen to the selected file or all of them and optionally save.

Encode-Decode

Select the files you want and press the Encode/Decode button... a menu with options will appear for encoding /decoding.

The whole process is very easy :
Select a configuration for encoding, set the flags as what will happen to the original filenames and where do you want the resulting files to be saved. That's it! press start and TGF will do the work for you.

For re-encoding of mp3 files all tag info will be saved. Also have in mind that it does not make a lot of sense to try to make a lower bitrate file into a higher quality file. It is very useful though to turn those CBR 192 kbps files that most of the time just take up space into a nicer ABR 128 setting which is the same in quality and a lot smaller in size.

In the LAME configuration dialog look for the hints that the various controls have to help you out. If you want more info and you know what you are doing go over at http://www.mp3dev.org to read all about LAME.

Restructure

Options

Select the 'root' folder , the one that will hold the subfolders created and the files to be processed.

Case sensitive means that during subfolder creation do not separate 'A' and 'a ' in to two different subfolders.

Subfolder details is where you define the structure that will be created using % variables and/or plain text.

Further more you can select to include files other than the audio ones themselves such as play lists or images , the mask is user defined.

Actions

Scan and a tree will be filled up matching the options you selected. You can chose to copy,move or create shortcuts of the original files in the new locations.

Press save and the job will be done for you.

Find Duplicates

Track down and eliminate those annoying dup files.

The concept is simple... files are scanned and compared to each other using smart comparison so even similar files either by name or tag content or size + audio contents, are grouped into possible 'Duplicate groups'.

After that you can check the ones you want to process ( delete, copy or move ) and you are done.

ALWAYS check the results for files that could not be true duplicates, and remember that all files are shown in the group so do not delete them all :).

Export to file.

You can export your mp3's into a text file using user defined templates.

For ID3 fields "/auto" means : use the global option for ID3 version preference and try to complete fields from the other tag if one version does not have them.

You can easily use Excel to manipulate the exported files. For example use /t ( which is the TAB character as a delimiter ) and save with .xls extension or use ; and save as .csv using the column headers option, excel will open and parse these files automatically for you.

You can also export as an HTML page or multiple pages in a framed page with hierarchical view per First letter/Artist/Albums.

Import from file.

You can import information from CSV files, rename and or update of tags is possible.

First you select the file, upon selection automatic mapping of columns to tag fields and file names will happen, you can furthermore refine mapping to suite your specific parameters. You can change the delimiter or the text qualifier and hit 'read header' this will redo the automatic mapping.

When you are ready hit the parse button , the file will be processed and you can see the results in the main window, now you can repeat the process until you get the fields exactly how you want them or hit exit to go on with the real task ( rename/update) of files. Non existent files will be automatically marked as skip.

Remember Microsoft XL removes the text qualifier from files so you might want to leave it blank.


Play

At the upper part of the play panel you have all the info you want about the current file playing , AMG support ( you have to be connected to the internet ) and typical options to control the playlist . A 16 band EQ is available and presets can be saved and loaded on spot. Also there are some special options for slide show display of pictures ( ID3 pictures have the strongest preference ).

At the lower part is the files and playlists currently on your computer at the current folder selected. These can be played or added to the playlist.

A playlist queue is also available so you can store all your playlists in one place and listen to them automatically or manually.

Pop up menus are available in both lists with shortcuts to make your life easier.


Online

The main purpose of this panel is to help you manipulate albums at once using the full text search functionality of freedb or www.allmusic.com website.

Many times you get files gathered in folders per album without any tags or correct filenames, you can also end up like that if you try to convert your old LP's into mp3's and so on.

freeDb

The interface for searching matches the one found over at freedb.org , just type the text you want to search for, click in what to include and optionally fill in the artist and/or album field to filter out the results so you end up with only a few exact matches.

You can also search by the Disk ID generated from the files in the current folder or use the original CD-ROM to retrieve the information.

After the result grid is populated double click on an album and the info for that album is retrieved and presented in the album info panel. You can furthermore edit the main fields (expect for track names )

AMG

A standard web browser is used for searching at amg. When you arrive at the album page simply click the get album button.. album art/comments and all other info is automatically retrieved, formatted and presented ready for usage. You can even save the album art an or comments as files in the current folder, finally there are two options to process or not art/comments. ( if the append button is checked the pictures will be added to the file's images else all images will be clear and only the album cover art will remain )

Use the 'Apply album' button.

This is it, all the tracks in the selected folder will be ready to be updated and renamed automatically. You can still modify the files in the grid editing filenames and tag fields before you decide to rename or update.

Use the pop menu for options like move up or down, remove track from list and even update or rename one by one.

If a folder contains more files than the current album then only the first files that match the album track count will be affected, if we have less files then the rest of the album tracks will be ignored.
There is also the possibility to insert placeholders for missing tracks and to selectively update or skip any track.

You can use the Auto sort button to convert a random order of files into the exact order of the album ( as long as the duration of each song matches exactly or is near by 1-2 seconds to the original album info)

Rename follows the general rename options and tag update the general batch update options.

Always have in mind that freedb is a free service and quite a few people could be using it at a certain time, make your searches smart by providing a lot of info in the 'search for' field so the server will not be strained for huge result matches.


LIBIntro

What the library can do for you.

The main concept of the library is to let you catalog your music collection that can be dispersed into many CD/DVD’s or Hard Disks into one unified and standardized format for easier navigation, search and otherwise handling of a large collection of files easily. The whole procedure involves importing of files depending heavily on correct tags to create albums, artists and tracks with relationships to each other, it will not scan or parse filenames to create the above info, and therefore correct tags are a must. That been said files will be identified as ‘unique’ depending solely on full path information, in case of duplicate drive letters (the case with CD’s for example) the serial number of the disk will be taken into account to create unique entries in the library, the import process relies on that info to tell if a file need to be inserted or updated. There are options to keep the actual files and the library entries in sync when renaming and updating tags in the main part of the program so the library will not become obsolete and especially the ‘sync when renaming' option is strongly recommended to be checked.


Step 1 - importing your files.

Click on the add button and a windows with all the options you need will be opened. The first thing you have to set is the Drive/Path that you want to scan for files, the subfolders checkbox dictates whether files from the whole hierarchical structure beyond the specified root will be added. You will be presented with two options for volumes (Volumes are the logical containers of files and in fact are the separate disks you add into your collections), you will be prompted to create one or in the event that you rescan the same drive the volume will be selected for you relying on the serial number of the disk. File types to be included are also available like mp3,ogg etch. There are two modes for import insert and update , insert only appends new files to the library skipping already existent files , update does the opposite, the default is to insert & update files.

The most detailed and maybe significant options are available trough clicking the import options button. You are presented with options for album, artist and track handling.

Album options require you to specify how you want images to be imported, you can use tags or actual jpeg files to retrieve image information, you can use tags or text files to retrieve album reviews and finally the involved people tag field to create credit lists.

Artist options can be used to specify alternative naming for artists beginning with ‘The’ or multi artist tracks like ArtistA feat. ArtistB.

Track options can be used to store extended info into the library like the MD5 hash of the audio data of files, extra tag field or user tag fields.

When everything is set you hit the scan button and let the program do its job, depending on the above options the import might take a while to finish.


Step 2 - defining the tree views

Step 2 - defining/using the tree.

The hierarchical tree structure on the left which categorizes your data into many ways , those are:

  • By volumes and it is automatic.
    All of you volumes ( separate disks ) will be presented here in the exact folder hierarchy as the physical media.

  • By user defined views.
    As many as you wish can be defined in detail using the configure tree views button.

    Defining them is easy simple add rows ( views - parent nodes ) to the left grid assign a name and a graphic using the toolbar buttons.
    After that on the left grid go on and use the right click menu to insert rows and then select fields and a graphic for each row ( level ).
    Field names are enclosed in % characters, you can optionally use a substring only of a field, as an example you can use the first letter of an artist like so : %art.name[1,1]% you can also mix fields and literal values to create the desired output a good example are decades : %year[1,3]%'0s you can also use as many fields for a level as you wish a good example is a year - album name combination : %year_% - %alb.name%.
    Click save to store your views and then click the rebuild tree button to re create the tree.

  • By playlists.
    Playlists can be created and then populated with data. Playlists are hierarchical that means that if a user clicks on the parent playlist all the files included in the parent and child playlists will be presented. Some examples might be to define a ‘Hard Rock Favorites’ playlist and then create children on that node using Artists and then populating those playlists with each artist favorite songs. So when you click ‘Hard Rock Favorites’ all of the artist favorite songs will appear, then you might want to click on let’s say ‘Deep Purple best of’ and only those songs will appear.
    You can re arrange the playlists using drag and drop.

  • By queries.
    Queries are basically advanced filters that can be stored so you can easily find specific data. Queries can have some or all of their fields to be prompted when a user clicks on that specific query for easier searches. There is no limit as how many fields can be a part of a query

There are some special options for queries, as availability. Availability comprises of two options ‘treeview’ and ‘grid’ , those queries will then be available at the combo boxes above the tree or grid and can be activated on demand. As an example one can create a query that filters out only songs in a specific language ( Greek for example ) so when this is activated on the tree view then only artists, albums and any other entities that have Greek as the value in the language field will be presented making navigation of large libraries more flexible and efficient. The same strategy can be applied on the grid, as an example one can browse a specific artist on the treeview and all of that artists songs will be presented on the grid , if we create a special filter to display only songs with (‘01’ or ‘1’) as a track value then we end up with the first songs of each album , thus having a cleaner view of the artists albums.

A query can return a limited amount of records upon user demand and it can even return random records in combination with an advanced filter.


Step 2 - defining using the

Step 3 - defining/using the grid.

The grid is where the actual data is displayed based upon the various criteria.

The columns of the grid can be selected and modified by the user clicking the columns button, after that a user can select the sort by clicking on a specific column, using the shift_click combination multiple columns can be used for sorting.

When the end result is satisfactory including column ordering and size, presets can be used to save that exact view for future selection, there is no limit as how many presets can be stored and used.

A right click menu is available for the current file and or selection of files, with various commands so further refinement manipulation of the library can be done in an easy to use manner.


Step 3 - using the properties panel

Step 4 - using the properties panel

Analytical information about the current track, album or artist, with even more data for albums and artists like favorite songs/ images/other text data is displayed here.

Most of that data is editable and can be saved back to the library using the ‘update record button', this button saves the current track, album or artist and not all of them.

One can use allmusic.com site to get and store detailed info about the album or artist in a complete and easy to use manner, just click the allmusic tab select what you want to get, ( Artist or album ) click search to try and automatically find the above when the page finishes loading click the get button and the Album or Artist tab will be displayed filled with data from allmusic, click the update record to save it back to the library.

There is also an extra info bar displaying the totals for size, duration and the average bitrate of all the songs in the grid.

Most of the functionality here is pretty straightforward.

Just remember that navigation may be a bit slower when specific pages are displayed due to the extra data needed.


Tools

There are several extra functions to help you maintain a good library.

  • Change albums - volumes
    Here the tracks can be moved to another artist - album combination or a single artist or even another volume to correct possible errors or bad tag data.

  • Batch replace.
    This tool will help you to batch assign specific values to many records at once, it can be used for example to change the genre field in a lot of files at once.

  • Update tags.
    This will update the real files on your disk based on the library fields , there are special options in the main options of the program to help you use album data and apply it to tracks easily.

  • Parse styles - tones.
    Styles and tones stored in the files or library are really long strings separated by commas in order to make good use of the in queries this function will break them apart and store them in the library.

  • Remove
    Batch deletion or complete deletion of the library is possible here. There is no undo function so be     careful!!

  • Clean obsolete files.
    Files that no longer exist can be detected and removed from the library. There is the option to select only fixed disks and it is the default in order not to remove records of files on removable media ( CD/DVD ). A user can choose whether to remove records or simply flag them with a user defined value for later processing.

  • Maintenance.
    Obsolete entries can be removed here like artists with no songs etch. There is also the compact command which will reduce the size of the library and keep it in good heath.
    It is recommended to use the compact command after importing of files or extended manipulation of the library like adding removing images and other data.


script_basic

Basic script usage and concept.

What are scripts? How can I use them and benefit from them ?

Scripts are a way to poke into TGF's internal routines and functions, they are simple programs using Delphi/Pascal syntax that can integrate into many parts of the program like the tag update panel, the physical restructure and the online panel.

You can use them to extend the program's functionality and create custom made features to solve even the most demanding tasks. When all of the options fail or when there is a unique situation, scripts are there to help you.

A lot of sample scripts are installed by default to help you grasp the concept and why not.. also to use them.

They are divided into 3 categories (Tag/restructure/online) each one with unique functions and procedures, there are however system wide functions that help you take advantage of things like case formatting etch. Finally you can use most of Delphi's system functions and classes.

Always remember that CTRL_SPACE in the editor brings up a list of the available routines and pressing CTRL_SHIFT_SPACE inside a routine will pop out a hint with variable usage.

TGF system wide routines :

function RPos( sSubstring, sTarget : string) : integer;

 this will return the rightmost position of a string within a string;

function WrapTextEx( const sText: string; iLen: integer ): string;

 it will wrap a long text ( for example comment field ) to desired length

function PadLeft( const s :string; const i : integer; const sDelimeter: string ): string;

function PadRight( const s :string; const i : integer;
 const sDelimeter : string  ):
 string;

 will pad a string to the specified length with the specified delimiter

function sys_ApplyCase( const sValue: string; const iCase: integer ): string;

 Case application according to the iCase variable, use 0 for default case or one of the following :

  1 UPPER CASE

  2 lower case

  3 Proper case

  4 First UPPER

function sys_ApplyMatrix( const sText: string; iFlg: integer ) : string;

 Replacement matrices application according to the iFlge variable

  iFlg = 0 rename

         1 tag

function sys_ApplyMask( const sMask, sSource: string; slOutPut: TStringList ): boolean;'

 Will parse the sSource variable using sMask and store the tokens in a stringlist.

 An example can be found in the 'multiple masks' sample script.

function sys_RegexReplace( sSource, sRegexExpr, sValue: string; bSubstitute: boolean ): string;

 Full powered regex search and replace, the bSubstitute variable if set to true will make usage of placeholders

 for each match, place   holders are defined like $1...$n

function sys_RegexFind( sSource, sRegexExpr: string ): boolean;

 Regular expression find.

procedure sys_Execute( const sExec,sParams: string; bShow: boolean );

 Use this one to call an external program, if bShow is set to false then it will run in the background.

procedure sys_RenameCurrentTreeFolder( const sMask: string );

 will rename the current treeview folder according to sMask

 have in mind that the files will be reloaded, use it accordingly.

procedure sys_ClipboardCopy( const sText: string );

 copy some text to clipboard

function sys_ClipboardPaste: string;

 retrieve text from clipboard

function sys_getCurrentDirectory: string;

function sys_FormatDuration( const iDur: integer ): string;

 returns the iDur value ( seconds ) in hh:mm:ss format

function sys_FormatDurationEx( const iDur: integer; bUseFrames: boolean ): string;

 returns the value in mm:ss or mm:ss:ff if bUseFrames is true

function sys_MessageDlg( const sMsg: string; iDlgTypeFlg,iButtonsFlg: integer ): integer;

 will pop up a message dialog

 iDlgTypeFlg values :

  0 Warning

  1 Error

  2 Information

  3 Confirmation

  4 None

iButtonFlg values:

 0 Yes/No

 1 Yes/No/Cancel

returns :

 0 = Yes

 1 = No

 2 = Cancel

function sys_SaveFileDialog( const sFilter, sInitialDir: string ): string;

 Displays the save to file dialog

function sys_OpenFileDialog( const sFilter, sInitialDir: string ): string;

 Displays the open file dialog

function sys_RemoveIllegalChars( const sFile: string ): string;

  Removes any illegal filename characters according to options

procedure sys_SetStatusText( const iPanel: integer; const sText: string );

 Sets the text for the selected status bar panel

function sys_GetStatusText( const iPanel: integer ): string;

 Retrieve the status bar panel text


Rename scripts

Scripts in the rename panel are used in the following way:

First you scan for your files using any variables you might want, then use the down arrow in the script button to select the script you want, then click the script button to execute.

Scripts will read and write to the result grid only, once the script is over and you like the result hit the rename button to proceed as usual.

A sample script for special Joliet filenames is included as a tutorial.

Rename panel specific routines:

function rn_Init: boolean; // init things

function rn_Skip: boolean; // moves to the next row

function rn_getColumn(const sColumn: string): string; // access the grid data

 sColumn =

    PATH

    FILE

    RENAME

procedure rn_setName(const sValue: string); // sets the 'If renamed' column

procedure rn_setSkip(const bSkip: boolean); // checks un checks the skip mark

procedure rn_setResult(const sValue: string); // sets the result column


script_tag

Tag panel scripts.

Scripts in the tag panel are used in the following way:

First you scan for your files using any variables you might want, then use the down arrow in the script button to select the script you want, then click the script button to execute.

Scripts will read and write to the result grid only, once the script is over and you like the result hit the update button to proceed as usual. Hence scripts are a way to re format the grid values based on custom criteria and even the most complex logic can be used at will.

Tag panel specific routines:

function tg_getField(const sField: string): string;

 this one will help you retrieve a specific field (column ) from the current grid row

 available fields are :

     'File'    read only

     'Folder'  read only

     'Path'    read only

     'Track'

     'Artist'

     'Title'

     'Album'

     'Year'

     'Genre'

     'Comment'

     'Composer'

     'Language'

     'Copyright

     'URL'

     'Encoder'

     'Tones'

     'Styles'

     'Mood'

     'Situation'

     'Rating'

     'Quality'

     'Tempo'

     'Type'

procedure tg_setField(const sField, sValue: string);

 like the one above but this one will update the grid's value

procedure tg_setResult(const sValue: string);

 will update the result column with any custom value you pass in the sValue variable.

procedure tg_setSkip(const bSkip: boolean);

 will toggle the skip checkbox based on the bSkip boolean variable.

function tg_Init: boolean;

 Moves to the first row in the grid ignoring any rows marked as skip.

function tg_Skip: boolean;

 Moves to the row next to the current taking the marked as skip into consideration.

function tg_GetFileName: string;

Returns the full path and file name of the current row.

function tg_Rename( const sNewName: string ): boolean;

 Renames the file in the current row of the grid

function tg_GetRowCount: integer;

  Returns the number of rows in the grid

procedure tg_LoadFile;

  This will enable usage of the gTag variable


script_restruct

Physical restructure scripts.

Very useful to apply and use folder creation rules. You can use inline folder creation levels, add levels delete levels use the count of files per created folder to decide what you want to do with 1 file per folder scenario's etch etch etch...

Two scripts are provided for you to read and use and why not enhance, The 'simple' script will just remove 'The ' from artists and place those artists in other folder than 'T'/'Artist name' , the advanced one will use very advanced logic to create a directory structure based on Genre info, count of files, missing fields, and will also use 'The ' removal.

The first line of the script can be used to create folder details dynamically thus making script usage independent from the program setting, the syntax is as follows

{!%A:1|%A|(%Y) %L}

it must be inside a commend and the first character must be ! , use | to separate levels and : to use sub strings.

The example above is equivalent to :

%A 1

%A

(%Y) %L

and will produce the Artist first letter/Artist/(Year) - Album structure, it is optional.

Available routines are :

procedure re_Init( const bGetCount: boolean );

 inits things and optionally calculates the count of files per created folder ( a bit slower )

function re_Skip: boolean;

 moves to the next file if any

function re_getLevel( const iLevel: integer ): string;

 gets the level value

 iLevel = 0 always return the current filename

procedure re_setLevel( const iLevel: integer; const sValue: string );

 sets the level value

procedure re_removeLevel( const iLevel: integer );

 removes a level

procedure re_addLevel( const sValue: string );

 adds a level dynamically

function re_getCount: integer;

 returns the count of files per folder for the specific file enumerated, must use bGetCount = true in the Init procedure.

procedure re_LoadFile;

  This will enable usage of the gTag variable


script_online

Online scripts ( Custom web grabbers )

There is a new page in the online panel named custom, there is where scripts come to life.

They are basically custom web page grabbers that help you use any site with music info you want to update your albums.

There is a sample http://discogs.com script provided to demonstrate the concept of HTML page parsing and the integration with TGF's internal structures.

The first line of the script must be used to provide the home page of the site you want to use. it must be inside a commend { } or //...

You can make use of the build in commands for searching the current song, album or artist in the following way.

After the first line or some lines before the main code insert a comment like so..

this is for the Discogs site ..

{?

 ARTIST=FORM;TYPE=artists:str|Q=%A:str|btn=#:click

/?}

ARTIST= this will tell the script what to search for , possible values are ( TITLE , ALBUM, ARTIST )

FORM; this will tell the script to use an HTML form based query URL; will make use of a url

TYPE=artists:str|Q=%:str|btn=#:click

those are the form fields and some other parameters :

TYPE is the name of the drop down combo

:str is for strings :int for numbers

the % character is a placeholder for the actual data coming for the program ( title, album or artist )

the | characters separates the fields, you can use as many as you like, but as the last one you must use the submit button

btn is the name of the button the # character instructs the script that this is an event oriented control

:click is the event you can use mouseup and mousedown as well.

Available routines are :

procedure on_Init;

 clear all album values

procedure on_clearTracks;

 clear tracks only

procedure on_clearCredits;

 clear credits only

procedure on_loadHTML( sl: TStringList );

 loads the current page displayed into a stringlist

procedure on_loadHTMLURL( sl: TStringList; const sURL: string );

 loads a user defined URL into a stringlist

function on_FindRow( var iRow: integer; const iRowEnd: integer; const sContent: string; sl: TStringList ): boolean;

 find a row by specific content

function on_cleanHTMLLine( const sValue: string ): string;

 will clear HTML tags and convert reserved values to literals

function on_cleanHTMLMultiLine( const sValue: string ): string;

 same as above will also format as paragraph

// use the following to update the album info on screen

procedure on_setArtist( const sValue: string );

procedure on_setAlbum( const sValue: string );

procedure on_setYear( const sValue: string );

procedure on_setGenre( const sValue: string );

procedure on_setComment( const sValue: string );

procedure on_setTones( const sValue: string );

procedure on_setStyles( const sValue: string );

procedure on_setThemes( const sValue: string );

procedure on_setType( const sValue: string );

procedure on_setLabel( const sValue: string );

procedure on_addTrack( const sTrack,sTitle,sComposer,sTime: string );

procedure on_setPicture( const sURL: string ); // if sURL is '' the picture will be cleared

procedure on_addCredit( const sRole,sName: string );

// use those to retrieve the album info values

function on_getArtist: string;

function on_getAlbum: string;

function on_getYear: string;

function on_getGenre: string;

function on_getComment: string;

function on_getTones: string;

function on_getStyles: string;

function on_getThemes: string;

function on_getType: string;

function on_getLabel: string;

//

procedure on_getTrack( const iRow: integer; var sTrack,sTitle,sComposer,sTime: string; var fDur: extended );

 get and store a specific track info into the passed variables.

function on_getIsVarious: boolean;

 will get the state of the various artists button ( pressed = true )

// some automation routines follow...

procedure on_Apply;

 is like clicking the apply button

procedure on_Update;

 is like clicking the update button

procedure on_UpdateThis( const bLoadTags: boolean );

 is like using the CTRL_U key but has a parameter to dictate if you want to load the tag before saving.
you can use LoadTags = false in case you make use of the gTag variable and want to set everything in your code.

procedure on_Rename;

 is like clicking the rename button

procedure on_RenameThis;

 is like using the CTRL_R key

procedure on_SaveComment( bSilent: boolean );

 is like clicking the save comment button, if bSilent is true no dialog appears

procedure on_SaveCredits( bSilent: boolean );

 is like clicking the save credits button, if bSilent is true no dialog appears

function on_SavePicture( iFlg: integer; bSilent: boolean ): string;

 it will return the filename

 is using the pop up menu to save as :

   iFlg = 0 // as album name

   iFlg = 1 // as folder.jpg

   bSilent if true will suprees the 'File saved as message'

function on_getGrdAlbumRow: integer;

 returns current album row

function on_getGrdAlbumRowCount: integer;

 returns album row count

function on_getGrdField(const sField: string): string;

 returns a specific grid field

  File

  Rename

  Artist

  Title

  Album

  Track

  Year

  Genre

  Comment

  Composer

  Tones

  Styles

  Rating

procedure on_setGrdField(const sField, sValue: string);

 sets the value of a specific grid field ( File is read only )

function on_getGrdRow: integer;

 returns current grid row

function on_getGrdRowCount: integer;

 returns grid row count

procedure on_setGrdRow(const iRow: integer);

 sets the current row for the grid

procedure on_setGrdSkip(const bSkip: boolean);

 marks row as skip

procedure on_setGrdResult(const sValue: string);

 sets the result column

procedure on_grdApplyRow( const iAlbumRow,iGridRow: integer );

is equivalent with the apply from functionality ( sets a grid row from an album row )

function on_getFileName: string;

reurns the full path and filename of the current file

procedure on_LoadFile;

makes gTag variable usage possible for the current row


gTag variable

The gTag variable

For advanced users only,

The gTag class variable makes available most of its methods and properties to help you write directly

to the files from within a script.

The 'advanced ID3 sync' script is a nice example of what can be done using this technique.

The gTag variable has the following functionality, use it with discretion.

    Property Track: string

    Property TrackF: string

    Property Artist: string

    Property Title: string

    Property Album: string

    Property Genre: string

    Property Year: string

    Property Comment: string

    Property Language: string

    Property Composer: string

    Property Copyright: string

    Property URL: string

    Property EncodedBy: string

    Property Lyrics: string

    Property Lyricist: string

    Property OrigLyricist: string

    Property Tones: string

    Property Styles: string

    Property Mood: string

    Property Situation: string

    Property Rating: string

    Property Quality: string

    Property Tempo: string

    Property Type_: string

    Property OrigAlbum: string

    Property OrigArtist: string

    Property OrigYear: string

    Property Performer: string

    Property Description: string

    Property Subtitle: string

    Property ContentGroup: string

    Property Conductor: string

    Property Band: string

    Property MixArtist: string

    Property PartInSet: string

    Property MediaType: string

    Property Publisher: string

    Property EncoderSettings: string

    Property RecordDate: string

    Property RecordLocation: string

    Property Organization: string

    Property Catalog: string

    Property EAN_UPC: string

    Property ISBN: string

    Property LC: string

    Property ISRC: string

    Property InvolvedPeople: string

    Property WWWCommercialInfo: string

    Property WWWCopyright: string

    Property WWWAudioFile: string

    Property WWWArtist: string

    Property WWWAudioSource: string

    Property WWWRadioPage: string

    Property WWWPayment: string

    Property WWWPublisher: string

    Property Track1: string

    Property Artist1: string

    Property Title1: string

    Property Album1: string

    Property Genre1: string

    Property Year1: string

    Property Comment1: string

    Property Track2: string

    Property Artist2: string

    Property Title2: string

    Property Album2: string

    Property Genre2: string

    Property Year2: string

    Property Comment2: string

    Property Bitrate: string

    Property Mode: string

    Property SampleRate: string

    Property EncoderUsed: string

    Property Version: string

    Property VBR: string

    Property FileName: string

    Property FileDate: string

    Property FileTime: string

    Property FileExt: string

    Property PicCount: integer

    Property HasPictures: boolean

    Property HasLyrics: boolean

    Property TagExists: boolean

    Property FileType: integer

    Property TagType: integer

    Property FileSize: integer

    Property AudioSize: integer

    Property Duration: integer

    Property DurationF: string

    Property Caption: string

    Property CaptionTag1: string

    Property CaptionTag2: string

    Property ResultStr: string

    Function ReadFromFile( const sFile : string; bMPEGRead, bFullID3v2Read : boolean; bLoadVars : boolean) : Boolean;

    Function SaveToFile( const iFlg : integer; const bReload : boolean; sNewFile : string; bBasicOnly : boolean) : Boolean;

    Function RemoveFromFile( const iFlg : integer) : Boolean;

    Procedure Reset( const bFieldsOnly: boolean;

    Procedure ResetData;

    Procedure FormatWithMatrix( const bBasic, bMore : boolean;

    Procedure FormatWithCase( const iCase : integer; const bBasic, bMore : boolean;

    Function Credits2Text : string;

    Function Text2Credits( const sText : string) : string;

    Function TagExistsToString : string;

    Procedure ClearPictures');

    Procedure LoadPicture( const sFile: string );

    Function GetMD5Str( bAudioOnly : boolean) : string;

    Procedure ExtraFieldsRemove;

    Procedure ExtraFieldsAdd( sID, sValue : string)');

    Function ExtraFieldsCount : integer';

    Function ExtraFieldID( Index : integer) : string';

    Function ExtraFieldValue( Index : integer) : string';

    Procedure ExtraFieldValueSet( Index : integer; sValue : string)';

    Procedure ExtraFieldSet( sID, sValue : string)');

    Function ExtraFieldGet( sID : string)');