Featured in collections
Recommended for you
Br3tt's avatar
JS Smooth Browser
By Br3tt   |   Watch
39 100 23K (2 Today)
Published: November 10, 2015
© 2015 - 2019 Br3tt
a jscript for the component "JScript Panel" v1.0.0 or better

[Change Log]
 * 2015-11-10 at 11:00 (GMT+1) : 0.9.0 >> Initial beta release version (for the new component JScript panel 1.0.0)
 * 2015-11-10 at 16:43 (GMT+1) : 0.9.1 >> custom color "selected text" was only working in Grid view : now fixed
 * 2015-11-12 at 12:10 (GMT+1) : 0.9.2 >> bugs fixing (when panel hidden, if display = Grid mode, nothing draw when panel shown + on source = playlist, when clicking on a group item (album / artist / genre) it now selects all the tracks of the group and no more only the 1st one)
 * 2015-11-15 at 10:30 (GMT+1) : 0.9.3 >> added a context menu option to toggle caching image on disk (to get a better image quality on big cover size, degraded when using disk cache) + bugs fixing
[/Change Log]

[Features]
 * 2 sources possible: library or active playlist (initialy designed as a library browser)
 * 3 columns modes available: albums, artists, genres
 * 4 display modes avaliable: column, art+bottom label, art+right label, grid art view
 * True Smooth Scrolling
 * Screen Touch support
 * Header bar at Top (can be hidden with CTRL+T)
 * Vertical Scrollbar (can be hidden with CTRL+B)
 * Filter box
 * Custom or Cover art Wallpaper as background supported (including a blur effect)
 * Windows scaling compliant (you can adjust zoom size in real time with CTRL+mousewheel)
 * Custom Panel Colors (in Properties window)
 * ... and more!
[/Features]

[Requirements]
 * Windows Vista, 7, 8 or 10
 * foobar2000 v1.3 or better >> www.foobar2000.org
 * component "JScript Panel" 1.0.0 or better >> github.com/19379/foo-jscript-p…
[/Requirements]

[Installation]
 * copy folder "js_br3tt" into your foobar2000 Profile folder (it contains the "jssb" subfolder)
 * import/paste the main script into a "JScript Panel" instance of your foobar2000 layout (DUI or CUI)
 * Important: for any update of my scripts, replace the whole folder "js_br3tt\jssb\" each time
   and Clear the panel properties (hold SHIFT key + Right-click > Properties > "Clear" button > "OK" button)
[/Installation]

[Tips]
 * for the GENRE column mode, images have to be stored in js_br3tt\jssb\images\genres\ folder
 * for the ARTIST column mode, to make the disk cache working, artist images path have to be set in window Properties (SHIFT + right click > Properties)
 * Hold SHIFT key + right click to display Configure script and panel Properties entries
 * Always use Jscript9 engine for better performances (choice is to be made when you open the "Configure..." window from a JScript Panel instance (right click)
 * Change colors and fonts in foobar2000 Preferences > DefaultUI or ColumsUI
 * Some minor settings can be changed in window Properties (SHIFT + right click > Properties), use it carefully
 * Use Keyboard for "jumping" to an artist/genre in the library view (incremental search feature like in ELPlaylist)
 * Right Click on items for contextual menu for the selection
 * CTRL+T to toggle the columns toolbar
 * CTRL+B to toggle the scrollbar
 * Hold CTRL + Mouse Wheel to scale elements (useful for 'retina' screens)
 * Hold SHIFT + Mouse Wheel to scale group header and so the cover art size
 * F3 key to show now playing track (if present in library and not filtered)
 * F5 key to refresh covers
 * ... etc
[/Tips]

Thanks by advance for bugs report and feedback :)
Featured in collections
Recommended for you
anonymous's avatar
Join the community to add your comment. Already a deviant? Sign In
Comments (86)
LeFrenchCroissant's avatar
Would love to get this working but unfortunately I'm getting the following error:

