Foobar2000 Customization Topic


Recommended Posts

No problem!

Visual Style (Azrael 4.8.8 by Neksus)

foomyxas.jpg

Download

*Requires columns_ui

-

Buttons (Metal & Glass by myxamatosis)

Metal Pack

Metal.jpg

Download

Glass Pack

Glass.jpg

Download

-

Formatting

System Tray

//=============================Custom start==============================*

//============================Enable options=============================*
//Set to 1 to enable, 0 to disable, other details see the explanation!

$puts(enable_artist,1)
$puts(enable_album,1)
$puts(enable_lyrics,0)

$puts(enable_details,1)
$puts(enable_folders,0)

$puts(title_length,6)

//The length of the line is adjusted dynamically. if it always appears too long/short then you can finetune it here. Default value is 53 (53%)
$puts(line_modifier,53)

//the character used to draw the seperator-line
$puts(line_char,□)
//==============================Custom end===============================*





//============================Start Guessing=============================*
//enable tag-guessing? (set to 0 to completely disable any tag-guessing)
$puts(enable_guess,1)

//Try to guess Tracknumbers? (set to 0 to disable)
//If you experience slowdowns with untagged files, disable this.
$puts(enable_trackguess,1)

//get filename and do cleanup
$puts(filename,
$if(%__referenced_file%,$trim(%__referenced_file%),$trim(%_filename%)))
$puts(filename,$replace($trim(%_filename%),_,' ','%20',' ','  ',' ','  ',' '))

