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 739949 times) previous topic - next topic
0 Members and 3 Guests are viewing this topic.

foo_uie_single_column_playlist

Reply #1275
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...


foo_uie_single_column_playlist

Reply #1276
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...


I want my scroll bars gone too since focus follows the mouse cursor and I can use the middle button

foo_uie_single_column_playlist

Reply #1277
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":
[a href="http://img245.imageshack.us/my.php?image=view01albumlistxy2.gif" target="_blank"]
Later,
mister_tee

foo_uie_single_column_playlist

Reply #1278
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.

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



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: [Select]
// 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: [Select]
// 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,)
,)

foo_uie_single_column_playlist

Reply #1279
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 ..

[a href="http://img513.imageshack.us/my.php?image=fb2kbb5.png" target="_blank"]

foo_uie_single_column_playlist

Reply #1280
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

foo_uie_single_column_playlist

Reply #1281
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.

foo_uie_single_column_playlist

Reply #1282
Yotsuya:let me try to explain .. .

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


what I would like is this
Code: [Select]
library 1 & 2, sorted by artist together
    A
    B
    ..
    Z

 

foo_uie_single_column_playlist

Reply #1283
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.

foo_uie_single_column_playlist

Reply #1284
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
elevatorladylevitateme

foo_uie_single_column_playlist

Reply #1285
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:"

foo_uie_single_column_playlist

Reply #1286
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.

foo_uie_single_column_playlist

Reply #1287
usually just switching to another playlist works for me.

foo_uie_single_column_playlist

Reply #1288
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.

foo_uie_single_column_playlist

Reply #1289
SCPL might cache the images, I think it does actually.

foo_uie_single_column_playlist

Reply #1290
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).

foo_uie_single_column_playlist

Reply #1291
Alright, I need some help here :? 

I use this in the Group Display
Code: [Select]
$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

foo_uie_single_column_playlist

Reply #1292
Try this code instead -
Code: [Select]
$imageabs2(%_width%,%_width%,0,25,%_width%,%_height%,,,$replace(%path%,%filename_ext%,'front.jpg'),nokeepaspect alpha-140)

foo_uie_single_column_playlist

Reply #1293
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: [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.  

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?


foo_uie_single_column_playlist

Reply #1295
oh, thanks.

foo_uie_single_column_playlist

Reply #1296
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.

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?


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.

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.

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.

foo_uie_single_column_playlist

Reply #1297
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.

foo_uie_single_column_playlist

Reply #1298
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).

foo_uie_single_column_playlist

Reply #1299
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...