Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_uie_single_column_playlist (Read 728747 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.


foo_uie_single_column_playlist

Reply #52
I want to add some details about $drawrect to the wiki, should I put it on the trackinfo mod panel page where all the other tags are currently or on the single column playilst page?

I am thining panel page plus link on playlist page. This way tags that work in both only appear once and the playlist page can keep to neat tricks and techniques.

What are the specific attributes of $drawrect?

imho most of the specifics and common stuff of these two plugins should be on the track info page with links to it from the other one.

$drawrect(_x,_y,_width,_height,brushcolor-_r-_g-_b pencolor-_r-_g-_b alpha-_alpha expand-_size blur-_size width-_border)

omitting (or setting to 0) _x, _y, _width or _height substitutes the value for maximal (_width and _height) or minimal (_x, _y) with respect to $padding. for example if you omit _width and set _x to 10, _width gets substituted to %_width% (minus / plus any possible paddings), but because of _x set to 10, you wouldn't see part of the rectangle.

both brushcolor and / or pencolor can be disabled like brushcolor-null.

when using any advanced features like alpha blending or blurring, rectangle is drawn only using pen color. if you specify brushcolor, it takes pen's color. you can draw only border though, using brushcolor-null.

example: $drawrect(,,,,pencolor-0-0-255 brushcolor-null width-2 alpha-100 blur-2)

alpha is for alpha blending with value from interval 0-255.

expand expands the rectangle by given pixels.

blur blurs it with given strength

width controls border's width (drawn using pencolor). default is 1 unless you disable border by pencolor-null. setting it to 0 doesn't disable border (as it stays at 1). border is on central (i.e. not fully inside or outside). for _width=1, the whole border is inside. for even widths the top-left part is by one pixel outside, the bottom-right one by one pixel inside. for odd numbers from 3 on it's exactly central (the same on the inside as on the outside).

compare examples:

$drawrect(,,,,brushcolor-200-200-255 width-1)
$drawrect(,,,,brushcolor-200-200-255 width-2)
$drawrect(,,,,brushcolor-200-200-255 width-3)


i hope you can make this informatin into useful stuff on the wiki. maybe some images could help .

there's a lot of similar things for $font, would you be interested in them too?

foo_uie_single_column_playlist

Reply #53
I love this plugin. I'd like to request a song notifier based on the foo_uie_trackinfo_mod code. It could work like pretty popup but much more customizable. The more consistency between plugins, the better.

foo_uie_single_column_playlist

Reply #54
Has any tryed to get the album art in the tracks?

foo_uie_single_column_playlist

Reply #55
I love this plugin. I'd like to request a song notifier based on the foo_uie_trackinfo_mod code. It could work like pretty popup but much more customizable. The more consistency between plugins, the better.

i can see the base rendering core being used in multiple componets. maybe terrestrial could implement it as standalone service plugin and use that service from his other plugins.

foo_uie_single_column_playlist

Reply #56
I have a new question, which is probably related to my first one (here):

Does the "Group By" panel recognize $if()?  I did several tests, and it doesn't seem to for me.

Edit: placed correct link.

foo_uie_single_column_playlist

Reply #57
EDIT: nevermind problem solved


foo_uie_single_column_playlist

Reply #59
Thank you, FofR.

I guess I did something wrong with my script.  It's odd, though, cause the same $if condition I tried to use works in other areas.  Oh well.

Thanks again.

foo_uie_single_column_playlist

Reply #60
Stuff keeps disappearing
hi

foo_uie_single_column_playlist

Reply #61
Has any tryed to get the album art in the tracks?


You mean like this?

Code: [Select]
$imageabs(375,$add(25,$mul(-16,%tracknumber%)),images/%album%.png,)


You'll have to play around with the 375, and rename your art to the album name as in the ID3 tags and put it in the images folder to get it to work, until someone comes up with a more elegant way :P

foo_uie_single_column_playlist

Reply #62
Hi there, thanks for this great plugin

theres something i want to point out

when i use this with tabs (foo_uie_tabs) after I switch to other tab and back to the plugin, the column will not display correctly, (totally blank) until i scroll down and up again , it will show up fine again

Request : add transparency option, this would be awesome!

great plugin anyway

foo_uie_single_column_playlist

Reply #63
Code: [Select]
$imageabs(375,$add(25,$mul(-16,%tracknumber%)),images/%album%.png,)


You'll have to play around with the 375, and rename your art to the album name as in the ID3 tags and put it in the images folder to get it to work, until someone comes up with a more elegant way


Found a slightly more elegant way.

Code: [Select]
$imageabs(230,  $add(25,$mul(-26,%tracknumber%)),../../$directory(%path%)/%album%.png,)


This will look in the folder of where the music is. This one assumes that you have your music on the C:\, which most probably do not have. I couldn't figure out how to get it to look in a different drive (my music is on D:\, though foobar is on C:\)

Another problem is having to copy all my album art over to .png format. 



terrestrial is it possible to make it so that it can handle more formats, pretty much the ones that the current albumart panel is capable of useing?




After that, it would not be all that difficult to create a small chunk of coding, similiar to the one above, that works just like album art does. (meaning it looks for one type, then the next, then the next)

foo_uie_single_column_playlist

Reply #64
@terrestrial:
IMHO, this is the most exciting plugin for quite a while. I'm positive it will have a huge impact around here (read: present in a lot of "my foobar2000" screenshots).

IMO it has a huge potential, but what are your future plans with it? Are you planning to develop it much further, or is it close to satisfactory for your needs? Nothing wrong with the latter, but it would be nice to know before I get too excited and invest too much time. (I really enjoyed coding for foo_looks, but suddenly danZ, the developer, vanished, and it was closed source...  . I wish he was still around.) Is the source available for this plugin, and if not, will you release it at some point?

Assuming you want to keep on developing it:
The current config isn't dimensioned for advanced layouts. Combining code for graphics, fonts and general formatting, demands structure to be readable and features to reduce redundancy. Currently everything is crammed into three formatting boxes. Global variables, as seen in UI Columns, or maybe LUA, as seen in foo_looks, could help take the visual presentation of foobar2000 to the next level.

Btw: I'm sorry if some of this is answered earlier. I read most of the thread and skimmed the rest.

@zackorah and others with more advanced layouts:
Do you experience any lag when scrolling the playlist? Probably not if you have a state of the art PC, but what about on older single-core-not-even-DDR-RAM systems? (reference: I've currently got a AMD XP1800+, 512MB RAM)

edit: typo

foo_uie_single_column_playlist

Reply #65
terrestrial, seeing all the posts about other formats, resizing etc. for images, maybe it would be time to implement $imageabs using gdi+ now .

also it would be nice to have more primitives other than rectangle. maybe arc for nice pie-progresses / indicators ... but that's really not important ...

foo_uie_single_column_playlist

Reply #66
Hi there, thanks for this great plugin

theres something i want to point out

when i use this with tabs (foo_uie_tabs) after I switch to other tab and back to the plugin, the column will not display correctly, (totally blank) until i scroll down and up again , it will show up fine again

Request : add transparency option, this would be awesome!

great plugin anyway


yup same here... but as far as ive tested its problem of uie_tabs. the whole port of tabs plugin was quite suspicious and it has some problem with updating/redrawing currently viewed panel. synced lyrics are messed up and if you change somethin in albumlist for example even playlist view is messed before you clik or scroll it... problem is imho in uie_tabs... im planning to invest some time in single_column plugin sou ill abandon uie_tabs scheme and just drop it because of this update issue.

foo_uie_single_column_playlist

Reply #67
@zackorah and others with more advanced layouts:
Do you experience any lag when scrolling the playlist? Probably not if you have a state of the art PC, but what about on older single-core-not-even-DDR-RAM systems? (reference: I've currently got a AMD XP1800+, 512MB RAM)

edit: typo


The machine I was doing it on was a pentium 4, 1.6ghz with 1gb of ram, and a geforce 6200. It flickers for a second when it comes out of being minimized as it redraws everything, but no lag when scrolling, even with azureus (40+ torrents) and a lot of other apps open.


EDIT: Been playing around with it a bit more, currently figuring out how to get it to seek to a different drive than foobar is on (My music is on a network drive), and figuring out if i can get some text under my album art with details of the album etc.

)

foo_uie_single_column_playlist

Reply #68
Can I see your code for that? I'd like to play around with it a bit. First I need to make a batch conversion of my album art to the same size and png... and renamed.

My aim in the end is to get something similar to this:
(obviously with some nicer formatting)
With clickable/expandable headers.

foo_uie_single_column_playlist

Reply #69
That would be ridiculously insane.

Sorta WMP11 style?




The result of my plays. Going to keep this, hopefully for a while.
hi

foo_uie_single_column_playlist

Reply #70
Can I see your code for that? I'd like to play around with it a bit. First I need to make a batch conversion of my album art to the same size and png... and renamed.

My aim in the end is to get something similar to this:
(obviously with some nicer formatting)
With clickable/expandable headers.


'course you can, that's what I've been trying to get (but this is the first time working with this scripting), so I can't work out how to make text under my album art or I would have, can't work out how to read the art from another drive too. It's modified from what Yotsuya posted.

Item display

Code: [Select]
$if(%tracknumber%,$drawrect(0,0,0,0,brushcolor-239-243-253 pencolor-null),)
$if(%cwb_queueindex%,$drawrect(0,0,0,0,brushcolor-58-110-165 pencolor-null),)
$if(%isplaying%,$drawrect(0,0,0,0,brushcolor-62-128-223 pencolor-null),)
$if(%_selected%,$drawrect(0,0,0,0,brushcolor-62-128-223 pencolor-null),)

$puts(art.width,119)
$puts(art.height,21)
$puts(art.num,$add($div($mul(%list_index%,%_height%),$get(art.height)),1))
$puts(art.offset,-$sub($sub($mul(%list_index%,%_height%),$mul($sub($get(art.num),1),$get(art.height))),%_height%))
$imageabs(0,$get(art.offset),images\column.left.png,)
$imageabs(6,$add(25,$mul(-14,%tracknumber%)),images/%album%.png,)
$imageabs(3,$add(22,$mul(-14,%tracknumber%)),images/overlay.png,)

$font(tahoma,8,,)

$alignabs(125,,%_width%,%_height%,,)
$if(%tracknumber%,
$if(%isplaying%,$font(,,,233-233-233)$imageabs(122,0,images\playing.png,),$font(,,,10-36-106))
%tracknumber%$font(,,,233-233-233).
$if(%isplaying%,$font(,,,233-233-233),$font(,,,0-0-0))

$alignabs(160,,%_width%,%_height%,,)
$if(%title%,$trim($left(%title%,$sub($strrchr(%title%,$char(40)),1))),)

$if($strrchr(%title%,$char(40)),
$font(,,,233-233-233) $char(40)
$if(%isplaying%,$font(,,,233-233-233),$font(,,,10-36-106))
$substr(%title%,$add($strrchr(%title%,$char(40)),1),$sub($strrchr(%title%,$char(41)),1))
$font(,,,233-233-233)$char(41)
$if(%isplaying%,$font(,,,233-233-233),$font(,,,0-0-0))
)
,
$if(%isplaying%,$font(,,,233-233-233),$font(,,,0-0-0))
[%artist% - ]%title%
)


$if(%cwb_queueindex%,
$alignabs($sub(%_width%,$calcwidth(%cwb_queueindexes%),150),,%_width%,%_height%,,)
$font(,,,233-233-233)Q
$if(%isplaying%,$font(,,,233-233-233),$font(,,,140-186-236)):
$font(,,,233-233-233)$char(91)$if(%isplaying%,$font(,,,233-233-233),$font(,,,140-186-236))%cwb_queueindexes%$char(47)%cwb_queuelength%$font(,,,233-233-233)$char(93)
$if(%isplaying%,$font(,,,233-233-233),$font(,,,0-0-0))
,)

$padding(5,0)
$align(right,)%length%


Group display
Code: [Select]
$if(%tracknumber%,
$drawrect(0,0,0,0,brushcolor-62-128-223 pencolor-null)$padding(4,0)
$imageabs(0,0,images\title.png,)
$font(tahoma,7,,233-233-233)
$align(left,middle)$if(%CDID%,$char(91)$font(,,,140-186-236)%CDID%$font(,,,233-233-233)$char(93),)
$padding(120,0)
$align(left,middle)

$if(%album artist%,
$if($strrchr(%album artist%,$char(12300)),
$font(,,,140-186-236)$char(12300)$font(,,,233-233-233)$substr(%album artist%,2,$sub($len(%album artist%),1))$font(,,,140-186-236)$char(12301)
,%album artist%)
,)

$if($and(%album artist%,%album%),$font(,,,140-186-236) - $font(,,,233-233-233),)
$trim($left(%album%,$sub($strrchr(%album%,$char(40)),1)))

,
$drawrect(0,0,0,0,brushcolor-130-130-255 pencolor-null)$padding(4,0)
$align(center,)$font(tahoma,7,italic,0-0-0)~ Singles ~
)

$imageabs(0,0,images\column.left.png,)


and I'll upload the images if you need, (added an icon for what's currently playing and added some more images for clearer reading, and an overlay for album art.



also, with 21 albums in playlist;


foo_uie_single_column_playlist

Reply #71
That is fricken sweet.

How would I adapt my current code to have like  a side column with art?

All my stuff is either folder.png or folder.jpg.


This seems really solid. Once it nails bugs (like not "spawning" properly for instance on a UI change), and also has a better config dialog (exporting, integration with columns blah blah) it seems like a really sweet base for many a config.

Due to the fact that I have 13k+ tracks on a playlist, and it doesn't lag at all if I scroll through them (and does on coulmns pl)
hi

foo_uie_single_column_playlist

Reply #72
I've got a few more ideas:
First, variable line height (based on tagz). This would allow us, for example, to make higher rated songs bigger in the playlist. Another good use could be to make single tracks bigger to stand out better from full albums. It would also make it possible to make the group headers big enough to fit album art on one line.

I dont know if this is possible, but could there be group side margins as well as headers? This would allow us to put info and art to the side of each group (album) without having to use workarounds to stretch it between multiple tracks. Combined with a gdi+ implementation, this would open up so many possiblities such as wmp11-like interfaces.

Some kind of implementation of columns would be great, as well. And, with that, there could be new sorting options to change how tracks are grouped based on which column is controlling the sort, as well the formatting of the group headers (or sidebars).

I know this is all very ambitious and is probably not going to happen, but I just wanted to put the ideas out there just in case.

foo_uie_single_column_playlist

Reply #73
May I recommend a mouse activated inline metafield editing.  I know its a sinlge column, but I would want one to at least change thhe %title% on the spot.  Just a suggestion

btw thx for the singles.  I've spent more time using this plugin than i have with any other

foo_uie_single_column_playlist

Reply #74
Beat me to death but placing this plug-in in the components folder ( foobar 0.9.3.1, Win XP SP2 ) throws the following error:
Code: [Select]
Failed to load DLL: foo_uie_single_column_playlist.dll
Reason: This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.

I have never had any troubles with the program config, but this is beyond me.