//check if guessing is enabled, otherwise use tags-only and skip guessing
$if($not($strcmp($get(enable_guess),1)),
$puts(artist,[$trim(%artist%)])
$puts(album,[$trim(%album%)])
$puts(title,[$trim(%title%)])
$puts(tracknr,[$trim(%tracknumber%)])
$puts(folder,$trim($replace(%_directoryname%,_,' ','%20',' ','  ',' '))),

//START GUESSING
$puts(filename2,$get(filename))

//tracknumber-guessing
$if(%tracknumber%,$puts(tracknr,$trim($num(%tracknumber%,2))),
$if($strcmp($get(enable_trackguess),1),

//search for 1st two digits
$puts(fname,$replace($substr($get(filename),1,1),1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0))
$if($strcmp($substr($get(fname),1,1),0),$puts(tracknr_check,1),)
$if($not($strcmp($get(tracknr_check),$char())),
$if($strcmp($lower($substr($get(filename),2,2)),$upper($substr($get(filename),2,2))),
$if($or($strcmp($substr($get(filename),3,3),' '),$strcmp($substr($get(filename),3,3),'.'),$strcmp($substr($get(filename),3,3),'-')),
$puts(tracknr,$left($get(filename),2))
$if($strcmp($substr($get(filename),3,4),' -'),
$puts(filename,$right($get(filename),$sub($len2($get(filename)),4))),
$puts(filename,$right($get(filename),$sub($len2($get(filename)),3)))
)),$puts(tracknr_check,)))

//search for [brackets]
$if($strcmp($get(tracknr_check),$char()),
$puts(tracknr_check,$if2($strchr($get(filename),'['),))
$if($not($strcmp($get(tracknr_check),$char())),
$if($strcmp($substr($get(filename),$add($get(tracknr_check),3),$add($get(tracknr_check),3)),']'),
$puts(tracknr,$substr($get(filename),$add($get(tracknr_check),1),$add($get(tracknr_check),2)))
$puts(filename,$replace($get(filename),$substr($get(filename),$get(tracknr_check),$add($get(tracknr_check),3)),)),
$puts(tracknr_check,))))

//search for (brackets)
$if($strcmp($get(tracknr_check),$char()),
$puts(tracknr_check,$if2($strchr($get(filename),'('),))
$if($not($strcmp($get(tracknr_check),$char())),
$if($strcmp($substr($get(filename),$add($get(tracknr_check),3),$add($get(tracknr_check),3)),')'),
$puts(tracknr,$substr($get(filename),$add($get(tracknr_check),1),$add($get(tracknr_check),2)))
$puts(filename,$replace($get(filename),$substr($get(filename),$get(tracknr_check),$add($get(tracknr_check),3)),)),
$puts(tracknr_check,))))

//search for -enclosed_in_dashes-
$if($strcmp($get(tracknr_check),$char()),
//1st pass
$puts(tracknr_check,$if2($strchr($get(filename),'-'),))
$if($not($strcmp($get(tracknr_check),$char())),
$if($and(
$strcmp($substr($get(filename),$add($get(tracknr_check),3),$add($get(tracknr_check),3)),'-'),
$strcmp($lower($substr($get(filename),$add($get(tracknr_check),1),$add($get(tracknr_check),2))),$upper($substr($get(filename),$add($get(tracknr_check),1),$add($get(tracknr_check),2))))
),
$puts(tracknr,$substr($get(filename),$add($get(tracknr_check),1),$add($get(tracknr_check),2)))

$if($strcmp($get(tracknr_check),1),
$puts(filename,$replace($get(filename),$substr($get(filename),$get(tracknr_check),$add($get(tracknr_check),3)),)),
$puts(filename,$replace($get(filename),$substr($get(filename),$get(tracknr_check),$add($get(tracknr_check),2)),)))
,


//2nd pass
$puts(fname,$right($get(filename),$sub($len2($get(filename)),$get(tracknr_check))))
$puts(tracknr_check,$if2($strchr($get(fname),'-'),))
$if($not($strcmp($get(tracknr_check),$char())),
$if($and(
$strcmp($substr($get(fname),$add($get(tracknr_check),3),$add($get(tracknr_check),3)),'-'),
$strcmp($lower($substr($get(fname),$add($get(tracknr_check),1),$add($get(tracknr_check),2))),$upper($substr($get(fname),$add($get(tracknr_check),1),$add($get(tracknr_check),2))))
),
$puts(tracknr,$substr($get(fname),$add($get(tracknr_check),1),$add($get(tracknr_check),2)))
$puts(filename,$replace($get(filename),'-'$get(tracknr),)),

//3rd pass (search backwards)
$puts(tracknr_check,$if2($strrchr($get(fname),'-'),))
$if($not($strcmp($get(tracknr_check),$char())),
$if($and(
$strcmp($substr($get(fname),$sub($get(tracknr_check),3),$sub($get(tracknr_check),3)),'-'),
$strcmp($lower($substr($get(fname),$sub($get(tracknr_check),2),$sub($get(tracknr_check),1))),$upper($substr($get(fname),$sub($get(tracknr_check),2),$sub($get(tracknr_check),1))))
),
$puts(tracknr,$substr($get(fname),$sub($get(tracknr_check),2),$sub($get(tracknr_check),1)))
$puts(filename,$replace($get(filename),'-'$get(tracknr),)),
$puts(tracknr_check,))))))))

//search for "#??"
$if($strcmp($get(tracknr_check),$char()),
$puts(tracknr_check,$if2($strchr($get(filename),'#'),))
$if($not($strcmp($get(tracknr_check),$char())),
$if($strcmp($upper($substr($get(filename),$add($get(tracknr_check),1),$add($get(tracknr_check),2))),$lower($substr($get(filename),$add($get(tracknr_check),1),$add($get(tracknr_check),2)))),
$puts(tracknr,$substr($get(filename),$add($get(tracknr_check),1),$add($get(tracknr_check),2)))
$if($or($strcmp($substr($get(filename),$sub($get(tracknr_check),1),$add($get(tracknr_check),3)),'[#'$get(tracknr)']'),
$strcmp($substr($get(filename),$sub($get(tracknr_check),1),$add($get(tracknr_check),3)),'(#'$get(tracknr)')')),
$puts(filename,$replace($get(filename),$substr($get(filename),$sub($get(tracknr_check),1),$add($get(tracknr_check),3)),)),
$puts(filename,$replace($get(filename),'#'$get(tracknr),))
),$puts(tracknr_check,))))

//search for "- ?? - "
$if($strcmp($get(tracknr_check),$char()),
//1st pass (backwards)
$puts(fname,$get(filename))
$puts(tracknr_check,$if2($strrchr($get(fname),'-'),))
$if($not($strcmp($get(tracknr_check),$char())),
$if($strcmp($substr($get(fname),$sub($get(tracknr_check),5),$sub($get(tracknr_check),4)),'- '),
$puts(tracknr,$substr($get(fname),$sub($get(tracknr_check),3),$sub($get(tracknr_check),2)))
$puts(filename,$replace($get(filename),$get(tracknr)' - ',)),

//2nd pass (backwards)
$puts(fname,$left($get(fname),$sub($get(tracknr_check),1)))
$puts(tracknr_check,$if2($strrchr($get(fname),'-'),))
$if($not($strcmp($get(tracknr_check),$char())),
$if($strcmp($substr($get(fname),$sub($get(tracknr_check),5),$sub($get(tracknr_check),4)),'- '),
$puts(tracknr,$substr($get(fname),$sub($get(tracknr_check),3),$sub($get(tracknr_check),2)))
$puts(filename,$replace($get(filename),$get(tracknr)' - ',)),

//3rd pass (backwards)
$puts(fname,$left($get(fname),$sub($get(tracknr_check),1)))
$puts(tracknr_check,$if2($strrchr($get(fname),'-'),))
$if($not($strcmp($get(tracknr_check),$char())),
$if($strcmp($substr($get(fname),$sub($get(tracknr_check),5),$sub($get(tracknr_check),4)),'- '),
$puts(tracknr,$substr($get(fname),$sub($get(tracknr_check),3),$sub($get(tracknr_check),2)))
$puts(filename,$replace($get(filename),$get(tracknr)' - ',)),
$puts(tracknr_check,))))))))

,$puts(tracknr_check,)))
//end tracknr-guess

//cleanup-filename (2nd pass)
$puts(filename,$replace($trim($caps2($get(filename))),'  ',' ','  ',' ',--,-,- -,-,- -,-))


//artist/title-guessing
$puts(fname,$replace($get(filename),' - ', ))
$puts(artist,$replace($substr($get(fname),1,$strchr($get(fname), )), ,))
$if($not($strcmp($get(artist),$char())),
$puts(title2,$replace($right($get(fname),$sub($len2($get(fname)),$add($len2($get(artist)),1))), ,' - ')),
$if($strcmp($get(filename),$get(filename2)),$puts(title2,),$puts(title2,$get(filename)))
)
$puts(artist,$if(%artist%,$trim(%artist%),$get(artist)))
$puts(title,$if(%title%,$trim(%title%),$get(title2)))
$if($not([%title%]),$if($stricmp($get(title),$char()),$puts(title,)))

//cleanup foldername
$puts(folder,$replace($trim($caps2(%_directoryname%)),_,' ','%20',' ','  ',' '))

//If a CUE-Sheet is used, use CUE-filename instead of folder
$puts(fname,$if(%__referenced_file%,
$replace($trim($caps2(%_filename%)),_,' ','%20',' ','  ',' '),
$get(folder)
))

//album/folder-guessing
$if(%album%,$puts(album,$trim(%album%)),$if(%venue%,$puts(album,'Live at: '$trim(%venue%)),
$puts(fname,$replace($get(fname),' - ', ))
$puts(artist2,$replace($substr($get(fname),1,$strchr($get(fname), )), ,))

$if($not($strcmp($get(artist2),$char())),
$if($strcmp($get(artist),$char()),$puts(artist,$get(artist2)))
$puts(album,$replace($right($get(fname),$sub($len2($get(fname)),$add($len2($get(artist2)),1))), ,' - ')),

$puts(fname,$get(title2))
$puts(fname,$replace($get(fname),' - ', ))
$puts(album2,$replace($substr($get(fname),1,$strchr($get(fname), )), ,))

$if($not($strcmp($get(album2),$char())),
$puts(title2,$replace($right($get(fname),$sub($len2($get(fname)),$add($len2($get(album2)),1))), ,' - '))
$puts(album,$get(album2))$puts(title,$get(title2)),
)))))

