Help - Search - Members - Calendar
Full Version: foo_chronflow
Hydrogenaudio Forums > Hosted Forums > foobar2000 > 3rd Party Plugins - (fb2k)
Pages: 1, 2, 3
queenaudio
Hi there,

I absolutely love this plugin, it makes my foobar use so much more enjoyable.

I have a quick question, I am using the default config and I was wondering what I would have to change in the code so that it looks like you are looking at the album cover straight on (i.e. it shows as a square) as the default it looks like you are looking slightly down onto the cover and it is not quite square... Does anyone know?? I have tried tinkering with the script but I have no idea what I am doing!

Thanks for any help

G.

Original script:
CODE
// Author: mil3s

// General Notes:
// Most of these functions return an array with 3 elements
// These are the x,y,z coordinates in 3d-space
// x is left to right
// y is bottom to top
// z is front to back

var coverSpacing = 0.05;

/************************* COVER DISPLAY *****************/
// These functions define the Display of the single Covers
// The given parameter coverId is a floating point number.
// It is 0 for the center cover, 1 for the one right
// beneath it, -1 for the one on the left side and so on.
// During movement the values float between the integer
// values.
function coverPosition(coverId){
    var x, y, z;
    y = 0;
    if (Math.abs(coverId) <= 1){ // The centered cover
        z = 4 + 0.5 * (1 - Math.abs(coverId));
        x = coverId * 0.875;
    } else { // The covers on the side
        z = 4 - (Math.abs(coverId)-1) * 0.01;
        x = 0.875 + coverSpacing * (Math.abs(coverId)-1);
        if (coverId < 0)
            x *= -1;
    }
    return new Array(x, y, z);
}

// return array is (angle, x, y, z) - this rotates
// the cover *angle* degrees around the vector (x,y,z)
// With (0,0,0,0) the cover is parallel to the x-y-Plane
function coverRotation(coverId){
    var angle;
    if (Math.abs(coverId) < 1){ // The centered cover
        angle = coverId * -60;
    } else { // The covers on the side
        if (coverId > 0)
            angle = -60;
        else
            angle = 60;
    }
    return new Array(angle, 0, 1, 0);
}

// Defines the the size boundaries for the cover.
// Aspect ratio is preserved.
// Return Array is (widht, height)
function coverSizeLimits(coverId){
    return new Array(1, 1);
}


// Sets which point of the cover coverPosition() defines
// (-1,-1) means bottom left, (0,0) means center,
// (1,1) means top right, (0, -1) means bottom center etc.
// The cover is also rotated around this point.
function coverAlign(coverId){
    return new Array(0, -1);
}


// Defines the range of covers to draw.
// Return array is (leftmostCover, rightmostCover)
// This interval shouldn't be larger than 80
// The center cover is 0.
function drawCovers(){
    return new Array(-30, 30);
}


// In which direction should the fov be expanded/shrinked
// when the panel is resized?
// If this returns (0,1), the height is fixed.
// If this returns (1,0), the width is fixed.
// You can also return stuff like (0.5,0.5) or (7, 3)
// The values determine how important it is for this
// dimension to stay fixed.
function aspectBehaviour(){
    return new Array(0, 1);
}

/************************** CAMMERA SETUP ****************/
// Position of the viewport
function eyePos(){
    return new Array(0, 1.15, 6.1);
}
// Defines the point for the eye to look at
function lookAt(){
    return new Array(0, -1.15, 0);
}
// Used to rotate the view.
// The returned Vector points upwards in the viewport.
// This vector must not be parallel to the line of sight from the
// eyePos point to the lookAt point.
function upVector(){
    return new Array(0, 1, 0);
}

/************************** MIRROR SETUP *****************/
function showMirrorPlane(){
    return true; // return false to hide the mirror
}
// Any Point on the Mirror Plane
function mirrorPoint (){
    return new Array(0, 0, 0);
}
// Normal of the Mirror Plane
function mirrorNormal (){
    return new Array(0, 1, 0);
}
Falstaff
QUOTE(queenaudio @ Oct 16 2008, 08:54) *

Hi there,

I absolutely love this plugin, it makes my foobar use so much more enjoyable.

