Help - Search - Members - Calendar
Full Version: foo_uie_single_column_playlist
Hydrogenaudio Forums > Hosted Forums > foobar2000 > 3rd Party Plugins - (fb2k)
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28
Crusoli
Got a question: Would it be possible to add an option to the "Settings" menu to change the doubleclick action of the playlist view?

I know you can reach all these actions via the context menu but I'm thinking of special views like a "ripping-window" or a special media library window where you dont want the playlist to become active and the song to start playing just because you double click it by accident because your used to it.

Is this even possible techincally (or would it require changes in other components?) and if its possible possible is there a chance of getting this integrated?

Thanks in advance.
mil3s
I've just started using this plugin. It's great. Except for a few small things.

Feature Requests:
*Please add Crop and Sort to the rightclick menu, as in Columns Playlist.
*Please make selecting have the same behavior as in Columns Playlist. There is currently no way to rearrange the tracks in the list.
* Ability to remove the Playlist entry in the rightclick menu.
Meddler
QUOTE(Fractal_Mortality @ Jan 20 2007, 20:04) *

Is there a way to achieve that WMP playlist view with any other plugin?


Not quite what your after, but I've managed to get this:

IPB Image

(please ignore the bottom bar - not done yet)

and here's the code:

CODE
Row Height: 18
Group Rows: 1
Edge Style: None
Group By: %album%


Item Display:
CODE
$drawrect(,,,,brushcolor-228-232-248 pencolor-null)

$imageabs2(105,105,0,$add(-18,$mul(%_itemindex%,18)),,,5,0,images\shadcover.png,)

$if($fileexists($replace(%path%,%filename_ext%,folder.jpg)),
$imageabs2(96,96,0,$add(-19,$mul(%_itemindex%,18)),,,6,0,$replace(%path%,%filename_ext%,folder.jpg),)
,
$imageabs2(96,96,0,$add(-19,$mul(%_itemindex%,18)),,,6,0,images\noart.jpg,)
)

$if(%_selected%,$drawrect(345,,$sub(%_width%,345),,brushcolor-244-248-255 pencolor-000-64-128),)
$if(%isplaying%,$drawrect(345,,$sub(%_width%,345),,brushcolor-212-216-224 pencolor-000-64-128)$drawrect(346,1,$add(1,$div($mul($sub(%_width%,346),%_time_elapsed_seconds%),%length_seconds%)),16,brushcolor-128-192-255 pencolor-null),)

$ifequal(%_itemindex%,1,$alignabs(115,0,230,%_height%,left,middle)$font(Segoe UI,9,bold,004-008-016)%album%,)
$ifequal(%_itemindex%,2,$alignabs(115,0,230,%_height%,left,middle)$font(Segoe UI,9,,004-008-016)%album artist%,)
$ifequal(%_itemindex%,3,$alignabs(115,0,230,%_height%,left,middle)$font(Segoe UI,9,,004-008-016)%genre%,)
$ifequal(%_itemindex%,4,$alignabs(115,0,230,%_height%,left,middle)$font(Segoe UI,9,,004-008-016)%date%,)
$ifequal(%_itemindex%,5,$alignabs(114,0,230,%_height%,left,bottom)$font(Segoe UI,7,,064-128-192)[%__codec% ][%__tool% ][%__codec_profile% / ][%bitrate%Kbps / ][RG: %__replaygain_album_gain%],)
$ifequal(%_itemindex%,6,$alignabs(114,0,230,%_height%,left,top)$font(Segoe UI,7,,064-128-192)Source: $meta(SOURCE),)

$if($strcmp(%album artist%,%artist%),
$alignabs(349,0,$sub(%_width%,349),16,left,middle)$font(Segoe UI,9,,004-008-016)[%track%.  ]%title%,
$alignabs(349,0,$sub(%_width%,349),16,left,middle)$font(Segoe UI,9,,004-008-016)[%track%.  ]%title%  - %artist%)

$if(%isplaying%,
$alignabs(349,0,$sub(%_width%,353),16,right,top)$font(Segoe UI,9,,004-008-016)'('%playback_time_remaining%')' %length%,
$alignabs(349,0,$sub(%_width%,353),16,right,top)$font(Segoe UI,9,,004-008-016)%length%))



Group Display:
CODE
$drawrect(,,,,brushcolor-228-232-248 pencolor-null)
Fractal_Mortality
Is there a way to add sorting to the context menu while using single column playlist???
panfist
Hey, I was wondering, for the context menu when clickin on a track in SCPL, there's an item called "playlist" which has "active" and "playing" in it, but I'm not sure what the check marks mean. Do they indicate which playlist is active and/or playing? Because you can click on them and change the appearance of the checkmark, which did not sync up with the same icons in the playlists dropdown component. If we don't use this context menu item, can we delete it?
saberrider
i have another request: would it be possible to implement a variable that indicates if a group is the first of a specific artist in the playlist? I've got an artist picture in my group header and if there are several groups of the same artist in the playlist it shows the picture in every group header. because my playlist is sorted by artist first, I want the picture to appear only on the first album of the artist and not on the following albums. So basically I'd need a groupindex for groups of the same artist.
wraithdu
QUOTE(saberrider @ Jan 26 2007, 09:16) *

i have another request: would it be possible to implement a variable that indicates if a group is the first of a specific artist in the playlist? I've got an artist picture in my group header and if there are several groups of the same artist in the playlist it shows the picture in every group header. because my playlist is sorted by artist first, I want the picture to appear only on the first album of the artist and not on the following albums. So basically I'd need a groupindex for groups of the same artist.