//=============================End Guessing==============================*





//=======================================================================*

//set 4-character filetype
$puts(filetype,$if(%__codec%,
[%__codec%],
$if(%__referenced_file%,
$cut($upper($ext(%__referenced_file%)),3),
$if($stricmp($left(%_path%,4),cdda),$cut($upper(%_path%),3),$cut($upper($ext(%_path%)),3)))))

//detect detailed filetype2
$puts(filetype2,$replace($get(filetype),
WAV,[%__codec% ]WAVE,
AIFF,Audio Interchange File Format,
AIF,Audio Interchange File Format,
IFF,Audio Interchange File Format,
SVX,Amiga 8SVX Sound,
SND,'Next/Sun Audio',
AU,'Next/Sun Audio',
VOC,Creatice Voice Format,
AC3,Dolby Digital Audio,
CDDA,Audio CD,
MKA,Matroska[ %__codec%],
Vorbis,OGG[ %__codec%],
MP4,MPEG-4[ %__codec%],
M4A,iTunes[ %__codec%],
MP2,MPEG Layer 2,
MP3,MPEG Layer 3,
AAC,AAC Audiostream,
WMA,Windows Media Audio,
MPC,Musepack,
MPP,Musepack,
MP+,Musepack,
OFR,OptimFROG,
OFS,OptimFROG DualStream,
FLA,FLAC,
APE,Monkey''s Audio,
MAC,Monkey''s Audio,
APL,Monkey''s Audio,
WV,WavePack,
SHN,Shorten,
PAC,LPAC,
SPX,Speex,
SID,C64 SID-Song,
MDZ,Compressed Soundtracker Module,
S3Z,Compressed Screamtracker Module,
ITZ,Compressed Impulsetracker Module,
XMZ,Compressed Fasttracker II Module,
MO3,Compressed Module,
MOD,Soundtracker Module,
S3M,Screamtracker Module,
XM,Fasttracker II Module,
IT,Impulsetracker Module,
UMX,Unreal Music File,
MTM,Multitracker Module,
TFM,Final Musicsystem eXtended
))
$puts(filetype2,$replace($get(filetype2),FLACC,FLAC))



