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: Discussion of "Default UI Gallery" (Read 376050 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Discussion of "Default UI Gallery"

Reply #625
Here is my current revision of the layout I been using (See February 10 2015 post above). The fabulous JSPlaylist (By Falstaff) is still at the heart of this layout is not a lot different from the original setup. What is changed is the extensive use of Popup Panels to give a clean and uncluttered look.

Nearly all the components are WSH (by Falstaff and Marc2003).

Also used foo-ui_hacks for additional tweaking of the GUI.
Foobar is running in Portable mode (DUI) and has had extensive tweaking over a couple of years.






Discussion of "Default UI Gallery"

Reply #626
you can optimise your item details for narrow panels. right click>configure>find the on_paint function. add this line as the first line inside it...

Code: [Select]
li.text_x = 150;

tinker with the value as you please.

Discussion of "Default UI Gallery"

Reply #627
you can optimise your item details for narrow panels. right click>configure>find the on_paint function. add this line as the first line inside it...

Code: [Select]
li.text_x = 150;

tinker with the value as you please.


Thanks for reading my mind, I was wondering how to configure that! 

Discussion of "Default UI Gallery"

Reply #628
Back to DUI...

SimSearch area is under SimPlaylist so when its needed, i just slide down playlist. Neat.


Very nice ui! Is it possible to share? I was searching on forums for 2+ hours only for the Yamaha VU..
Thank you
Asus Xonar DG | foobar2000 | Klipsch RB-41 II | WASAPI push /\/

Discussion of "Default UI Gallery"

Reply #629
Sure, i'm glad you like it.

I'll zip it pretty much "as is" and post it tomorrow.

I really can't remember from where i got that VU. There is a black version of it too.

Discussion of "Default UI Gallery"

Reply #630
I found it here, black and white: http://foobar2000.ru

Discussion of "Default UI Gallery"

Reply #631
Thanks Mire.

CH 033, here is a package of UI.

FooDUI

I didn't remove anything, so just set your media folder and delete playlists.

Since i don't know how familiar you are with Foobar, if you get stuck somewhere fill free to ask. Only things to mention right now is button next to Stop button, it clears playlist, and auCDtect.

Its an option under Converter named auCDtection and in oredr to use it, you will have to sett Destination folder of your own. Mine isn't win generic.

Oh, i forgot to mention, playlist is a bit different than on screen shot. Now Artist - Title column is formated with:

$if($stricmp(%artist%,%album artist%), , %artist%  - )%title%

Discussion of "Default UI Gallery"

Reply #632
Thanks Mire.

CH 033, here is a package of UI.

FooDUI

I didn't remove anything, so just set your media folder and delete playlists.

Since i don't know how familiar you are with Foobar, if you get stuck somewhere fill free to ask. Only things to mention right now is button next to Stop button, it clears playlist, and auCDtect.

Its an option under Converter named auCDtection and in oredr to use it, you will have to sett Destination folder of your own. Mine isn't win generic.

Oh, i forgot to mention, playlist is a bit different than on screen shot. Now Artist - Title column is formated with:

$if($stricmp(%artist%,%album artist%), , %artist%  - )%title%

Thank you so much!

It workz ootb! Including your library  I have to delete some library files, but first I'll walk through the settings. This is why foobar2000 is nice, and the minim of resources it will use!
Asus Xonar DG | foobar2000 | Klipsch RB-41 II | WASAPI push /\/

Discussion of "Default UI Gallery"

Reply #633
You're welcome.

There isn't much settings, just a few minor... Like for example needle rise time of VU meters is set to 0.02s by default, but i found on Wiki that real world rise time of is 300ms. Also, there is Run Services option to google search one popular "music store" by artist or artist - title. Nothing special...

Discussion of "Default UI Gallery"

Reply #634
It's been awhile since I installed foobar fresh and need some reminders. I'm use Album List + Properties (Tabbed) and View = folder structure.  What I want to do is read in all of my compatible music folders, which are contained on a HDD in a single folder called Music.  It should end up looking like the screenshot linked below. I recall there's a way that everything gets read in under Album List, but can't figure it out (and don't see anything about it in the various wikis).  I tried File > Add Folder, it put "All Music" in the Album List and loaded everything else down the main section. The other Add options want individual files.  What am I missing here?  Thanks,

http://i59.tinypic.com/2mcujr8.jpg

Discussion of "Default UI Gallery"

Reply #635
file>preferences>media library>music folders

Discussion of "Default UI Gallery"

Reply #636
Thanks marc. Belatedly getting back to this and it's loading right now.

Discussion of "Default UI Gallery"

Reply #637

How can I make foo_facets display all the information of a tag, like genre, to appear under one instance? Now it is split, as you can see.

Discussion of "Default UI Gallery"

Reply #638
ksmrtr: In File->Preferences->Media Library->Facets

Find your column named "Genre" and change %<genre>% to %genre%
elevatorladylevitateme

Discussion of "Default UI Gallery"

Reply #639
a bit of experimental hacking with WSH panel mod means i can have a fancy console panel with background image...



Nicely done.

Out of curiosity , does the overlay console text auto-scroll to new entries when the panel text gets full and are you piping console output to a text file and reading it from there or are you using some other function to get the console output?

Discussion of "Default UI Gallery"

Reply #640
i added a new callback to the component which i'm not sure i will ever release it given the trial and error experimenting i had to do to make it work.

all it does it send one message at a time to the panel. it's entirely up to the script how to handle everything else. you can view the source of my script here but obviously it's useless to anyone without the component...

https://github.com/19379/wsh_marc2003/commi...da41a5947176f2a

things i've tried to consider-
don't repaint on every update because you can potentially get dozens or even hundreds of triggers at once. i've got a timer so it doesn't update more than twice a second.
check the overall length and chop off the beginning when it gets too long
auto scrolling to the end

Re: Discussion of "Default UI Gallery"

Reply #641
Can anyone suggest me a skin for a 14 inch screen? most skins don't look right as screen size is too small. Also, if anyone could tell me the EASIEST way to install a skin it'd be nice, not too familiar with FB2k

Re: Discussion of "Default UI Gallery"

Reply #642
Can anyone suggest me a skin for a 14 inch screen? most skins don't look right as screen size is too small.
What is your desktop resolution ?

Feel free to use the attached themes and adjust them to your needs ... :)

Preview in 1024x768

Preview in 1280x1024


I forgot to mention that you'll need the WSH panel mod

Cheers,
Maggi

Re: Discussion of "Default UI Gallery"

Reply #643
I pretty much want my foobar layout to look like this and I have no idea where to begin. What I especially like is the album contents being hidden within the album artwork. Musicbee is a little too taxing on the computer it seems. So what just wondering if I could emulate this layout on foobar. Thank you for any willing to help.




Re: Discussion of "Default UI Gallery"

Reply #645
Does anyone know how to achieve the Wavefrom Seekbar as seen here:

https://hydrogenaud.io/index.php/topic,58574.msg912228.html#msg912228

I tried to PM phool several weeks ago, but haven't gotten a response.

search on google or github(maybe).
or here: http://www.foobar2000.org/components (ctrl_f to search waveform in webpage)
A rose will bloom, it then will fade.

Re: Discussion of "Default UI Gallery"

Reply #646
@evil roy

I use something similar on my waveform seekbar, not exactly the same but close enough. Can't remember where I got it from but here's the code. Use this as effect source for your waveform seekbar frontend settings. Configure your colors (tip: highlight and selection colors works best when matched example bright blue and dark blue) select mix down to mono and select front center (mono).

Code: [Select]
texture tex : WAVEFORMDATA;

sampler sTex = sampler_state
{
Texture = (tex);
MipFilter = LINEAR;
MinFilter = LINEAR;
MagFilter = LINEAR;
AddressU = Clamp;
};

struct VS_IN
{
float2 pos : POSITION;
float2 tc : TEXCOORD0;
};

struct PS_IN
{
float4 pos : SV_POSITION;
float2 tc : TEXCOORD0;
};

float4 panelBackgroundColor : BACKGROUNDCOLOR; // 'Background color' - whole panel background
float4 waveHighlightColor   : HIGHLIGHTCOLOR;  // 'Highlight color' - for played part
float4 selectionColor       : SELECTIONCOLOR;  // Not used
float4 waveUnplayedColor    : TEXTCOLOR;       // 'Foreground color' - for unplayed part
float cursorPos             : CURSORPOSITION;
bool cursorVisible          : CURSORVISIBLE;
float seekPos               : SEEKPOSITION;
bool seeking                : SEEKING;
float4 replayGain           : REPLAYGAIN;
float2 viewportSize         : VIEWPORTSIZE;
bool horizontal             : ORIENTATION;
bool flipped                : FLIPPED;
bool shadePlayed            : SHADEPLAYED;

float4 colorDodge(float4 baseColor, float4 blendColor)
{
return saturate(baseColor / (1 - blendColor));
}

float4 linearDodge(float4 baseColor, float4 blendColor)
{
return saturate(baseColor + blendColor);
}

float4 multiply(float4 baseColor, float4 blendColor)
{
return saturate(baseColor * blendColor);
}

float4 getSeekAheadColor()
{
float4 color = colorDodge(waveHighlightColor, 0.4);
color.a = 0.5;

return color;
}

float4 getSeekBackColor()
{
return float4(1.0, 1.0, 1.0, 0.5);
}

float4 getWaveTopColor()
{
return colorDodge(waveHighlightColor, 0.57);
}

float4 getReflectionHightlightColor()
{
float4 color = waveHighlightColor;
color = multiply(color, 0.75);
color = linearDodge(color, 0.6);

return color;
}

float2 getPixelSize()
{
float2 pixelSize = horizontal
? 1 / viewportSize.xy
: 1 / viewportSize.yx;

return pixelSize;
}

/*
  Split waveform into bars.

  Waveform texture contains upper half-waves (positive peaks) in Green channel
  and negative ones in Red. Negative values are ignored to make reflection later.
*/
float4 rmsSampling(float2 tc, float2 pixelSize, inout bool isGap)
{
float rmsData;
float mainAxisLength = (horizontal ? viewportSize.x : viewportSize.y);

if (ceil(mainAxisLength * tc.x) % 3 < 0.1)
{
rmsData = tex1D(sTex, tc.x).g;
}
else if (ceil(mainAxisLength * tc.x) % 3 < 1.1)
{
rmsData = tex1D(sTex, tc.x - pixelSize.x).g;
}
else
{
isGap = true;

// Height of a gap equals to height of the smallest neighbour bar
float leftPeak = tex1D(sTex, tc.x - (2 * pixelSize.x)).g;
float rightPeak = tex1D(sTex, tc.x + pixelSize.x).g;
rmsData = min(leftPeak, rightPeak);
}

return rmsData;
}

float4 getWaveColor(float2 tc, float2 pixelSize, int pixelBar, int cursorBar, float barCoverage, float4 bgColor, bool isGap)
{
bool isBeyondSeek = tc.x > seekPos;
float4 seekAheadColor = getSeekAheadColor();
float4 seekBackColor = getSeekBackColor();
float4 seekColor = isBeyondSeek ? seekBackColor : seekAheadColor;

float4 waveTop = getWaveTopColor();
float4 waveBottom = waveHighlightColor;

float4 color = (cursorBar < pixelBar ? waveUnplayedColor : lerp(waveBottom, waveTop, tc.y));

if (pixelBar == cursorBar)
{
if (seeking)
{
if (isBeyondSeek)
{
color = lerp(color, seekColor, seekColor.a);
color = lerp(color, waveUnplayedColor, barCoverage);
}
else
{
color = lerp(color, lerp(waveUnplayedColor, seekColor, seekColor.a), barCoverage);
}
}
else
{
color = lerp(color, waveUnplayedColor, barCoverage);
}
}
else if (seeking)
{
bool afterCursor = tc.x + pixelSize.x > cursorPos;
float4 seekColor = isBeyondSeek ? seekBackColor : seekAheadColor;

if ((afterCursor + isBeyondSeek) == 1)
{
color = lerp(color, seekColor, seekColor.a);
}
}

if (isGap)
{
color = lerp(color, bgColor, tc.y * 0.35 + 0.5);
}

return color;
}

float4 getReflectionColor(float2 tc, float2 pixelSize, int pixelBar, int cursorBar, float barCoverage, float4 bgColor, bool isGap)
{
float4 color;

float4 reflectionUnplayedColor = multiply(waveUnplayedColor, 0.8980);
float4 reflectionHighlightColor = getReflectionHightlightColor();

if (isGap)
{
color = bgColor;
}
else if (pixelBar == cursorBar)
{
color = lerp(reflectionHighlightColor, reflectionUnplayedColor, barCoverage);
}
else
{
color = cursorPos < tc.x + pixelSize.x ? reflectionUnplayedColor : reflectionHighlightColor;
}

return color;
}

float4 evaluate(float2 tc)
{
float mainAxisLength = (horizontal ? viewportSize.x : viewportSize.y);
float2 pixelSize = getPixelSize();

bool isGap = false;
float rmsData = rmsSampling(tc, pixelSize, isGap);

tc.y += 0.5;

// Reflection
if (tc.y < 0)
{
// Invert upper half-waves to imitate reflection
rmsData = 1 - rmsData;

// Squeeze reflection
tc.y *= 3.5;
}

rmsData -= 0.5;
rmsData *= 2.5;

bool above = abs(tc.y) > abs(rmsData);
float4 bgColor = panelBackgroundColor * ((0.93 - (tc.x * 0.08)) + ((tc.y * 0.1) - 0.07));

if (above || abs(tc.y) < 1.33 * pixelSize.y)
{
return bgColor;
}

int pixelBar = ceil(mainAxisLength * (tc.x + pixelSize.x) / 3.0);
int cursorBar = ceil(mainAxisLength * cursorPos / 3.0);
float barCoverage = (cursorBar * 3.0 - (mainAxisLength * cursorPos)) / 3.0;

float4 color = tc.y > 0
? getWaveColor(tc, pixelSize, pixelBar, cursorBar, barCoverage, bgColor, isGap)
: getReflectionColor(tc, pixelSize, pixelBar, cursorBar, barCoverage, bgColor, isGap);

return color;
}

PS_IN VS(VS_IN input)
{
    float pixelWidth = horizontal
        ? 1 / viewportSize.x
        : 1 / viewportSize.y;

    PS_IN output = (PS_IN)0;
   
    // Move left to fill 1st empty pixel
    output.pos = float4(input.pos - float2(pixelWidth, 0), 0, 1);

    if (horizontal)
    {
    float firstBarAlignment = (flipped ? 2*pixelWidth : -2*pixelWidth);
        output.tc = float4((input.tc.xy + float2(1.0 + firstBarAlignment, 0)) * float2(0.5, 1.0), 0, 1);
    }
    else
    {
    float firstBarAlignment = (flipped ? 3*pixelWidth : -1*pixelWidth);
        output.tc = float4((-input.pos.yx + float2(1.0 + firstBarAlignment, 0)) * float2(0.5, 1.0), 0, 1);
    }

    if (flipped)
    {
        output.tc.x = 1.0 - output.tc.x;
    }

return output;
}

float4 PS(PS_IN input) : SV_Target
{
float4 color = evaluate(input.tc);

return color;
}

technique Render9
{
pass
{
VertexShader = compile vs_2_0 VS();
PixelShader = compile ps_3_0 PS();
}
}

technique10 Render10
{
pass P0
{
SetGeometryShader(0);
SetVertexShader(CompileShader(vs_4_0, VS()));
SetPixelShader(CompileShader(ps_4_0, PS()));
}
}

This is what it looks like:



Re: Discussion of "Default UI Gallery"

Reply #647
Sup. I don't know if this is the right thread for those questions, but here goes:

This is what my foobar looks like at the moment:



I want to keep the layout and change the color (and maybe the shape) of the window, the sliders, the volume control etc. I don't want to use Columns UI, by the way.

I spent some time looking for tutorials, but I'm still not sure if I can experiment without screwing everything up.

Will exporting the current theme via Default User Interface - Theme Management - Export Theme save EVERYTHING the way it is now?

Re: Discussion of "Default UI Gallery"

Reply #648
This is a question for Falstaff OR anybody knowing the answer. I'm curious about this layout : https://hydrogenaud.io/index.php/topic,58574.msg910170.html#msg910170



I'm curious because I see three similar panels/components/scripts, each one with a similar "Filter" at the top. I wonder how that's achieved.
I'm especially curious about the playlist part, which looks nice. I have hundreds of playlists/autoplaylists, so a "Filter" would definitely help me.
I just wonder if this component/script supports playlist folders ? At the moment I'm using Playlist Organizer because of its ability to support playlist folders. If I had to change, the new component/script would have to be able to import the playlist/folder structure of Playlist Organizer : otherwise I'd have to rebuild it entirely, which would be annoying with hundreds of playlists...

Thanks for enlightening me.

Re: Discussion of "Default UI Gallery"

Reply #649
I miss in DefualtUI on Toolbar option to fast select DSP presets, sholud be option to select it from menu same like Playback Order and Playlist Switcher, also would be nice to have fast option to change Output device.