User:Beto/foobar2000

From Hydrogenaudio Knowledgebase
Revision as of 17:22, 26 September 2006 by Beto (talk | contribs)


I use foobar2000 as my main media player. It is a very powerful and customizable tool, though I do not think I am a customization freak. Most stuff I just rip off from others and tweak to my personal taste.

foobar2000 current screenshot

My current foobar

This is my current foobar. It is based in columnsUI with single column playlist. The single column code is based in mazy's wonderful testcase presented here and tweaked by me.

There are also three trackinfo mod panels to display details about the current playing song and the progressbar (on top of the screenshot).

At the right you can find album art panel that displays the cover of the CD that is playing.

Right below the blue foo browser panels make it easier to navigate through the media library.

foobar2000 scripts and codes

trackinfo mod panels code

top panel

This code scrolls the title of the music if it is larger that the panel width.

//lenght of scrolling
$puts(len,70)

//title
$puts(title,$if2(%title%,No title))

//core code
$align(right,top)
$font(calibri bold,22,glow-7-123-167 glowexpand-1,255-255-255)
$if(%_isplaying%,
$iflonger($get(title),$get(len),

//scroll code
$puts(diff,$sub($len($get(title)),$get(len)))
$puts(start,$add(1,$mod(%_time_elapsed_seconds%,$get(diff))))
$puts(start2,$select($add($div($add(1,$mod( %_time_elapsed_seconds%,$mul($get(diff),2))),$add($get(diff),1)),1),$get(start),$sub($add($get(diff),1),$get(start))))
$substr($get(title),$get(start2),$add($get(start2),$get(len)))

//end of scroll code
,$get(title))$char(10)
$font(candara bold,16,shadow,)
$align(right,bottom)

//artist
$if($meta(album artist),$meta(album artist)' / '%artist%,
$if($meta(performer),$meta(performer)' / '%artist%,
$if2(%artist%,No artist)))$char(10)
,
'Stopped')

//overlay image
$imageabs(0,0,images\overlay.png,)

bottom panel

//genre and style lenght
$puts(item_len,$len($if2(%genre%,No genre)' | '$if2(%style%,No style)))
$puts(item_con,$if2(%genre%,No genre)' | '$if2(%style%,No style))

// Streaming
$if(%_time_total%,,$puts(stream,1))

// Rating
$puts(rtchar,«)

// Last played
$puts(last_played_year,$substr(%last_played%,1,4))
$puts(last_played_month,$substr(%last_played%,6,7))
$puts(last_played_day,$substr(%last_played%,9,10))
$puts(last_played_hour,$substr(%last_played%,12,13))
$puts(last_played_min,$substr(%last_played%,15,16))
$puts(last_played_sec,$substr(%last_played%,18,19))

// Compression ratios
$puts(compr_perc,$muldiv(%__bitrate%,100,1411))
$puts(compr_idx,$div(100,$get(compr_perc))'.'$cut($muldiv($mod(100,$get(compr_perc)),1000,$get(compr_perc)),2))

//Core code
$align(left,top)
$font(tahoma,8,bold,255-255-255)
$if(%_isplaying%,
$ifgreater($get(item_len),100,
$cut($get(item_con),99)'...',
$get(item_con)
)
$align(right,top)
$if2(%album%,No album)$if(%album subtitle%,': '%album subtitle%)' | '$if2(%date%,No date)' | '$if2(%publisher%,No publisher)$char(10)
$if(%_ispaused%,$font(,,bold,255-0-0)'[Paused] ')$font(tahoma,8,bold,255-255-255)$if(%_isplaying%,'['[%_time_elapsed%]$if(%_time_total%,'/'%_time_total%)']')$if(%_isplaying%,$if($get(stream),' [Streaming]',' ['$muldiv(%_time_elapsed_seconds%,100,%_length_seconds%)'%]'))$char(10)
[%__codec%]' '[%bitrate%Kbps]
$if($stricmp(%__encoding%,lossy),
' ['%__encoding%']'$char(10)$char(10),
' ['$get(compr_perc)'%] ['%__encoding%']'$char(10)$char(10))

$if(%rating%,$font(wingdings,9,,)
$repeat($get(rtchar),%rating%)$font(,,,18-173-224)$repeat($get(rtchar),$sub(5,%rating%))$font(calibri,8,bold,255-255-255),
$font(tahoma,7,bold,255-255-255)This track has no rating)' | '
$if(%last_played%,
$ifgreater(%play_count%,1,Played %play_count% times,Played %play_count% time),
This song was never played)
$if(%last_played%,' | Last Played '$get(last_played_day)/$get(last_played_month)/$get(last_played_year)' at '$get(last_played_hour):$get(last_played_min))
,
$align(right,top)'Stopped')