//set replaygain-info
$if(%__replaygain_album_gain%,$puts(replaygain,AG),$if(%__replaygain_track_gain%,$puts(replaygain,TG),$puts(replaygain,)))

//set quality-info (bitrate, etc.)
$puts(quality,
$if2([%__bitrate_dynamic%kbps],[%__bitrate%kbps]))
$if($strcmp(%__codec%,musepack),$if(%__mpc_profile%,$puts(quality,%__mpc_profile%  $get(quality))))
$if($strcmp(%__codec%,MP3),$if(%__extrainfo%,$puts(quality,$get(quality)' '%__extrainfo%),$puts(quality,$get(quality)' CBR')),$puts(quality,$get(quality)[' '%__extrainfo%])
)
$puts(quality2,$replace($get(quality),[%__bitrate_dynamic%],[%__bitrate%]))

//======================================================================
//DETECTION CORE [end]
//our results are: $artist*, $album*, $title*, $tracknr*,
//$folder, $filename, $filetype, $filetype2, $quality*,
//$quality2* and $replaygain*
//* means if available - check this with:
//$not($strcmp($get(artist),$char())) <--- returns "true" if $artist is available(not empty)
//$quality2 is the same as $quality, but with averaged bitrate
//$filetype is 4-letter fileextension, while $filetype2
//returns a the full name of the audioformat(if possible)