JavaScript compilation error:
Syntax error
File: C:\Users\HLB\Downloads\foobar2000\js_br3tt\jssb\js\JScommon.js
Line: 540, Col: 8
   }; else {

What can I do?
Reply  ·  
Whills01's avatar
Thanks for your hard work. I've been using it for months. I am wondering how I can get the album covers loaded in background automatically. I've tried to modify the script, but I found it was too difficult. I would appreciate it if you could tell me how to do it or add this function in the next update.
Reply  ·  
Sub13Vegan's avatar
Thank you for creating this Br3tt I've made some small changes and the only thing I need is middle click track list menu lol but it's a much appreciated upgrade from foo_uie_graphical_browser. 
Reply  ·  
oyorast's avatar
I tried everything but can't get artist pictures to work for some reason. 
Reply  ·  
alwaysbeta's avatar
Any update plans? :D (Big Grin) 
Reply  ·  
Br3tt's avatar
Br3tt|Hobbyist Interface Designer
hi, nothing planned for now... can't tell when it will :)
Reply  ·  
alwaysbeta's avatar
Christmas is coming. Any surprises or "sugar"? :D (Big Grin) 
Reply  ·  
Jazzthieve's avatar
Am I the only one getting compile and syntax errors when applying this script on post v1.2.0 jscript?
Reply  ·  
kjc66's avatar
kjc66|Hobbyist Interface Designer
I just tried it and I am having the same problem. 
Reply  ·  
Jeannela's avatar
bugreport, in function `get_metrics`, scrollbarWidth should not be zoomed.
Reply  ·  
jahwise's avatar
Super boulot ton JScript !
Is there any possibility to display by folder ? would be great!
Reply  ·  
arhipov-rp's avatar
I use JS Smooth Browser (downloaded from here github.com/19379/JS-Smooth-Scr…) and JScript Panel v1.2. Genre list in Smooth Browser is not the same as Album list. I asked marc2003 hydrogenaud.io/index.php/topic…, he replied that "it doesn't appear to support multi-value tags". Is it possible to add such feature?
Reply  ·  
Br3tt's avatar
Br3tt|Hobbyist Interface Designer
not planned
Reply  ·  
HiepNH's avatar
It works well. But How can I make the background transparent?
Reply  ·  
janicka1's avatar
wow great work, i love what you're doing!

i have a couple of questions:

- i can't get the artist column mode find my artist pics :(
my artist pics are in "C:\Users\username\AppData\Roaming\foobar2000\wsh_data\artists\%artist%\" and are named eg.: "Beck_2713261.jpg" (fetched with marc2003 script)
I tried all kinds of things, but they will just not be displayed..
  edit: it seems the script is looking for an artist.jpg inside the folder of the audiofiles.. but i could not find where this corresponding code in the script is :3 any help?

- is it possible to change the artist column view to %album artist% somehow? i usually listen to full albums only and now its splitting them.
  edit: okay, i found it, i can change that to whatever i like on line 39: tf_groupkey_artist: fb.TitleFormat("$if2($meta(artist,0),Unknow Artist)"), 
Reply  ·  
Jahtimes's avatar
J'aimerais diminuer encore le "row Height" car je le trouve trop espacé quand je réorganise par "Genre". C'est possible de le diminuer plus que le minimum proposé ?

Sinon tout est parfait Br3tt, merci encore !
Reply  ·  
Sgt-Meddle's avatar
Works great thanks!
Reply  ·  
Jazzthieve's avatar
Very nice browser however I noticed when using a large playlist as source and cursor follows playlist when a song stops and jumps (shuffle) to a different song the covers in grid mode won't load. They only load after I either move my mouse pointer over the grid, scroll the playlist, point a song on the playlist or when a play count is registered at the halfway point of the playing song. The loading seems to totally freeze, in other words if you leave foobar untouched when it transitions to a next song the browser will not load any image and just freeze. This does not seem to happen on playlists with less items (probably due to sufficient caching). Enabling cache image or diasbling it doesn't make a difference.
The key issue is thus, large playlists makes it not load the covers when you don't interact with foobar.
Reply  ·  
bwer1233's avatar
This is great! Jscript panel seems to be a whole lot easier to manage from a users perspective than WSH as well, making me even more excited to see you moving this style of playlist over! Quick question though. What part of the script is handling playlist sorting. Right now without looking at the script it APPEARS you are calling an if/then to make the playlist sort by album, and then follow additional sub rules to also break it up by artist. I want to eliminate these sub sorting rules and have it all ONLY sort by album (so no matter what is in the artist/albumartist/composer/etc tags it still only shows you ONE album.) I'm gonna take a wild guess and say lines 16-22 are handling the sorting rules, I'm just going to post this here anyway for you to either validate my assumptions or point me in the right direction. Seems as though my best bet would be to just change these values and watch what happens. Process of elimination is a great learning tool! (since I do have a basic understanding of this I should be able to make these changes without breaking the script and having to start over!)

EDIT: I just realized I posted this in your browser script page, my question involves your playlist script.......I'll leave it here until I move it over to your other page
Reply  ·  
SayQueensbridge's avatar
When using the Genre column, albums with the 'Pop' genre tag don't have their own header and are instead listed in the header right before it ('Metal' in my case). 

If I change the genre to something like 'Top' 'Test' 'Pops' or 'P', then it'll show up as its own header. Kind of weird that only the 'Pop' genre is listed under a different header. 

Thanks for the component, works great otherwise!
 
Reply  ·  
Kyliathy's avatar
Kyliathy|Professional Writer
Hey Br3tt aka Falstaff :). Thank you so much for creating these useful Foobar components. I donated you some points :). Keep up the good work!

I also have one small feature request for the JS Smooth Browser: there is currently no possibility to customize the Playlist Name where the Browser puts the library selection. I've seen that other library browsers have that and I believe it's a pretty important feature. Until you implement something, I had to hard-code the modification in your script.
Reply  ·  
Fizbin69's avatar
Post deleted by Fizbin69. (Posting it somewhere else)
Reply  ·  
Enigma776's avatar
Getting "This script requires the component JScript Panel v1.0.0 or higher." Even though I am running 1.1.1. Same for all the JS Smooth scripts. Cleared out the old JSPlaylist stuff but it still thinks I am using an old JScript component.
Reply  ·  
Br3tt's avatar
Br3ttEdited |Hobbyist Interface Designer
no time to update, just put in comment the 02 first lines of the script :

if (!("FormatDuration" in utils))
    fb.ShowPopupMessage("This script requires the component JScript Panel v1.0.0 or higher.\n\ngithub.com/19379/foo-jscript-p…");
Reply  ·  
anonymous's avatar
Join the community to add your comment. Already a deviant? Sign In
©2019 DeviantArt
All Rights reserved