As a workaround you could add a custom tag to the first album (alphabetically) of your artist and use that tag to display (or not) your artist picture.
VeaaC
Would it be possible to have the plugin pre-cache all albumart in the playlist? I'd rather wait some seconds when creating a big playlist than have a lag when scrolling through the playlist.
jimbo11883
QUOTE(VeaaC @ Jan 26 2007, 13:31) *

Would it be possible to have the plugin pre-cache all albumart in the playlist? I'd rather wait some seconds when creating a big playlist than have a lag when scrolling through the playlist.


From a programmer's point of view, on-request loading of the album art would give better performance than waiting for the whole thing to load. Using a Virtual ListView, you can get a lot of performance out of it using the on-request method. Without it, you could be waiting 30 seconds or more on a large playlist.
VeaaC
QUOTE(jimbo11883 @ Jan 26 2007, 21:11) *

QUOTE(VeaaC @ Jan 26 2007, 13:31) *

Would it be possible to have the plugin pre-cache all albumart in the playlist? I'd rather wait some seconds when creating a big playlist than have a lag when scrolling through the playlist.


From a programmer's point of view, on-request loading of the album art would give better performance than waiting for the whole thing to load. Using a Virtual ListView, you can get a lot of performance out of it using the on-request method. Without it, you could be waiting 30 seconds or more on a large playlist.


Hmm, maybe saving cache between sessions.... with a big playlist and albumarts with ~2000*2000 pixels scrolling in very large playlists is not the so fast... resizing images takes some time.
Tried several solutions, but displaying album art in playlists is a big slowdown and I don't want to have foobar open all day just to have all images cached.
wraithdu
If performance is that big of an issue for you, then maybe you should consider rethinking your playlist layout. Nothing is going to make huge playlist with tons of albumart move all that fast. Perhaps write a trackinfo_mod panel to display your album art, or use the albumart panel. That would allow you playlist to scroll as fast as you desire, yet still display art for the song that's playing or selected.
jimbo11883
QUOTE(VeaaC @ Jan 26 2007, 20:55) *

QUOTE(jimbo11883 @ Jan 26 2007, 21:11) *

QUOTE(VeaaC @ Jan 26 2007, 13:31) *

Would it be possible to have the plugin pre-cache all albumart in the playlist? I'd rather wait some seconds when creating a big playlist than have a lag when scrolling through the playlist.


From a programmer's point of view, on-request loading of the album art would give better performance than waiting for the whole thing to load. Using a Virtual ListView, you can get a lot of performance out of it using the on-request method. Without it, you could be waiting 30 seconds or more on a large playlist.


Hmm, maybe saving cache between sessions.... with a big playlist and albumarts with ~2000*2000 pixels scrolling in very large playlists is not the so fast... resizing images takes some time.
Tried several solutions, but displaying album art in playlists is a big slowdown and I don't want to have foobar open all day just to have all images cached.


Obviously using images any larger than 500x500 will be too large, and cause performance issues. Stick to something smaller. I can't even fit 2000x2000 on my screen at a time (with a 1280x1024 display resolution)
thelightguy
QUOTE(mil3s @ Jan 25 2007, 12:15) *

*Please make selecting have the same behavior as in Columns Playlist. There is currently no way to rearrange the tracks in the list.


Hold down [alt] while dragging the tracks. It works!
henn1ng
hello fellow SCPL users! biggrin.gif

im here to ask you for a little favour. i have somehow lost touch with how this plugin works nowadays and hope you can help me a little.

here is the code im using at the moment:

ITEM:
CODE
$if(%_selected%,$drawrect(94,2,0,16,brushcolor-220-220-220 pencolor-null),)

$imageabs(13,$if($strcmp(%tracknumber%,01),2,$add(23,$mul(-21,%tracknumber%))),vista1\backcover.png,)
$if($strcmp(%tracknumber%,02),$font(calibri,8,boldshadow glowalpha-50-50-50,90-90-90)$alignabs(6,4,80,20,center,)No cover,)
$imageabs2(60,60,,,60,60,15,$if($strcmp(%tracknumber%,01),3,$add(25,$mul(-22,%tracknumber%))),$replace(%path%,%filename_ext%,)folder.jpg,)

$alignabs(102,3,$sub(%_width%,150),12,,)
$font(calibri,8,shadow glowalpha-50,70-70-70)↘%title%
$alignabs($sub(%_width%,127),3,120,20,right,)%length%



$if(%isplaying%,
$drawrect(94,0,0,0,brushcolor-244-244-244 pencolor-null)
$drawrect(94,2,0,16,brushcolor-40-120-180 pencolor-null)
//$imageabs(96,0,vista1\20.png,)
$font(calibri,8,glow-130-160-240 glowalpha-120,250-250-250)
$alignabs(102,3,$sub(%_width%,150),12,,)>>%title%
$alignabs($sub(%_width%,127),3,120,20,right,)%length%
$alignabs($sub(%_width%,157),7,120,20,right,)
$font(wingdings,6,bold glow-130-160-240 glowalpha-110,180-220-250)$repeat(,%rating%)

)


GROUP:
CODE
//$drawrect(0,0,0,18,brushcolor-170-170-170 pencolor-null)
//$imageabs(0,2,vista1\art2.png,)
$alignabs(20,3,300,20,,)
$font(calibri,9,boldshadow  glowalpha-100,20-100-160)%artist%