//=======================================================================*
//artist
$if($strcmp($get(enable_artist),1),
$if($not($strcmp($get(artist),$char())),$padcut(Aritst,$get(title_length)): $get(artist)$char(10))
)

//album/folder
$if($strcmp($get(enable_album),1),$if($not($stricmp($get(album),$char())),$padcut(Album,$get(title_length)): $get(album)[' ('%date%')']$char(10),
$if($strcmp($get(enable_folders),0),,$padcut(Folder,$get(title_length)): $get(folder)$char(10))))


//title/file
$if($stricmp($get(title),$char()),$padcut(File,$get(title_length)): $get(filename),$padcut(Title,$get(title_length)): $if($not($strcmp($get(tracknr),$char())),'[#'$get(tracknr)'] ')$get(title))

//details-line
$if($strcmp($get(enable_details),1),
//build details-line
$puts(details-line,
$get(filetype2)
$if($not($strcmp($get(quality2),$char())),' / '$get(quality2))
$replace($get(replaygain),AG,' / 'AlbumGain,TG,' / 'TrackGain)
)

//output detailsline
$char(10)
$pad(,
$muldiv($max($len2($get(artist-line)),$len2($get(album-line)),$len2($get(title-line)),$len2($get(details-line))),$get(line_modifier),100)
,$get(line_char))
$char(10)
$get(details-line)
$get(lyrics-line)
)

//lyrics
$if($strcmp($get(enable_lyrics),1),
$puts(lyrics-line,
$char(10)$char(10)
$puts(lyrics,$if2(%lyric%,%lyrics%))
$if($get(lyrics),Lyrics:$char(10)$meta(lyrics,1))))

Status Bar

//**************************************
// set colors
//**************************************
$puts(col_paused,0000FF)
$puts(col_streaming,008800)
$puts(col_cue_file,880000)
$puts(col_progbar_symb1,CCCCCC)
$puts(col_progbar_symb2,666666)
$puts(col_time_remaining,000000)


//**************************************
// set variables
//**************************************
$puts(text_streaming,'Streaming')
$puts(text_listened_for,'Listened for:')
$puts(text_cue_file,'Cue File')
$puts(text_paused,'Paused')
$puts(text_time_remaining,[%_time_remaining%])
$puts(spacer_symb,' ')
$puts(spacer_width,2)
$puts(progbar_symb1,'▪')
$puts(progbar_symb2,'▪')
$puts(progbar_length,100)
$puts(text_bitrate,$if2($pad(%__bitrate_dynamic%,3)'kbps',$if2(%__bitrate%'kbps',)))
$puts(text_extrainfo,[%__extrainfo%])



//**************************************
// add colors and formatting
//**************************************
$puts(spacer,$repeat($get(spacer_symb),$get(spacer_width)))
$puts(text_streaming,$get(col_streaming)$get(text_streaming))
$puts(text_listened_for,$get(col_streaming)$get(text_listened_for))
$puts(text_cue_file,$get(col_cue_file)$get(text_cue_file))
$puts(text_paused,$get(col_paused)$get(text_paused))
$puts(text_time_remaining,$get(col_time_remaining)$get(text_time_remaining))
$puts(progbar_symb1,$get(col_progbar_symb1)$get(progbar_symb1))
$puts(progbar_symb2,$get(col_progbar_symb2)$get(progbar_symb2))



//***********************************************************
//***********************************************************



//**************************************
// streaming
//**************************************
$puts(streaming,
$if(%_time_total%,,
$get(text_streaming)$get(spacer)
)
)



//**************************************
// cuefile
//**************************************
$puts(cue_file,
$if(%__cue_audiotype%,
$get(text_cue_file)$get(spacer)
)
)



