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_wave_seekbar (Read 814234 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Re: foo_wave_seekbar

Reply #1925
The above link might work if you're on windows 10. It should link to directx runtimes but as I'm on windows 8.1, it redirects me to a windows 10 download page instead. :/

Nope, it redirects me to a W10-downloadpage as well. And when I try to install DirectX 3D manually it says it won't install on W10.


Re: foo_wave_seekbar

Reply #1927
The full redist should install on windows 10.
Maybe, but the page just says:
Quote
Supported Operating System

Windows 7, Windows Server 2003 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Vista, Windows XP Service Pack 2, Windows XP Service Pack 3
In theory, there is no difference between theory and practice. In practice there is.

Re: foo_wave_seekbar

Reply #1928
Well windows 8.1 isn't listed either but I know it installs on that. And if it didn't work on windows 10, I'm sure someone would have reported it before now.

Re: foo_wave_seekbar

Reply #1929
weird.. it's only using the background..



This is on columm UI

Re: foo_wave_seekbar

Reply #1930
Since I can't edit my post, the plugin seems to work now, I re-installed DX9 a couple of times and now it works.

Re: foo_wave_seekbar

Reply #1931
Love this plugin. The only thing I'm missing is a floating tooltip *before* you click on the seekbar.

Re: foo_wave_seekbar

Reply #1932
Only thing? You must not have looked that deeply then :P
In any way, I don't remember if I tried on-hover tooltips and ruled them out due to stealing input, or if I never tried. It has a likelyhood of interoperating poorly with scroll-to-seek.

Don't have your hopes up for a release with new features, I cannot compile the component anymore due to not having the extremely ancient toolchains around anymore. Not overly keen on breaking compatibility for the wretched souls that insist on running XP with auto-updates.
Stay sane, exile.

Re: foo_wave_seekbar

Reply #1933
I have just installed this plugin for the first time and I LOVE it! Thank you so much Zao! :) :) :)

I am very happy with it, but there are just 6 things I would like to be able to do which I can't do:

1. First and foremost, I really don't like how the highlighting works: it blends two colors together, which gives unpredictable results. I want to be able to specify a solid highlight color of my choice, so that the two sides of the playhead are totally different colors. I appreciate this might not be possible.

2. I want to resize the bar to make it much taller, but I can't do this. Currently it's fixed at a very thin height. Is it possible to resize it? (I use Columns UI, could this be why I'm having problems?)

3. Also I would like to be able to turn off the "white" in the middle of the waveform. The white doesn't fit in with my color scheme at all.

4. Also I would like to be able to change the width of the playhead line - it's too thin in my opinion.

5. I would like to be able to turn off the playhead line. If I can choose two totally different colors either side of the line, I don't need a line at all.

6. Also, is there any way to have the plugin scan my entire music collection all in one, so that I will never have to wait for them to generate?

Thank you! :)

Re: foo_wave_seekbar

Reply #1934
I would suggest reading backwards into the topic and you'll find multiple scripts that change how the waveform looks. Nothing about the playhead specifically, but perhaps you can find something more to your liking.

Is there any way to have the plugin scan my entire music collection all in one, so that I will never have to wait for them to generate?
Either select all your files in foobar and 'right click/Utilities/Extract seekbar signature' or 'Library/Waveform Seekbar/Rescan All Signatures'.

Re: foo_wave_seekbar

Reply #1935
I would suggest reading backwards into the topic and you'll find multiple scripts that change how the waveform looks.
Thank you! :)

Either select all your files in foobar and 'right click/Utilities/Extract seekbar signature' or 'Library/Waveform Seekbar/Rescan All Signatures'.
Thanks again! :) The latter option works, though when I right click, I don't see any "Utilities", I see only Remove/Crop/Sort/Cut/Copy/Add to playback queue/Open containing folder/Tagging/File Operations/Convert/ReplayGain/BPM Analyser/Properties.

Re: foo_wave_seekbar

Reply #1936
It's possible you turned that part of the right click menu off or that's the default setting. Shift+right click should still bring it up.

You can edit what is shown by default using 'File/Preferences/Display/Context menu', by the way.

Re: foo_wave_seekbar