its basically a slightly modded version of cepiperez NEO4.
so what im asking is whether it is possible to add a funtion to put all items with a groupsize<4 in a new group called "various" or something and if it is possible please tell me how to smile.gif

any help will be appreciated!

thanks in advance,

henn1ng
wraithdu
First you'll have to sort your playlist so albums with less than 4 tracks are grouped together. Sort string something like -
CODE
$ifgreater(%totaltracks%,4,
<insert current sort code>
,
() - %artist%
) - %disc% - $tracknumber() - %title%

The '()' will get anything with less than 4 tracks sorted at the top of the list then sorted by artist.

Next in your 'Group By' setting in SCPL you have to group everything with less than 4 tracks together while still grouping normal albums.
CODE
$ifgreater(%totaltracks%,4,
<insert normal grouping, ie %album%>
,
%_itemcount%
)

%_itemcount% seems to work to get one header at the top of the list.

Then in your group header code you have to display something unique for this first group.
CODE
$ifgreater(%totaltracks%,4,
<insert normal group code>
,
<insert your 'Various' code>
)

I think that should do it.
henn1ng
hmmmmm first of all, thanks for replying!

but i think that this is either not the final solution yet or im doing something terribly wrong wink.gif
this is what i made after your post:

GROUP BY:

CODE
$ifgreater(%totaltracks%,4,
%ARTIST%
,
%_itemcount%
)


ITEM DISPLAY:

CODE
$ifgreater(%totaltracks%,4,
$if(%_selected%,$drawrect(94,2,0,16,brushcolor-220-220-220 pencolor-null),)

$imageabs(13,$if($strcmp(%tracknumber%,01),2,$add(23,$mul(-21,%tracknumber%))),vista1\backcover.png,)
$if($strcmp(%tracknumber%,02),$font(calibri,8,boldshadow glowalpha-50-50-50,90-90-90)$alignabs(6,4,80,20,center,)No cover,)
$imageabs2(60,60,,,60,60,15,$if($strcmp(%tracknumber%,01),3,$add(25,$mul(-22,%tracknumber%))),$replace(%path%,%filename_ext%,)folder.jpg,)

$alignabs(102,3,$sub(%_width%,150),12,,)
$font(calibri,8,shadow glowalpha-50,70-70-70)↘%title%
$alignabs($sub(%_width%,127),3,120,20,right,)%length%



$if(%isplaying%,
$drawrect(94,0,0,0,brushcolor-244-244-244 pencolor-null)
$drawrect(94,2,0,16,brushcolor-40-120-180 pencolor-null)
//$imageabs(96,0,vista1\20.png,)
$font(calibri,8,glow-130-160-240 glowalpha-120,250-250-250)
$alignabs(102,3,$sub(%_width%,150),12,,)>>%title%
$alignabs($sub(%_width%,127),3,120,20,right,)%length%
$alignabs($sub(%_width%,157),7,120,20,right,)
$font(wingdings,6,bold glow-130-160-240 glowalpha-110,180-220-250)$repeat(,%rating%)

)
,
) - %artist%
) - %disc% - $tracknumber() - %title%



GROUP DISPLAY:

CODE
$ifgreater(%totaltracks%,4,
//$drawrect(0,0,0,18,brushcolor-170-170-170 pencolor-null)
//$imageabs(0,2,vista1\art2.png,)
$alignabs(20,3,300,20,,)
$font(calibri,9,boldshadow  glowalpha-100,20-100-160)%artist%
,
Various
)



and it just looks terrible biggrin.gif
im sure i made some mistakes tho.
anyway id be glad if you could look into this once more and help me fix it smile.gif it would practically make my foobar perfect wink.gif

thx again

henn1ng


ps. im sorry for making these long posts but i forgot the tag for "scrollable" code.
wraithdu
You got some code in the wrong places. First, your GROUP BY code should be
CODE
$ifgreater(%totaltracks%,4,
%album%
,
%_itemcount%
)

This way a new header is created for each new album. If you use %artist% then there is only a new header each time an artist changes (depends on sorting).

Now, probably the most important part, is the sorting. You can either map sorting into a trackinfo mod button, or you have to use a ColumnsUI column custom sort spec. For me, I have two layouts that I use. SCPL is for everyday use. I have a ColumnsUI layout that I use for resorting my playlists. In the custom sort spec of any ColumnsUI column, you need
CODE
$ifgreater(%totaltracks%,4,
%album artist% - %album%
,
() - %artist%
) - %disc% - $tracknumber() - %title%

Pic for reference
IPB Image

ITEM DISPLAY should probably be
CODE
$if(%_selected%,$drawrect(94,2,0,16,brushcolor-220-220-220 pencolor-null),)

$imageabs(13,$if($strcmp(%tracknumber%,01),2,$add(23,$mul(-21,%tracknumber%))),vista1\backcover.png,)
$if($strcmp(%tracknumber%,02),$font(calibri,8,boldshadow glowalpha-50-50-50,90-90-90)$alignabs(6,4,80,20,center,)No cover,)
$imageabs2(60,60,,,60,60,15,$if($strcmp(%tracknumber%,01),3,$add(25,$mul(-22,%tracknumber%))),$replace(%path%,%filename_ext%,)folder.jpg,)

$alignabs(102,3,$sub(%_width%,150),12,,)
$font(calibri,8,shadow glowalpha-50,70-70-70)↘%title%
$alignabs($sub(%_width%,127),3,120,20,right,)%length%