//**************************************
// codec
//**************************************
$if(%__codec%,

$if($stricmp(%__codec%,musepack),$puts(codec,'MPC'),
$if($stricmp(%__codec%,vorbis),$puts(codec,'Ogg'),
$puts(codec,%__codec%)
))
,
//If no codec tag and not streaming, read file extention
$if($and(%_time_total%,$not(%__codec%)),
$puts(codec,$upper($ext(%_path%)))
)

)



//**************************************
// bitrate
//**************************************
$puts(bitrate,$get(spacer)$get(text_bitrate))

$if($stricmp(%__codec%,musepack),
$if(%__mpc_profile%,
$puts(bitrate,$get(spacer)%__mpc_profile%$get(spacer)$get(text_bitrate))
)
)


//**************************************
// extrainfo
//**************************************

$puts(extrainfo,$get(spacer)$get(text_extrainfo))

$if($stricmp(%__codec%,musepack),
$if(%__mpc_streamversion%,$puts(extrainfo,$get(spacer)'sv'%__mpc_streamversion%))
)



//**************************************
// samplerate
//**************************************
$puts(samplerate,
$if(%__samplerate%,
$get(spacer)$cut(%__samplerate%,2)'kHz'
)
)



//**************************************
// channels
//**************************************
$puts(channels,
$if(%__channels%,
$get(spacer)$ifgreater(%__channels%,2,%__channels%ch,$ifgreater(%__channels%,1,Stereo,Mono))
)
)


//**************************************
// mp3 stereo mode
//**************************************
$puts(stereo_mode,
$if2('('$abbr(%__mp3_stereo_mode%)')',)
)

//**************************************
// Replay Gain
//**************************************
//track gain
$puts(rpg,

$if(%__replaygain_track_gain%,
$get(spacer)
' TGain:'$cut(%__replaygain_track_gain%,5)'dB'

$if(%__replaygain_album_gain%,
$get(spacer)' AGain:'$cut(%__replaygain_album_gain%,5)'dB'
)
)
)



//**************************************
// progress bar
// (checking total because of streaming)
//**************************************
$puts(progress_bar,
$if(%_time_total_seconds%,
$get(spacer)$get(spacer)
$progress2(%_time_elapsed_seconds%,%_time_total_seconds%,$get(progbar_length),$get(progbar_symb1),$get(progbar_symb2))
)
)



//**************************************
// progress %
// (checking total because of streaming)
//**************************************
$puts(progress_%,
$if(%_time_total_seconds%,
' ='$pad_right($muldiv(%_time_elapsed_seconds%,100,%_time_total_seconds%),3)'%'
)
)



//**************************************
// 'Listened for:'
// (used for streaming)
//**************************************
$puts(listened_for,
$if(%_time_total%,,
$get(spacer)$get(spacer)$get(text_listened_for)
)
)



//**************************************
// time
//**************************************
$puts(time,
$get(spacer)
[%_time_elapsed%]
$if(%_time_total%,
'/'%_time_total%
' ['$get(text_time_remaining)']'
)
)



//**************************************
// paused
//**************************************
$puts(paused,
$if(%_ispaused%,
$get(text_paused)
)
)



//**************************************
//**************************************
// create string
//**************************************
//**************************************

$get(streaming)
$get(cue_file)
$get(codec)
$get(bitrate)
$get(extrainfo)
$get(samplerate)
$get(channels)
$get(stereo_mode)
$get(progress_bar)
$get(progress_%)
$get(spacer)$get(listened_for)
$get(time)
$get(spacer)$get(rpg)

//Right adjust from now on
$char(9)
$get(paused)[/b]

Need something else? :cool:

Edited by myxamatosis
Link to comment
Share on other sites

@myxamatosis

Did you write the Statusbar code yourself?

If yes, can I get permission to use a sligtly modified version in the next version of Azrael?

--

Neksus

Link to comment
Share on other sites

Hello Neksus, first of all, congratulations for Azrael... it's simply brilliant! Can't live without anymore...