Reply #1937
It's possible you turned that part of the right click menu off or that's the default setting. Shift+right click should still bring it up.
Thank you so much! :) :) :) That's so helpful. I vaguely remember long ago "tidying up" the context menu, maybe about 10 years ago - so it's my fault that Utilities isn't there! The shift+right click shortcut to see all menu items is really helpful, thank you Daeron.

It seems to be slowly scanning my entire music collection as we speak… shame there's no progress bar but never mind, I'll know when it's done as I'll check tracks near the bottom of the playlist.

I am absolutely thrilled with this plugin! :) This has really made my day! I think I would go as far as to say, without any exaggeration, that this little plugin has made my Foobar experience about twice as good. I think Foobar was only half as good without it. :) I have wanted something like this for years but it didn't occur to me that it was possible as I'm not really a regular here.

Re: foo_wave_seekbar

Reply #1938
Could anyone please tell me how to run a script? I've found the scripts I want to run but can't figure out how.

Re: foo_wave_seekbar

Reply #1939
Click Frontend Settings, delete all the code and paste the shader code you want to use, then apply.
| QAAC ~ 192 kbps |

Re: foo_wave_seekbar

Reply #1940
Click Frontend Settings, delete all the code and paste the shader code you want to use, then apply.
I found the "Front End Settings" button, but it is grayed out for GDI and Direct 2D. When I change it to Direct 3D, the button appears, but nothing happens when I click it.


Re: foo_wave_seekbar

Reply #1942
@Grand Dizzy
When you are up and running:
4. and 5. Look for positionWidth in the shader script. Some examples:

Code: [Select]
//	float positionWidth = 1.0 * dx;		// standard marker width (slight flicker on my screen)
// float positionWidth = 1.5 * dx; // stable marker width (no flicker)
// float positionWidth = 0.5 * dx; // 0.1-0.9 = blinking marker
// float positionWidth = 9.0 * dx; // bad taste, imho
float positionWidth = 0.0 * dx; // turn off marker

Re: foo_wave_seekbar

Reply #1943
It seems to be slowly scanning my entire music collection as we speak… shame there's no progress bar.
View/Console. Each scan leaves a note there as I recall. The wavecache.db file in your foobar directory should also grow in size and theres a temporary file probably named similarly as well while the scan is in progress.

Re: foo_wave_seekbar

Reply #1944
Thank you to everyone for the help. Unfortunately I can't get "Frontend settings" to work, even after installing the DirectX update.

Edit: I got it working! :) Stupid me, I hadn't installed Direct X properly.

Re: foo_wave_seekbar

Reply #1945
I am really so happy about this plugin. I have now managed to make the panel larger - instead of displaying it as a toolbar, I displayed it as a panel, which now allows me to resize it :)

But could anyone please explain why waveforms vary so much? Some are perfectly symmetrical, others are asymmetrical. Some are central, others are offset - sometimes so offset that they are right off the edge and you can barely see them. Some are a solid colour, others have bands of different shades, while others have a 'symmetrical' shading pattern. Some are completely blank and look like they haven't been generated. Some fill the entire height of the bar and look really "fat" while others are really small and you can barely see them.

 

Re: foo_wave_seekbar

Reply #1946
This comes to mind:

Can you post a screenshot?
| QAAC ~ 192 kbps |

Re: foo_wave_seekbar

Reply #1947
This comes to mind:
That is a good point, but this problem definitely has nothing to do with compression. Half my music collection is not even from commercial CDs. Besides, I would expect the plugin to display in a logarithmic manner like the spectrum analyser, and to use ReplayGain to present all the waveforms at a similar scale. In short, I would always expect a reasonable amount of consistency, and for the whole height of the panel to be occupied by at least some portion of the waveform.

