Advanced Title Formatting (ATF) for Winamp ID3 Decoding
I know I mentioned this a while back (previous post), but I've been around the world again since then and figured RR has everything else I need and more except full Advanced Title Formatting (ATF). So I'd like to know if I'm alone in this request.
Full ATF support would allow RR to use the full tag capabilities of Winamp for extreme customization of ID3 data presentation and add tag display of internet radio data. (Now that I have EV-DO, I listen to a lot of internet radio stations and Toaster is the only way for me to see the track, artist, and album data being streamed; RR tags only display URL address.)
The following is a detailed description of ATF that I borrowed from the Toaster Winamp Plug-in FAQ. Much of the basic tags are already covered in RR, but the if/then and http codes are not for sure as well as a few others. Imagine the possibilities! All comments welcomed.
Advanced Title Formatting (ATF)
All the tags available within winamp, plus all tags available within the media library, plus a few more. You may use all the usual $commands available to winamp, such as $if, $cut etc.
You may also use '\n' in your format lines to create new lines, however its use is not recommended as you may cause some text to be cut off.
The list of tags includes, but is not limited to the following:
%title% The title as returned by Winamp
%artist% The artist as returned by Winamp
The album as returned by Winamp
%tracknumber% The tracknumber as returned by the media library, formatted to two digits
%track% The tracknumber as returned by Winamp (-1 for invalid tracks)
%year% The year as returned by Winamp
%comment% As read from Winamp
%pllen% The length of the playlist
%plpos% The current position in the playlist
%watitle% The playlist title as formatted in Winamp
%wastatus% The status of the winamp player. Paused, Playing or Stopped.
%filename% The filename of the current playlist item
%dir% The directory of the current playlist item, without the filename
%parentdir% The single directory of the current item, without the full path
%playcount% As read from the media library
%rating% As read from the media library
%ratingstar% The rating as represented by the configured stars to use for the rating
%length% The length of the current playlist item
%lengthf% The length of the current playlist item, formatted to hour.min.sec
%bitrate% As read from the media library
%bitratewa% As read from Winamp
%channelnum% The number of channels
%channels% stereo or mono depending on number of channels
%srate% Sample rate
%vol% Volume as a percentage (0-100)
%lastplayf% Last played date - formatted
%daysago% Number of days since item was last played
%genre% As read from the media library
%type% As read from the media library
%filesize% As read from the media library
%lastplay% As read from the media library
%lastupd% As read from the media library
%status% Current reason for displaying toast. 'New Rating', 'New Track', 'End of Playback', "Hotkey" or "Volume Changed"
%shuffle% Returns current shuffle status
%ishttp% Returns 'Yes' if the current filename begins with http (Internet streaming)
%isinml% Returns 'Yes' if the item is in the media library
%hascover% Returns 'Yes' if the item has a cover either as folder.jpg or an ID3 cover
%tagln()% Returns the length of the enclosed tag. explained below.
%cmp()% Compares two tags, and returns the value of the left side if it is true. explained below.
cmp and tagln tags explained:
To use the tagln() tag, you simply enclose a tag or text within '() and precede the tag with a ':' to indicate that the item is tag. eg: %tagln(:artist)% would return the number of characters in the tag %artist%.
To use the cmp() tag, you seperate two values on either side of '>', '<' or '='. Toaster will compare the two values and if they satisfy the operator (<>=) it will return the value of the tag or text on the left. To indicate a tag, precede the value with a ':'. eg. %cmp(:rating>3)% will return the value of %rating% if it is bigger than 3. See below for more examples.
$if(%cmp(:genre=rock)%, Rock n Roll, Another Genre) Will display 'Rock n Roll' if the genre is rock, otherwise will display 'Another Genre'.
$if(%cmp(:artist=:album)%, Self Titled, %album%) Will display 'Self Titled' if the artist is the same as the album, otherwise it will display the album
$if(%cmp(:tagln(:album)>10)%, $cut(%album%, 10)..., %album%) If the album is bigger than 10 characters, it will truncate it to 10 characters and add '...', otherwise it just displays the album
$if(%ishttp%, %watitle%, %title% - %artist%) Uses the winamp title if it is a http stream, otherwise uses title and artist information
$if(%cmp(:status=New Rating)%, Applying new rating,) Displays 'Applying new rating' if the status indicates a new rating is being set
$if(%cmp(:bitrate>128)%, High Quality, Low Quality) Shows 'High Quality' or 'Low Quality' depending on the bitrate
$if(%cmp(:cmp(:rating>0)<3)%, Less than 3, Bigger or 0) Determines whether the rating is less than 3 and bigger than 0
$if(%cmp(:type=1)%, Video, Other) Displays 'Video' if the type indicates a video
Played %playcount% time'('s')' Shows number of playcounts. Note the use of ' around the (