I have a quick question, I am using the default config and I was wondering what I would have to change in the code so that it looks like you are looking at the album cover straight on (i.e. it shows as a square) as the default it looks like you are looking slightly down onto the cover and it is not quite square... Does anyone know?? I have tried tinkering with the script but I have no idea what I am doing!

Thanks for any help

G.

Original script:
CODE
// Author: mil3s

// General Notes:
// Most of these functions return an array with 3 elements
// These are the x,y,z coordinates in 3d-space
// x is left to right
// y is bottom to top
// z is front to back

var coverSpacing = 0.05;

/************************* COVER DISPLAY *****************/
// These functions define the Display of the single Covers
// The given parameter coverId is a floating point number.
// It is 0 for the center cover, 1 for the one right
// beneath it, -1 for the one on the left side and so on.
// During movement the values float between the integer
// values.
function coverPosition(coverId){
    var x, y, z;
    y = 0;
    if (Math.abs(coverId) <= 1){ // The centered cover
        z = 4 + 0.5 * (1 - Math.abs(coverId));
        x = coverId * 0.875;
    } else { // The covers on the side
        z = 4 - (Math.abs(coverId)-1) * 0.01;
        x = 0.875 + coverSpacing * (Math.abs(coverId)-1);
        if (coverId < 0)
            x *= -1;
    }
    return new Array(x, y, z);
}

// return array is (angle, x, y, z) - this rotates
// the cover *angle* degrees around the vector (x,y,z)
// With (0,0,0,0) the cover is parallel to the x-y-Plane
function coverRotation(coverId){
    var angle;
    if (Math.abs(coverId) < 1){ // The centered cover
        angle = coverId * -60;
    } else { // The covers on the side
        if (coverId > 0)
            angle = -60;
        else
            angle = 60;
    }
    return new Array(angle, 0, 1, 0);
}

// Defines the the size boundaries for the cover.
// Aspect ratio is preserved.
// Return Array is (widht, height)
function coverSizeLimits(coverId){
    return new Array(1, 1);
}


// Sets which point of the cover coverPosition() defines
// (-1,-1) means bottom left, (0,0) means center,
// (1,1) means top right, (0, -1) means bottom center etc.
// The cover is also rotated around this point.
function coverAlign(coverId){
    return new Array(0, -1);
}


// Defines the range of covers to draw.
// Return array is (leftmostCover, rightmostCover)
// This interval shouldn't be larger than 80
// The center cover is 0.
function drawCovers(){
    return new Array(-30, 30);
}


// In which direction should the fov be expanded/shrinked
// when the panel is resized?
// If this returns (0,1), the height is fixed.
// If this returns (1,0), the width is fixed.
// You can also return stuff like (0.5,0.5) or (7, 3)
// The values determine how important it is for this
// dimension to stay fixed.
function aspectBehaviour(){
    return new Array(0, 1);
}

/************************** CAMMERA SETUP ****************/
// Position of the viewport
function eyePos(){
    return new Array(0, 1.15, 6.1);
}
// Defines the point for the eye to look at
function lookAt(){
    return new Array(0, -1.15, 0);
}
// Used to rotate the view.
// The returned Vector points upwards in the viewport.
// This vector must not be parallel to the line of sight from the
// eyePos point to the lookAt point.
function upVector(){
    return new Array(0, 1, 0);
}

/************************** MIRROR SETUP *****************/
function showMirrorPlane(){
    return true; // return false to hide the mirror
}
// Any Point on the Mirror Plane
function mirrorPoint (){
    return new Array(0, 0, 0);
}
// Normal of the Mirror Plane
function mirrorNormal (){
    return new Array(0, 1, 0);
}



you have to modify coordinates of the camera :

/************************** CAMMERA SETUP ****************/
// Position of the viewport
function eyePos(){
return new Array(0, 1.15, 6.1);
}
// Defines the point for the eye to look at
function lookAt(){
return new Array(0, -1.15, 0);
}

play with these values (x,y,z coords) and you'll quick understand how it works to make the view you are looking for.
queenaudio
Fantastic mate, got it working - thanks!

G.
tmt
QUOTE(antirockstar @ Oct 1 2008, 15:40) *

Problem:

The text under the cover art in Chronflow is very ... hmm ... how should I explain... just take a look at the screenshot.

IPB ImageIPB Image