$if(%isplaying%,
$drawrect(94,0,0,0,brushcolor-244-244-244 pencolor-null)
$drawrect(94,2,0,16,brushcolor-40-120-180 pencolor-null)
//$imageabs(96,0,vista1\20.png,)
$font(calibri,8,glow-130-160-240 glowalpha-120,250-250-250)
$alignabs(102,3,$sub(%_width%,150),12,,)>>%title%
$alignabs($sub(%_width%,127),3,120,20,right,)%length%
$alignabs($sub(%_width%,157),7,120,20,right,)
$font(wingdings,6,bold glow-130-160-240 glowalpha-110,180-220-250)$repeat(,%rating%)

)

This assumes you want the same thing displayed for all tracks regardless of total tracks. If you DO want something different then you'll have to use the $ifgreater() function. Either way, the sort code does not go here.

Your GROUP DISPLAY looks fine.
Yotsuya
QUOTE(wraithdu @ Jan 28 2007, 23:21) *
You got some code in the wrong places. First, your GROUP BY code should be
CODE
$ifgreater(%totaltracks%,4,
%album%
,
%_itemcount%
)



You cannot use %_itemcount% or %_itemindex% in the Group By field. Please, if this has changed someone correct me. My suggestion would be a group by code like this:
CODE
$ifgreater(%totaltracks%,4,%album%,!noheader!)
or
CODE
$ifgreater(%totaltracks%,4,%album%,%artist%)