For the status bar, I actually used upNorth's strings and modified it a little bit

http://pelit.koillismaa.fi/fb2k/strings.php?f=40

You should ask him :ninja:

584752034[/snapback]

I already have permission to use any of his things in my config!

My VA and Singletrack detection builds on his work!

[edit] ups! forgot: Thanks for the support!!! [/edit]

--

Neksus

Link to comment
Share on other sites

if you want this config:

foobar.png

then download this: columns.zip

if you want this config:

foobar.png

then download the above config (delete all text from the 'artist' column) and then get foo_text and litestep and do the following:

in your theme.rc, make sure these modules are loaded:

*NetLoadModule 	 xlabellight-3.0.9
*NetLoadModule 	 mzscript-0.9-beta_12
*NetLoadModule 	 literunner-2.1
*NetLoadModule 	 kidnap-0.2

in your theme.rc add this for kidnap/literunner:

OnRun [$FOOBAR2000_CLASS$][][!execute [!KidnapCapture [xLabel][cdsCurrent][$FOOBAR2000_CLASS$][][2][2]][!LabelShow cdsCurrent]][!execute [!LabelHide cdsCurrent][!KidnapRelease [xLabel][cdsCurrent]]]

make sure $FOOBAR200_CLASS$ is a defined evar. i use an evar because the foobar class is a long string of numbers and it just looks ugly to use it. to get the class of foobar, use winspy and then add it into your evars.rc.

now, add this into your theme.rc as two new labels:

*Label cdsCurrent

cdsCurrentMoveable false
cdsCurrentStartHidden true
cdsCurrentX 0
cdsCurrentY 0
cdsCurrentWidth 180
cdsCurrentHeight 180
cdsCurrentOnLeftClickDown !none
cdsCurrentOnLeftClick !none
cdsCurrentOnLeftDoubleClick !none
cdsCurrentOnMiddleClickDown !none
cdsCurrentOnMiddleClick !none
cdsCurrentOnMiddleDoubleClick !none
cdsCurrentOnRightClickDown !none
cdsCurrentOnRightClick !none
cdsCurrentOnRightDoubleClick !none
cdsCurrentOnDrop "$AudioPlayer$"
cdsCurrentAlwaysOnTop false
cdsCurrentImage "current.png"
cdsCurrentImageMode "tile"
cdsCurrentText "[line('$PersonalDir$foobar.rc',2)]"
cdsCurrentFont "verdana"
cdsCurrentFontHeight 13
cdsCurrentFontVertAlign top
cdsCurrentFontAlign left
cdsCurrentFontColor 444444
cdsCurrentFontBold
cdsCurrentNewLineSpace -1
cdsCurrentAutoLineBreak
cdsCurrentOnDrop "$AudioPlayer$"

*cdsCurrentModuleHook !LabelLsBoxHook cdsCover

cdsCoverMoveable false
cdsCoverStartHidden false
cdsCoverX 0
cdsCoverY 30
cdsCoverWidth 96
cdsCoverHeight 96
cdsCoverOnLeftClickDown !none
cdsCoverOnLeftClick !none
cdsCoverOnLeftDoubleClick !none
cdsCoverOnMiddleClickDown !none
cdsCoverOnMiddleClick !none
cdsCoverOnMiddleDoubleClick !none
cdsCoverOnRightClickDown !none
cdsCoverOnRightClick !none
cdsCoverOnRightDoubleClick !none
cdsCoverOnDrop "$AudioPlayer$"
cdsCoverAlwaysOnTop false
cdsCoverImage "blank.png"
cdsCoverText "[winampSong]"
cdsCoverTopBorder 96
cdsCoverOnTextChange !_cds_setcurrent

cdsCurrent gives you the album information (in text form) and cdsCover gives you the album cover. make sure you make a blank.png and current.png (just make them the same color as your foobar playlist bg to make things easy) and put them in your LSImageFolder. also make sure you set the width/height for your album cover correctly.