I have exactly same problem. It appeared suddenly yesterday, before it was perfect. Any solutions?
«Dynafreq»
Will there ever be any Chronflow support for those who have Radeon cards?
I know you talked about not being able to test every graphics card and all, but there are quite a few of us that are using Radeon cards and getting the same errors.

Very sorry if I'm beating a dead horse.
decx
QUOTE(«Dynafreq» @ Oct 30 2008, 04:31) *

Will there ever be any Chronflow support for those who have Radeon cards?
I know you talked about not being able to test every graphics card and all, but there are quite a few of us that are using Radeon cards and getting the same errors.

Very sorry if I'm beating a dead horse.


i have a radeon x1600 and it works fine
Andu
Use Catalyst 8.7 or newer and you should be good.
«Dynafreq»
I'm trying to install catalyst, but I'm mega-failing at life right now.
I have a Dell. That seems to be a problem.
_oao
I started today using this component with the default UI + Dockable Panels!

Thanks Chronial, great work!

I just have a small request, right now it seems that is only possible to focus on the playing album cover with this option:
Displayed Cover follows playing track...

Is it possible to add a context-menu option or a shortcut to focus on the now playing cover?

thanks
Chronial
The answer is: F6
Andu
QUOTE(«Dynafreq» @ Oct 31 2008, 01:48) *

I'm trying to install catalyst, but I'm mega-failing at life right now.
I have a Dell. That seems to be a problem.


Does Catalyst tell you that you can't install it or are you having trouble after installing? If your problem is the former then you could try third party driver modifications. But you'd be trying those at your own risk.
_oao
QUOTE(Chronial @ Oct 31 2008, 10:43) *

The answer is: F6

Thanks for the reply...

But i'm having problems with this component on the default UI + dockable panels: it makes foobar2000 really unstable at the startup, it freezes most of times, and i can only successfully start the player after some tries...

I'm not getting this problem with columns UI, so i guess this is a dockable panels bug. Which means that i'm screwed... sad.gif

has anyone been successful installing foo_chronflow on the default UI + dockable panels?
i'm currently using foobar2000 v0.9.6 beta 2
«Dynafreq»
catalyst says it's not compatible with my system even though all the info i can find says that it works with Windows XP SP2 and Mobility Radeon X300
_oao
i just read this previous posts:
QUOTE(Chronial)
QUOTE(Mr. Pacman)
Chronial, do you have any plans to make coverflow as an element for default ui...? It could be a dream...

That is not possible.

What about a optional standalone window (found in the view menu), just like the one in the foo_bubble_coverflow component?
Is this feasible? unsure.gif

@«Dynafreq»:
Is your Notebook Manufacturer suported?

QUOTE
ATI Catalyst™ Mobility 8.10 Display Driver for Windows XP Professional/Home Edition

* Release Notes.

Notebook Manufacturers and System Integrators Supported:

* Alienware
* Arima
* Clevo
* ECS

* Eurocom
* Falcon Northwest
* FIC
* Fujitsu Siemens

* HyperSonic PC
* Mitac
* MSI
* NEC-CI

* Pro-Star
* RockDirect
* Sager
* Uniwill

* Velocity Micro
* VoodooPC
«Dynafreq»
I have a Dell........This sucks.

Is there anything at all that i can do?
_oao
QUOTE(«Dynafreq» @ Nov 1 2008, 06:17) *
Is there anything at all that i can do?

Well you can search the Dell website for new graphic drivers for your notebook model...
«Dynafreq»
Yeah...Can the problem possibly be fixed in Chronflow? Or is there anything I can do like developing this plugin?
Dan Popescu
for ati driver on notebooks try "http://www.driverheaven.net/modtool.php"
«Dynafreq»
Ok i have catalyst 8.10 installed. I dont get any more errors when i open. Chornflow works really choppy. anything i can change to help this?
Chronial
Unless you are an expert in c++ and opengl and have quite some time at hand - no.

QUOTE
What about a optional standalone window (found in the view menu), just like the one in the foo_bubble_coverflow component?
Is this feasible?

I don't think this will be implemented anytime soon.

QUOTE
has anyone been successful installing foo_chronflow on the default UI + dockable panels?

Yes, me - With foobar 0.9.4.5. Any later versions are after all not officially supported by this plugin. And that leads me to a