Also, the $if(%_selected%) and $if(%isplaying% code should be moved outside of the $ifgreater() code otherwise you're only going to see the effects with your albums and not your "singles".

But you are right the sort string is a major problem many users of this plugin run into. This plugin does not sort your playlist entries it simply groups similar adjacent entries together. I would like to again suggest that this plugin atleast add the current group by string to the end of the current sort string for more intuitive behavior.
Silverbolt
Some Alt shortcuts are overridden, for instance, you can't Alt+F4. 0.5.4 beta, Jan 9th build.
Yotsuya
wow he's right. forcing a user to use the mouse to close a program is evil. this might also be related to a problem another user reported in another thread regarding the use of a german keyboard with foobar.
henn1ng
wow, thx for all the support ppl!

i have now managed to at least get a different header for items with a grousize <4.
my standard playlist is sorted by artist then date then album then tracknumber. i never really understood where it tells it to do so since im using cepiperez config but it looks just right.
i reckon it has something to do with the "playlist tree" or the "browser".


so the best thing really would be to use this sorting and display method for all groups >3 and all the others should be up top sorted and grouped by album.

i have not really understood your suggestion with the columns ui sorting. does that even effect my scpl ?? i have basically done it the exact same way as you di on the screenshot, only with the different sorting. but it didnt do anything.

maybe you could post what that trackinfo button should look like.

i think "we're" almost there wink.gif so please help me to get this done.

again, thank you for answering!
wraithdu
QUOTE(Yotsuya @ Jan 29 2007, 02:40) *

You cannot use %_itemcount% or %_itemindex% in the Group By field. Please, if this has changed someone correct me.

Well I tested it and it provides one group header at the top of all the 'singles'. Whether it is actually the correct string to use, or I just cheated the sytem, I'm not sure. But it works.

Using !noheader! would eliminate the header at the top of the list where he has his 'Singles' and %artist% would create a new header for each artist change. He doesn't want either of those scenarios, just one header at the beginning of his 'Singles' section.
wraithdu
QUOTE(henn1ng @ Jan 29 2007, 05:35) *
i have not really understood your suggestion with the columns ui sorting. does that even effect my scpl ?? i have basically done it the exact same way as you di on the screenshot, only with the different sorting. but it didnt do anything.

maybe you could post what that trackinfo button should look like.

Any playlist sorting affects all playlist views, whether it is ColumnsUI or SCPL. To sort using the custom sort spec in a ColumnsUI column you must switch to a ColumnsUI layout and just click the column header. It works just like windows explorer to sort a column.

The trackinfo_mod button code would be something like this -
CODE
$button2(DstX,DstY,X,Y,W,H,TEXT,HOVER TEXT,'SORT:Normal|$ifgreater(%totaltracks%,4,%artist% - %date%,()) - %album% - $tracknumber()',)

I think that sort string is correct based on what you posted. I haven't tested this button code since I'm not at home, but I think it should work.
foosion
QUOTE(Silverbolt @ Jan 29 2007, 10:02) *
Some Alt shortcuts are overridden, for instance, you can't Alt+F4. 0.5.4 beta, Jan 9th build.
This sounds like a problem with the WM_SYSCOMMAND handler.
Yotsuya
Is it possible to define playlist sorting with a button in a trackinfomod panel, for example:
CODE
$button2(90,1,0,0,35,13,'$font(tahoma,7,,$if($sorted(Singles),255-255-255,0-0-0))$char(91)
$font(,,,128-128-128)Singles$font(,,,$if($sorted(Singles),255-255-255,0-0-0))$char(93)',
'$font(tahoma,7,shadow,255-255-255)Singles',
'SORT:Singles|RESET
%artist% - %title%
',)

And then reference that sort using $sorted() in a SCPL group by routine, for example:
CODE
$if($sorted(Singles),!noheader!,
$if(%tracknumber%,%album%%discnumber%,
!noheader!
))

I have tried many permutations and combinations but have been unsuccessful in using $sorted() in any panel outside of the one where the original button resides.
Aliarse
Is it possible to remove the scroll bar and just add two images for scrolling up/down the playlist?

I have a setup im happy with, but the scroll bar is "ruining" it atm as its not the same color as the rest of my theme...

IPB Image
inatightspot
QUOTE(Aliarse @ Jan 29 2007, 14:54) *

Is it possible to remove the scroll bar and just add two images for scrolling up/down the playlist?

I have a setup im happy with, but the scroll bar is "ruining" it atm as its not the same color as the rest of my theme...

IPB Image

I want my scroll bars gone too since focus follows the mouse cursor and I can use the middle button
mister_tee
Hello everyone,
after playing around with this single column playlist thingy, I thought about a nice "extension" regarding "single song" playlists.

For example: I have some playlists with serveral albums and it that case everything works fine. But when I want to create a sampler, I only need the artist, the title of the song and no header. The header would only irretate while I'm dragging and dropping.

So I tried to build my single column playlist like "azraels" behaviour. If a playlist has the part "-s-" in the end of the name, no header will be created and the songs will be shown with the list index.

EXAMPLE 1, PLAYLIST NAME "Album list":
IPB Image

EXAMPLE 2, PLAYLIST NAME "Default -s-":
IPB Image

As you can see, the "single"-view features a missing header, a normal view with artist and title. When the file has no artist or title tag, the filename will be shown. This comes handy for a queue-playlist or a "default"-playlist, where you often put single tracks ...
The whole thing works fine for me at the moment, but I guess I have a bug (or this is not featured by scp): If I rename an existing playlist, I still got one header. If I enter the settings of scp, add a space and apply, the header is gone. This is a bit anoying, when you rename playlists often.

Here is the code from my playlist (sorry, couldn't find the original author so quick in this huge board), my "extensions" are the ones with the "$right(%playlist_name%,3),-s-)":

Group by:
CODE

$if($strcmp($right(%playlist_name%,3),-s-),!noheader!,%album%)


Item display:
CODE

$ifequal($mod(%tracknumber%,2),0,
$imageabs(,,\images\LE5\reluna1.png,),
$imageabs(,,\images\LE5\reluna2.png,))
$ifequal($mod(%tracknumber%,2),0,
$imageabs(,,\images\LE5\reluna1.png,),
$imageabs(,,\images\LE5\reluna2.png,))

$if(%_selected%,$imageabs(,,\images\LE5\relunagreen.png,),)
$if(%isplaying%,$imageabs(,,\images\LE5\relunablue.png,),)
$if(%isplaying%,$font(Tahoma,8,,0-0-200),$font(Tahoma,8,,0-0-0))

$padding(7,)
$align(left,middle)
$if($strcmp($right(%playlist_name%,3),-s-),%list_index%,[%tracknumber%])

$padding(1,)
$align(right,middle)
$if(%isplaying%,%_time_remaining%,%length%)

$alignabs(28,2,200,15,left,)
$if($strcmp($right(%playlist_name%,3),-s-),
  $if( $and(%artist%, %title%),%artist%$if(%tracknumber%, - %tracknumber%,) - %title%,%filename%),
  [%title%])


Group display:
CODE

$imageabs(,,\images\LE5\relunaorange2.png,)
$imageabs(4,11,\images\LE5\arrow.png,)

$alignabs(245,8,%_width%,20,left,)
$font(Tahoma,12,,40-40-40)
$replace($replace(%date%,20,''),19,'')

$alignabs(28,3,200,16,left,top)
$font(Tahoma,10,bold,40-40-40)
$if(%album artist%,%album artist%,%artist%)

$font(Tahoma,10,,40-40-40)
$alignabs(28,13,215,20,left,bottom)
[%album%]


Yeah I now, not much, but I'm proud of it .. kind of biggrin.gif
Later,
mister_tee
panfist
I was testing out dragging and dropping tracks in the playlist window, and I really don't like the way the window draws as you drag tracks. If you are viewing a playlist grouped by %album%, and you drag one track up, when the window draws the track in the next index position, it redraws the group header so you have to move your mouse over the group header once again to move the track one more index. This is especially annoying when you are dragging one track and if your "group rows" is set to more than 1, you must move your mouse more distance.

The problem is not as annoying but also present when you are dragging multiple tracks. A solution I thought of while messing around would be to re-draw the item displays as long as your mouse button (or alt) are "down," but only re-draw the group headers when your mouse button (or alt) is "up." In other words, don't refresh group headers while dragging.

I hope you can understand my idea because I'm not sure if I'm being clear. I really would like this to be an option.

EDIT: I just noticed that when you are dragging a track down in the list, that is to say increasing it's list index, and it's directly above a group header, it will refresh in the next highest list index position when your mouse cursor first crosses the group header below the track. I like this behavior. When you drag a track up in the list (decrease it's index) and it's directly BELOW a group header, it will not refresh until the mouse cursor crosses the top of the group header. This is very annoying, especially if that track has it's own group header, every time you decrease it's index and it re-draws in the window, you must move your mouse over the entire group header. It behaves much more smoothly when it's being dragged down, and it would be a nice fix if it behaved like that when you dragged it up, too.

**********************************************************

IPB Image

I've found another problem which I would consider to be a general performance problem of this plugin. When I am using this component with my config, the re-draw rate while resizing the window varies according to how many album images I am displaying. I will include my code for an example at the end of the post. When the SCP view has a small height and I am only showing 1 group header, that is to say only showing 1 album art jpg, the window redraws quickly and smoothly. If I increase the height so that two group headers are showing, the redraw rate slows down considerably, but still follows the mouse cursor well. If I increase the height even more so that three JPGs are showing, the re-draw rate drops to about 2 fps and it makes the mouse cursor visibly lag. The jpgs I have for covers are no bigger than 300x300 or 800kB, and I have a 3.4ghz processor with 2gigs of dual channel ram, 512 meg PCIe video card. In order to try and get better perfomance I even renamed all of my album art from "%artist%\%album%\folder.jpg" to "album art\%artist% - %album%.jpg" and put all of my art in a central folder to see if seek times of my hard disk might be limiting my performance. Now, they are all in one folder and defragmented, yet I still have very slow screen refresh rates when displaying more than 2 JPGs. The other images displayed are all under 4k each.

I commented my code thoroughly which I notice nobody around here does. I hope it helps anyone understand my problem.

SCP Code:
row height:15
group rows:3
group by: %album%

item display
CODE

// initialize variables needed to properly display dynamically resizing album art.
// imgwidth = the desired width of the entire composite image, art+jewel case
// imgheightfac*imgwidth/10=imageheight
// artdimfac*imgwidth/10=artwidth and artheight
// artvoffsetfac*imgheight/100 = the vertical offset of the album art from the top of the group display
// arthoffsetfac*imgwidth/100 = the horizontal offset of the album art
// grouprows = number of rows in the group
// compositeoffset takes into account the width of the album year and makes sure the composite doesn't run into the year
$puts(imgwidth,100)
$puts(imgheightfac,9)
$puts(artdimfac,83)
$puts(artvoffsetfac,45)
$puts(arthoffsetfac,120)
$puts(grouprows,3)
$puts(compositeoffset,37)

// calculating variables needed from the initialized variables
// imgheight the cropped height of the
// artdim = the dimensions of the album art within the case/disc/art composite
// ralignoffset = how far from the right window border the image renders, 45 = pixel width of the year display.
// ralignoffsetart = how far from the right window border the art renders (slightly more to the right than the whole image)
// artvoffset = the vertical offset of the art so it appears centered in the case
$puts(imgheight,$div($mul($get(imgheightfac),$get(imgwidth)),10))
$puts(artdim,$div($mul($get(artdimfac),$get(imgwidth)),100))
$puts(ralignoffset,$sub(%_width%,$add($get(imgwidth),$get(compositeoffset))))
$puts(ralignoffsetart,$add($sub(%_width%,$add($get(imgwidth),$get(compositeoffset))),$div($mul($get(arthoffsetfac),$get(imgwidth)),1000)))
$puts(artvoffset,$div($mul($get(imgheight),$get(artvoffsetfac)),1000))

$ifequal($mod(%_itemindex%,2),0,
$imageabs(,,\images\LE5\reluna1.png,),
$imageabs(,,\images\LE5\reluna2.png,))

$if(%_selected%,$imageabs(,,\images\LE5\relunagreen.png,),)

$if(%isplaying%,$imageabs(,,\images\LE5\relunablue.png,),)
$if(%isplaying%,$font(Calibri,8,bold,0-0-200),$font(Calibri,8,,0-0-0))

$padding(4,)
$align(right,middle)
$if(%isplaying%,%_time_remaining%,%length%)

$padding(2,)
$align(left,middle)
%tracknumber%

$padding(22,)
$align(left,middle)
[%title%]

$ifgreater($mul(%_height%,%_itemcount%),40,
$imageabs2($get(imgwidth),$get(imgheight),,$sub($mul(%_height%,$add(%_itemindex%,$get(grouprows))),$add(%_height%,1)),,%_height%,$get(ralignoffset),,/images\test\case.png,)
//$imageabs2($get(imgwidth),$get(imgheight),,$sub($mul(%_height%,$add(%_itemindex%,$get(grouprows))),$add(%_height%,1)),,%_height%,$get(ralignoffset),,/images\test\disc.png,)
$imageabs2($get(artdim),$get(artdim),,$sub($mul(%_height%,$add(%_itemindex%,$get(grouprows))),$add(%_height%,$get(artvoffset))),,%_height%,$get(ralignoffsetart),,d:\album art\%artist% - %date% - %album%.jpg,)
,)


group display
CODE

// initialize variables needed to properly display dynamically resizing album art.
// imgwidth = the desired width of the entire composite image, art+jewel case
// imgheightfac*imgwidth/10=imageheight
// artdimfac*imgwidth/10=artwidth and artheight
// artvoffsetfac*imgheight/100 = the vertical offset of the album art from the top of the group display
// arthoffsetfac*imgwidth/100 = the horizontal offset of the album art
// grouprows = number of rows in the group
// compositeoffset takes into account the width of the album year and makes sure the composite doesn't run into the year
$puts(imgwidth,100)
$puts(imgheightfac,9)
$puts(artdimfac,83)
$puts(artvoffsetfac,45)
$puts(arthoffsetfac,120)
$puts(grouprows,3)
$puts(compositeoffset,37)

// calculating variables needed from the initialized variables
// imgheight the cropped height of the
// artdim = the dimensions of the album art within the case/disc/art composite
// ralignoffset = how far from the right window border the image renders, 45 = pixel width of the year display.
// ralignoffsetart = how far from the right window border the art renders (slightly more to the right than the whole image)
// artvoffset = the vertical offset of the art so it appears centered in the case
$puts(imgheight,$div($mul($get(imgheightfac),$get(imgwidth)),10))
$puts(artdim,$div($mul($get(artdimfac),$get(imgwidth)),100))
$puts(ralignoffset,$sub(%_width%,$add($get(imgwidth),$get(compositeoffset))))
$puts(ralignoffsetart,$add($sub(%_width%,$add($get(imgwidth),$get(compositeoffset))),$div($mul($get(arthoffsetfac),$get(imgwidth)),1000)))
$puts(artvoffset,$div($mul($get(imgheight),$get(artvoffsetfac)),1000))

//chooses album artist over track artist for the entire header
$if(%album artist%,$put(artist,%album artist%),$put(artist,%artist%))

// the background image
$imageabs(,,\images\LE5\relunaorange2.png,)

// the genre image
$imageabs($sub($get(ralignoffset),53),2,\images\ojoink\%genre%.gif,)

//this section renders the album artist, album title
$alignabs(6,4,%_width%,20,left,top)
$font(Calibri,12,bold glow-255-255-255 glowexpand-1,0-0-0)
$get(artist)
$font(Calibri,11,bold glow-255-255-255 glowexpand-0,0-0-0)
$alignabs(6,20,%_width%,20,left,bottom)
%album%

// this section renders the date, codec, and bitrate
$font(Calibri,12,glow- glowexpand-0 glowalpha-15,40-40-40)
$alignabs($sub(%_width%,$add($calcwidth(%date%),4)),2,%_width%,20,left,)
%date%
$font(Calibri,8,glow- glowexpand-0 glowalpha-15,40-40-40)
$alignabs($sub(%_width%,$add($calcwidth(%codec%),5)),19,%_width%,20,left,)
%codec%
$alignabs($sub(%_width%,$add($calcwidth(%bitrate%),5)),29,%_width%,20,left,)
%bitrate%

// renders the album art
$ifgreater($mul(%_height%,%_itemcount%),90,
$imageabs2($get(imgwidth),$get(imgheight),,,,,$get(ralignoffset),,/images\test\case.png,)
//$imageabs2($get(imgwidth),$get(imgheight),,,,,$get(ralignoffset),,/images\test\disc.png,)
$imageabs2($get(artdim),$get(artdim),,,,,$get(ralignoffsetart),$get(artvoffset),d:\album art\%artist% - %date% - %album%.jpg,)
,)
PonasX
I have two CepiPerez Foobar's configs, in one Single Column Playlist in playing playlist shows now playing song and if need jumps down or up, in the other config that doesn't work ..

IPB Image

Playing song is somewhere, where i don't see. What i need to do, that Single Column Playlist auto jumps to now playing song if this playlist is now playing ? smile.gif
patrick0
does anyone have any cool "group by" functions they are using?

I am trying to sort primarily by artist across libraries(music folders), which I understand from the wiki using cwb_hooks should be able to accomplish this(?).. So far after lots of fiddlling around, I have been unable to get it to work.. and I am getting the feeling this isn't the right function?

I would appreciate if you have something that works, you could post it up, and/or PM me!


edit
there are few examples using the example from the wiki, but I haven't been able to modify it to sort by music folders, eg:
http://www.hydrogenaudio.org/forums/index....st&p=468260
http://www.hydrogenaudio.org/forums/index....st&p=426731
Yotsuya
patrick0: Can you be more specific about what you are trying to do? You can access the music's folder name by using %directory% or $directory(%path%,n) where n is the level of the pathname you want.
patrick0
Yotsuya:let me try to explain .. .

basically I have multiple libraries and when listed into the single column play list they go
CODE
library 1 , sorted by artist
    A
    B
    ...
    Z
followed by library2, sorted by artist
    A
    B
    ..
    Z


what I would like is this
CODE
library 1 & 2, sorted by artist together
    A
    B
    ..
    Z

wraithdu
The 'Group By' function in SCPL simply defines where the header rows are placed. It does not sort your music for you. You must accomplish this through a trackinfo_mod button or from a ColumnsUI column header with a custom sort spec.

Start reading from here - http://www.hydrogenaudio.org/forums/index....st&p=467661
through post #1273.
shakey_snake
QUOTE(wraithdu @ Feb 2 2007, 17:44) *

It does not sort your music for you. You must accomplish this through a trackinfo_mod button or from a ColumnsUI column header with a custom sort spec.

...or a line of script in Edit -> Sort -> Sort by...


Patrick, I don't see what your problem is here. Where the files are located shouldn't have anything to do with how they are sorted.

If you want to sort by artist, just go to File -> Edit -> Sort by Artist
Yotsuya
As mentioned before, SCPL does not sort your playlist. The group by column only determines where to put group headers it does not change your item order to fit those groups. It sounds like you want to place %artist% toward the beginning of your sort string.

For existing playlists you can change your sort string from:
Edit> Sort> Sort By...

For all future playlists you can change your sort string from:
File> Preferences> General> "Sort incoming files by:"
Tich
Is there a way to force SCPL to refresh?
Say I add some track to the playlist, get the album-art which didn't exist before and wan't to refresh the playlist in order for it to show the albumart.
The only way I know of is changing the config and hitting ok/apply, adding the same tracks again or restarting foobar.
I searched for the answer but didn't find anything useful in this topic.
chaosblade
usually just switching to another playlist works for me.
Tich
QUOTE(ChaosBladE @ Feb 3 2007, 18:04) *
usually just switching to another playlist works for me.

might work for updating the tags (group info) but doesn't change the album-art... only a restart or changing the config did the trick for me.
chaosblade
SCPL might cache the images, I think it does actually.
wraithdu
If you have an alternate layout, like a ColumnsUI layout, then switching to that and back to SCPL will work for you (I found this out last night while updating a bunch of album art).
hexonn
Alright, I need some help here :? crying.gif

I use this in the Group Display
CODE
$imageabs2(%_width%,%_width%,0,0,%_width%,%_width%,0,-25,$replace(%path%,%filename_ext%,)front.jpg,alpha-140)


i know that %_width probably isn't the best choise in using

here is an example of them working, it's just the album cover with some alpha transparency above a gradient
http://img300.imageshack.us/img300/2062/foory0.jpg

but now gone?
http://img10.imagepile.net/img10/thmb73071foobad.jpg

also, what causes some of the images to show, and others not? album arts are the same size 500x500 or 600x600, but they don't get displayed at all in some cases
wraithdu
Try this code instead -
CODE
$imageabs2(%_width%,%_width%,0,25,%_width%,%_height%,,,$replace(%path%,%filename_ext%,'front.jpg'),nokeepaspect alpha-140)
jezuschryzt
hi,

I've recently upgraded from Windows 2000 Professional to Windows XP Professional SP2 and ever since doing it both foo_uie_single_column_playlist and foo_uie_trackinfo_mod refuse to work. I get the following error when starting f2k:

CODE
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.  

Failed to load DLL: foo_uie_trackinfo_mod.dll
Reason: This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.



I've tried redownloading the components to the original directory as well as re-installing f2k altogether and yet I still get the same problem. Any ideas on how to fix this?
shakey_snake
yeah,
the first post says you need this:
http://www.microsoft.com/downloads/details...;displaylang=en
jezuschryzt
oh, thanks.
terrestrial
QUOTE(Yotsuya @ Jan 23 2007, 01:08) *

Thank you for your help this appears to be working now. I do have a few more questions though. Am I right in assuming that by placing the RESET at the beginning, the sorting string isn't reset until the beginning of the next sort?


no, the sort string is reset before the new sort.

QUOTE

Is %sortstring% and $sorted() available outside of the panel in which the buttons appear that set them? I keep getting ? or [UNKNOWN FUNCTION] when trying to use these in a different panel than the one the buttons are in.


no, not currently.

QUOTE(Purple Monkey @ Jan 23 2007, 10:28) *

Any ideas why it doesn't work like this for me?

I've got the latest SCPL (0.4.5 beta), ColumnsUI (0.1.3 beta 1v7) and Foobar.


not sure.. these are the steps I did. 1) start playing in playlist a, 2) switch to playlist b, and enqueue file. Playback then continues on playlist b after the enqueued file. Are you doing something different?


QUOTE(panfist @ Jan 25 2007, 18:28) *

Hey, I was wondering, for the context menu when clickin on a track in SCPL, there's an item called "playlist" which has "active" and "playing" in it, but I'm not sure what the check marks mean. Do they indicate which playlist is active and/or playing? Because you can click on them and change the appearance of the checkmark, which did not sync up with the same icons in the playlists dropdown component. If we don't use this context menu item, can we delete it?


the check mark indicates which playlist is being displayed, and it's not removable.

QUOTE(VeaaC @ Jan 26 2007, 19:55) *

Hmm, maybe saving cache between sessions.... with a big playlist and albumarts with ~2000*2000 pixels scrolling in very large playlists is not the so fast... resizing images takes some time.
Tried several solutions, but displaying album art in playlists is a big slowdown and I don't want to have foobar open all day just to have all images cached.


you could just make thumbnails for the albumart and use that. shouldn't be too hard with some sort of batch image processing program.

QUOTE(panfist @ Jan 30 2007, 17:09) *

I was testing out dragging and dropping tracks in the playlist window, and I really don't like the way the window draws as you drag tracks. If you are viewing a playlist grouped by %album%, and you drag one track up, when the window draws the track in the next index position, it redraws the group header so you have to move your mouse over the group header once again to move the track one more index. This is especially annoying when you are dragging one track and if your "group rows" is set to more than 1, you must move your mouse more distance.

The problem is not as annoying but also present when you are dragging multiple tracks. A solution I thought of while messing around would be to re-draw the item displays as long as your mouse button (or alt) are "down," but only re-draw the group headers when your mouse button (or alt) is "up." In other words, don't refresh group headers while dragging.

I hope you can understand my idea because I'm not sure if I'm being clear. I really would like this to be an option.

EDIT: I just noticed that when you are dragging a track down in the list, that is to say increasing it's list index, and it's directly above a group header, it will refresh in the next highest list index position when your mouse cursor first crosses the group header below the track. I like this behavior. When you drag a track up in the list (decrease it's index) and it's directly BELOW a group header, it will not refresh until the mouse cursor crosses the top of the group header. This is very annoying, especially if that track has it's own group header, every time you decrease it's index and it re-draws in the window, you must move your mouse over the entire group header. It behaves much more smoothly when it's being dragged down, and it would be a nice fix if it behaved like that when you dragged it up, too.


yeah, rearranging by mouse isn't the most convenient, but until I can rework it you can use the keyboard which works better.
mazy
terrestrial, i would like to access foo_uie_trackinfo_mod's persistant variables in foo_uie_single_column_playlist, could you implement this somehow? i would use this for example to toggle album art in the playlist etc.
terrestrial
that's actually the next thing I'm working on (however to do what you would like to do there'd have to be a way to tell scpl to redraw the display).
Crusoli
Is it just me or are the Up Down Buttons not working anymore to scroll through the playlist?
Alt+Up/Down moving songs works but scrolling doesnt...
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.