next, in your mzscript file (most likely script.rc in your $ConfigDir$) add in this custom bang:

*script bang !_cds_setcurrent
*script exec !LabelInfoExport _cds_curtry "[line('$PersonalDir$foobar.rc',1)]"
*script gotoif ("%{_cds_curtry}" = "%{_cds_cur}") done
*script exec !varset _cds_cur "%{_cds_curtry}"
*script label try
*script exec !fileExist "%{_cds_cur}\$CDS_COVERFILE$" "!varset fileexist 1" "!varset fileexist 0"
*script gotoif ("%{fileexist}" = "0") upalevel
*script exec !LabelRefresh cdsCover cdsCoverImage "%{_cds_cur}\$CDS_COVERFILE$"
*script exec !LabelRefresh cdsCurrent cdsCurrentImage "current.png"
*script goto clean
*script label upalevel
*script exec !LabelInfoExport _cds_curtry "[beforeLast('%{_cds_[CODE]cur}','\')]"
*script gotoif ("%{_cds_curtry}" = "%{_cds_cur}") blank
*script exec !varset _cds_cur "%{_cds_curtry}"
*script goto try
*script label blank
*script exec !LabelRefresh cdsCover cdsCoverImage "blank.png"
*script exec !LabelRefresh cdsCurrent cdsCurrentImage "blank.png"
*script label clean
*script exec !LabelSetText cdsCurrent "[line('$PersonalDir$foobar.rc',2)]"
*script label done
*script ~bang

the important things to pay attention to are the following:

1) reference to $CDS_COVERFILE$. this evar must be defined or it won't know where to find the album cover. just make sure you set it in either evars.rc or theme.rc like this:

CDS_COVERFILE folder.png

2) references to certain lines in foobar.rc. this is where the interaction with foobar comes in.

foobar.rc is what i have set foo_text to output to. i have foobar.rc in my $PersonalDir$. you can have it output wherever you want, just make you tell foobar where you want to output the text and make sure litestep knows where to find it. this is how i have it set up:

PLAYING:

$left(%_path%,$add($len(%_path%),-1,$mul(-1,$len(%_filename_ext%))))$crlf()
[%artist%]<br>[%album%]$crlf()

ON QUIT:

*BLANK*
none<br>none

where *BLANK* means nothing... put no text there and just leave a blank line. also make sure foo_text is not set to write to text on stop, only have it write on the following events:

1) startup

2) quit

3) new track

4) pause

5) unpause

6) metadata

7) formatting strings

8) dynamic info

--------------------------------------------------------------------------------------

that is pretty much how it works.

PROS:

-album cover inside of foobar

CONS:

-album cover and info does not scroll

-does not dynamically resize with foobar

-only works well with a "one album at a time" playlist (which is how i listen to music)

-you might not be able to get it to work

i do not recommend trying this out if you have never used litestep. please do not email or pm me with questions on this... i'll do my best to troubleshoot in this thread if you want help, but i reallly don't want to be the support guy for this. i i didn't even write this script, a friend of mine did.

Link to comment
Share on other sites

I'm not familiar with the plugins you are using so forgive me if I am wrong. But as far as I understand that is just displaying the cover art anywhere on the desktop and you happened to place it over your foobar.

You can accomplish the same thing by just using foo_looks and the coverart.ski skin for foo_looks.

Open up coverart.ski in the text editor. Modify the jpeg height and width dimensions to whatever you wish. Then just drag the coverart inside foobar when its activated. Have Always on top clicked in Components > Look > Show.

Edited by metal_termite
Link to comment
Share on other sites

thinking again at that response, how retarded would it be to have all of that scripting, just to have it pasted over the window and not dynamic? hell, if i was going to do that, i could just have foo_text output the current album's directory then use filemaster.dll to show the folder.png. it's ignorant and just kind of stupid to think that there would be well over a page of scripting involved for something that could be done with about six lines of code. use your head.

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.