progress bar

$padding(0,0)
$drawrect(,,,10,brushcolor-173-231-252 pencolor-18-173-224)

$puts(progress,$muldiv(%playback_time_seconds%,$sub(%_width%,4),%length_seconds%))

$ifgreater($get(progress),0,
$padding(2,2)$drawrect(,,$get(progress),6,brushcolor-18-173-224 pencolor-null),)

single column playlist code

group by

[%album artist%] %album%

item display

$puts(item_len,$len(%tracknumber%'. '%subalbum%': '$if($meta(album artist),%artist%' - '%title%,%title%)': '%subtitle%))
$puts(item_con,$replace([%tracknumber%'. '][%subalbum%': ']$if($meta(album artist),%artist%' - '%title%,%title%)[': '%subtitle%],'(',$font(calibri bold italic,8,$if(%isplaying%,glow-192-192-192 glowalpha-130,),$if(%_selected%,255-0-0,170-170-170))'('))
$if($strcmp($mod(%_playlist_number%,2),1),
$drawrect(,,,,brushcolor-245-245-245 pencolor-null))
$padding(2,0)
$font(calibri bold,8,$if(%isplaying%,glow-192-192-192 glowalpha-130,),$if(%_selected%,255-0-0,170-170-170))
$ifgreater($get(item_len),182,
$cut($get(item_con),181)'...',
$get(item_con)
)
$alignabs(6,13,%_width%,%_height%,,)
$font(CubicFive10,5,nocleartype,190-190-190)
[%length% | ]
[$info(bitrate) kbps]
$alignabs(0,-1,$sub(%_width%,36),%_height%,right,)
$if($not(%__replaygain_track_gain%),$font(,,,255-0-0)T,)
$if($not(%__replaygain_album_gain%),$font(,,,255-0-0)A,)
$alignabs(0,-1,$sub(%_width%,2),%_height%,right,)
$font(CubicFive10,5,nocleartype,190-190-190)
[%play_count%x]
//$if(%cwb_queueindex%, '['%cwb_queueindexes%/%cwb_queuelength%']')
$alignabs(0,10,$sub(%_width%,2),%_height%,right,)
$font(Wingdings,8,glow-190-190-190 glowexpand-1,250-250-250)
$repeat(«,%rating%)

group display

$puts(ar_w,$calcwidth($longest(%album artist%,%artist%)))
$padding(1,0)
$drawrect(,,,,brushcolor-119-213-249 pencolor-51-191-238)$padding(4,1)
$align(left,top)$font(calibri bold,8,,255-255-255)
$font(,,bold glow-51-191-238,)
%album%[': '%album subtitle%]
$alignabs(0,0,$sub(%_width%,$get(ar_w),14),%_height%,right,)
$font(cubicfive10,5,,18-173-224)
[%encodedby%]
$align(right,top)$font(calibri bold,8,,255-255-255)
$if2(%album artist%,%artist%)
$drawrect($sub(%_width%,$get(ar_w),18),-1,3,%_height%,brushcolor-51-191-238 pencolor-null)
$drawrect($sub(%_width%,$get(ar_w),17),-1,1,%_height%,brushcolor-250-250-250 pencolor-null)
$alignabs(6,15,%_width%,%_height%,,)
$font(CubicFive12,5,nocleartype,18-173-224)
[%date% | ][%genre%][ | %publisher%]
$alignabs(0,14,$sub(%_width%,$get(ar_w),14),%_height%,right,)
$font(cubicfive10,5,,)
[%rippedby%]
$imageabs($sub(%_width%,$get(ar_w),98),0,images\playlist-refl.png,)
$imageabs($sub(%_width%,87),0,images\playlist-refl.png,)