General Statement regarding the future development of foo_chronflow:
Development is frozen until I get my new system, a Dell Notebook. As I will install WinXP on that machine, I will be able to support the newest foobar versions again.
But: That notebook has an integrated intel graphics chip, so if I can't get foo_chronflow to run on that setup, developement my cease forever.
«Dynafreq»
I have a dell notebook and an integrated graphics card. If you install the "desktop" not "laptop" version of catalyst for your card and install the mod from http://www.driverheaven.net/modtool.php then it will work. It will probably be choppy like mine though.
Keikonium
Will the latest source code be released if development does happen to cease forever? I'm no developer, but someone might beable to take on your project.
Andu
QUOTE(«Dynafreq» @ Nov 3 2008, 00:35) *

I have a dell notebook and an integrated graphics card. If you install the "desktop" not "laptop" version of catalyst for your card and install the mod from http://www.driverheaven.net/modtool.php then it will work. It will probably be choppy like mine though.


Catalyst only works with AMD/ATI gfx cards though.

Edit: Switching from OpenGL to Direct3D might probably be a good idea. On a Windows only player like foobar a Windows only API works just as well as a cross platform one. And every gfx cards developer provides drivers that stay compatible with Direct3D.
grkn
http://www.hydrogenaudio.org/forums/index....showtopic=66969 < here's a thread I've made to find a way to make clicking albums in the chronflow display actually select them in the playlist smile.gif

Cheers!
JonL
First, I'd like to congratulate Chronial for his work developing this plugin. It's plainly.... FANTASTIC!! I'm using it with a touchscreen monitor, and the usability is just great.

Is there any way to make chronflow display the corresponding albums according to changes in the Filter?

For instance, when I choose the Rock genre, I wanted Chronflow to display the Rock albums' pictures. If I choose Led Zepellin, I wanted to show their covers.

Can this be configured?

grkn
One way to do that is to sort all your albums into folders according to genre, then you can make chronflow sort according to %directoryname%, and all albums in the same genre folder will be listed together.
JonL
And chronflow would react to the choice I made in the CUI Filter?
Halk
I can't seem to get my head around the order that my albums are being displayed in.

There's two fields that I can stick instructions in.

My albums are ordered in directories, the tags are correct as far as I can tell.

For example
e:\lossless\Madness\One Step Beyond\03 Night Bus to Cairo.flac

However my albums appear in no particular order. Madness albums for example are spread throughout the albums, rather than all in order.

I'd like it to run alphabetically by artist, and then by album.

For a very simple example...

Led Zeppelin - Led Zeppelin I
Madness - Absolutely
Madness - Keep Moving
Prodigy, The - Music for the Jilted Generation

I'd have thought Group By should be %directoryname% to make sure that all the tracks in each folder are grouped together under 1 cover art.

And sort by should be %album artist%%artist%|%album name%

But that doesn't work. Does anyone have any suggestions?
Chronial
The standart settings were just fine

Just use %album artist%|%album% for group by and activate "using group by for sorting".
Halk
I've found a couple of ways to get it to work as I want it to.

Neither of them make sense as to why it works, but it does!

Setting Group By to %album artist%|%album%, ticking group by, and clearing the sort by field works best. I can also get it to work by grouping by directory, and unticking use group by, and putting album artist in there.

Just took a bit of playing about was all smile.gif

All in all though Chronflow is nothing short of fantastic.

But I've come across another little problem tongue.gif

I've changed the font colour and background colour to match the rest of the theme I'm using, however when I spin through albums there is a border on one of the album covers which moves from album to album seemingly randomly. It's the same colour as the font.

Edit : Which I've just fixed by changing the highlight frame to zero. It seems I can never fix a problem until after I post asking for help!
Onkel Andy
QUOTE(Halk @ Dec 30 2008, 09:55) *

I've changed the font colour and background colour to match the rest of the theme I'm using, however when I spin through albums there is a border on one of the album covers which moves from album to album seemingly randomly. It's the same colour as the font.

Edit : Which I've just fixed by changing the highlight frame to zero. It seems I can never fix a problem until after I post asking for help!


This has nothing to do with "random" wink.gif It's just the highlighted cover that's going to be displayed in the center.
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-2009 Invision Power Services, Inc.