Can you post a screenshot?
Yes, here is a random selection of waveforms from various different songs. (About a third of them were completely blank, so I didn't include them.)

http://i.imgsafe.org/5a67969.png

Re: foo_wave_seekbar

Reply #1948
Try with this:
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 backgroundColor : BACKGROUNDCOLOR;
float4 highlightColor : HIGHLIGHTCOLOR;
float4 selectionColor : SELECTIONCOLOR;
float4 textColor : TEXTCOLOR;
float cursorPos : CURSORPOSITION;
bool cursorVisible : CURSORVISIBLE;
float seekPos : SEEKPOSITION;
bool seeking : SEEKING;
float4 replayGain : REPLAYGAIN; // album gain, track gain, album peak, track peak
float2 viewportSize : VIEWPORTSIZE;
bool horizontal : ORIENTATION;
bool flipped : FLIPPED;
bool shade_played : SHADEPLAYED;
float3 track_magnitude : TRACKMAGNITUDE;

PS_IN VS( VS_IN input )
{
PS_IN output = (PS_IN)0;

float2 half_pixel = float2(1,-1) / viewportSize;
output.pos = float4(input.pos - half_pixel, 0, 1);

if (horizontal)
output.tc = float2((input.tc.x + 1.0) / 2.0, input.tc.y);
else
output.tc = float2((-input.tc.y + 1.0) / 2.0, input.tc.x);

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

return output;
}

float4 bar( float pos, float2 tc, float4 fg, float4 bg, float width, bool show )
{
float dist = abs(pos - tc.x);
float4 c = (show && dist < width)
? lerp(fg, bg, smoothstep(0, width, dist))
: bg;
return c;
}

float4 evaluate( float2 tc, float cursorPos )
{
// alpha 1 indicates biased texture
float4 minmaxrms = tex1D(sTex, tc.x);
minmaxrms.rgb -= 0.5 * minmaxrms.a;
minmaxrms.rgb *= 1.0 + minmaxrms.a;

if (replayGain.g != -1000) {
minmaxrms.rgb *= pow(10,(replayGain.g) / 25) * 1.6; //use track gain
} else if (replayGain.r != -1000) {
minmaxrms.rgb *= pow(10,(replayGain.r) / 25) * 1.6; //use album gain
}

float below = tc.y - minmaxrms.r;
float above = tc.y - minmaxrms.g;
float factor = min(abs(below), abs(above));
bool outside = (below < 0 || above > 0);
bool inside_rms = abs(tc.y) <= minmaxrms.b;
bool played = cursorPos < tc.x;
float4 inside_color = played ? textColor : highlightColor;
float4 bgColor = backgroundColor;


float4 wave = outside
? bgColor
: inside_color
;

return saturate(wave);
}

float4 reflect_evaluate( float2 tc, float cursorPos)
{
float baseline = -1.0/3.0;
float low_unscale = 3.0/2.0;
float high_unscale = 3.0/4.0;
bool mirrored = tc.y < baseline;
if (mirrored) {
tc.y = baseline - tc.y;
tc.y = tc.y * low_unscale;
}
else {
tc.y = tc.y - baseline;
tc.y = tc.y * high_unscale;
}
float mag = max(-track_magnitude.r, track_magnitude.g);
if (mag > 0.95) {
tc.y = lerp(0, mag/0.95, tc.y);
}
float boost = mirrored ? 1.3 : 1.0;
float gradient = lerp(0.7, 1.0, tc.y);
return boost * gradient * evaluate(tc, cursorPos);
}

float4 PS( PS_IN input ) : SV_Target
{
float dx, dy;
if (horizontal) {
dx = 1/viewportSize.x;
dy = 1/viewportSize.y;
}
else {
dx = 1/viewportSize.y;
dy = 1/viewportSize.x;
}
float seekWidth = 2.5 * dx;
float positionWidth = 2.3 * dx;

float4 c0 = reflect_evaluate(input.tc, cursorPos);
c0 = bar(cursorPos, input.tc, selectionColor, c0, positionWidth, cursorVisible);
c0 = bar(seekPos, input.tc, selectionColor, c0, seekWidth, seeking );
return c0;
}

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

Quiet tracks will appear bigger, loudness war victims will appear small...
Most of my music is classic rock, so i don't care that much. I think it's a good balance.
| QAAC ~ 192 kbps |

Re: foo_wave_seekbar

Reply #1949
Try with this:
Who hoo!!!! :) :) :) It works perfectly! :) :) :)

I am so happy with this plugin. Foobar has been my favorite program for the last 10 years, and now my favorite program is SO MUCH BETTER! :) Thank you Zao for this amazing plugin, and thanks to everyone else for the help!