IPB

Welcome Guest ( Log In | Register )

70 Pages V  « < 62 63 64 65 66 > »   
Reply to this topicStart new topic
foo_wave_seekbar, pretty accelerated seekbar
Zao
post Oct 26 2013, 18:00
Post #1576





Group: Members (Donating)
Posts: 899
Joined: 25-September 03
From: Umeň, Sweden
Member No.: 9001



I've considered having a preferences page with profiles, and the per-element configuration would just be selecting a profile, pretty much.
It's delayed until Ragnar÷k due to it being annoying to make UI for, not to mention all the pain in migrating old configurations.


--------------------
Zao shang yong zao nong zao rang zao ren zao.
To, early in the morning, use a chisel to build a bathtub makes impatient people hot-tempered.
Go to the top of the page
+Quote Post
Zao
post Oct 26 2013, 18:01
Post #1577





Group: Members (Donating)
Posts: 899
Joined: 25-September 03
From: Umeň, Sweden
Member No.: 9001



As for reimplementing export/import, the only reason I could see doing it as the DUI already has perfectly fine functionality for it, would be if I somehow cared enough about CUI users. I wouldn't hold my thumbs.


--------------------
Zao shang yong zao nong zao rang zao ren zao.
To, early in the morning, use a chisel to build a bathtub makes impatient people hot-tempered.
Go to the top of the page
+Quote Post
Firestarter001
post Oct 28 2013, 14:51
Post #1578





Group: Members
Posts: 11
Joined: 27-December 09
Member No.: 76400



@marc2003 : thanks you very very much sir!!! it worked great!! very important setting!!
Go to the top of the page
+Quote Post
Bugai
post Nov 10 2013, 01:30
Post #1579





Group: Members
Posts: 2
Joined: 10-November 13
Member No.: 112098



Sorry, i try update Waveform Seekbar to latest 0.2.40 (now 0.2.12), but when unpack "foo_wave_seekbar-0.2.40.fb2k-component" NIS alert frontend_direct3d9.dll contain Suspicious.Cloud.7.F
Probably NIS problem, but check it please for just in case.

OS Win7 x32

This post has been edited by Bugai: Nov 10 2013, 01:31
Go to the top of the page
+Quote Post
Zao
post Nov 10 2013, 10:53
Post #1580





Group: Members (Donating)
Posts: 899
Joined: 25-September 03
From: Umeň, Sweden
Member No.: 9001



In general, antivirus vendors have a tendency to flag perfectly fine software based on very vague criteria like some hash, some aspect of the program or just because they "haven't seen it much before."

I did a virustotal online scan, 3/47 vendors resulted in such generic diagnostics and nothing with an actual named virus.

I'm fairly confident that this is a false positive, particularly if it only occurs in this particular build as nothing has changed in my build environment between releases.


--------------------
Zao shang yong zao nong zao rang zao ren zao.
To, early in the morning, use a chisel to build a bathtub makes impatient people hot-tempered.
Go to the top of the page
+Quote Post
Bugai
post Nov 10 2013, 14:00
Post #1581





Group: Members
Posts: 2
Joined: 10-November 13
Member No.: 112098



Ok Zao thank for reply (and very helpful plug)
Go to the top of the page
+Quote Post
alekksander
post Nov 11 2013, 18:42
Post #1582





Group: Members
Posts: 11
Joined: 22-October 13
From: East Europe
Member No.: 111161



any way to disable signature storing? i'd like it to generale new waveform each time i play it. where are those signatures stored by the way?


--------------------
-----------------
♭ ------------
-----------
--------
Go to the top of the page
+Quote Post
Propheticus
post Nov 11 2013, 19:40
Post #1583





Group: Members
Posts: 219
Joined: 10-September 11
Member No.: 93615



QUOTE (alekksander @ Nov 11 2013, 18:42) *
any way to disable signature storing? i'd like it to generale new waveform each time i play it. where are those signatures stored by the way?

C:\Users\<user>\AppData\Roaming\foobar2000\wavecache.db
or
C:\Program Files(x86)\Foobar2000\wavecache.db

depending on where you store your settings/components.

This post has been edited by Propheticus: Nov 11 2013, 19:42
Go to the top of the page
+Quote Post
Zao
post Nov 11 2013, 19:55
Post #1584





Group: Members (Donating)
Posts: 899
Joined: 25-September 03
From: Umeň, Sweden
Member No.: 9001



The database is stored in your foobar2000 profile directory. You can open that location by holding Shift, clicking the File menu and selecting the "Browse configuration folder" item.


As for not having a cache at all, no, there's no such functionality, and if you try to mess with the database file, it's likely to break horribly.


--------------------
Zao shang yong zao nong zao rang zao ren zao.
To, early in the morning, use a chisel to build a bathtub makes impatient people hot-tempered.
Go to the top of the page
+Quote Post
alekksander
post Nov 12 2013, 21:57
Post #1585





Group: Members
Posts: 11
Joined: 22-October 13
From: East Europe
Member No.: 111161



okay, thanks! ...but am i missing something then, or the wavecache.db file will grow endlessly as i play new tracks?


--------------------
-----------------
♭ ------------
-----------
--------
Go to the top of the page
+Quote Post
Zao
post Nov 12 2013, 22:32
Post #1586





Group: Members (Donating)
Posts: 899
Joined: 25-September 03
From: Umeň, Sweden
Member No.: 9001



Indeed it will. It's typically not a problem for people with non-insane amounts of tracks.
Each new track that isn't already cached contributes 3*2048*4 == 24 KiB before compression, without the database overhead.

A quick glance at my old foobar2000 directory reveals 329 megs of cache for a bit over 8.8k tracks.


--------------------
Zao shang yong zao nong zao rang zao ren zao.
To, early in the morning, use a chisel to build a bathtub makes impatient people hot-tempered.
Go to the top of the page
+Quote Post
EpicForever
post Nov 13 2013, 17:25
Post #1587





Group: Members
Posts: 706
Joined: 14-September 11
From: Szczecin, PL
Member No.: 93712



just FYI - for 70k tracks it goes up to 1,5GB. Still not that much when you take current disk sizes into account.
Go to the top of the page
+Quote Post
shadowrazor
post Nov 25 2013, 00:11
Post #1588





Group: Members
Posts: 6
Joined: 5-May 06
Member No.: 30455



Does someone still have version 0.2.12 to upload?

I want to use it for foobar2000 in wine
Go to the top of the page
+Quote Post
shadowrazor
post Nov 25 2013, 15:45
Post #1589





Group: Members
Posts: 6
Joined: 5-May 06
Member No.: 30455



QUOTE (shadowrazor @ Nov 25 2013, 00:11) *
Does someone still have version 0.2.12 to upload?

I want to use it for foobar2000 in wine


For people that want to use foo_wave_seekbar in wine without direct3d compatability (gdi):
0.2.36.1 seems to be the latest version that works for me
Go to the top of the page
+Quote Post
Zao
post Nov 25 2013, 15:49
Post #1590





Group: Members (Donating)
Posts: 899
Joined: 25-September 03
From: Umeň, Sweden
Member No.: 9001



That would be foo_wave_seekbar-0.2.36.1.fb2k-component, as your accidental filesystem-local link has very little meaning on most machines. cool.gif


--------------------
Zao shang yong zao nong zao rang zao ren zao.
To, early in the morning, use a chisel to build a bathtub makes impatient people hot-tempered.
Go to the top of the page
+Quote Post
Renovacio
post Dec 3 2013, 14:08
Post #1591





Group: Members
Posts: 6
Joined: 1-December 13
Member No.: 112789



Dear Zao!

Thank you very much for this amazing fantastic component.

I use windows 8 x64 and installed all C++ packages, but can't change and set Direct3D 9.0c's Frontend settings... When I'm pressing this button I don't get an additional window with additional settings.

Could you advise how I can do it?

With best regards!
Go to the top of the page
+Quote Post
marc2003
post Dec 3 2013, 14:23
Post #1592





Group: Members
Posts: 4440
Joined: 27-January 05
From: England
Member No.: 19379



did you install the directx runtimes as well? the link is in the first post.
Go to the top of the page
+Quote Post
Renovacio
post Dec 3 2013, 14:33
Post #1593





Group: Members
Posts: 6
Joined: 1-December 13
Member No.: 112789



Sorry that destrubed you are right. I thought it was installed in win 8. Thank you for your help!!!

This post has been edited by Renovacio: Dec 3 2013, 14:33
Go to the top of the page
+Quote Post
Zao
post Dec 3 2013, 15:45
Post #1594





Group: Members (Donating)
Posts: 899
Joined: 25-September 03
From: Umeň, Sweden
Member No.: 9001



The instructions in the first post should still apply to all Windows versions.

While Win8 (and Win8.1) has ruined DirectX by including it in the Windows SDK (and thus as an OS component), it only includes the core of 10.0, 10.1, 11.0 (and in Win8.1: 11.1). There is no D3DX of any sort, there is no Direct3D 9.0c, and so on.

Much like VC++ redists, standalone DXSDK redists will never be part of the core OS or available through Windows Update. (Apart from VC++ redist security updates force-pushed, but that requires previous installs).


--------------------
Zao shang yong zao nong zao rang zao ren zao.
To, early in the morning, use a chisel to build a bathtub makes impatient people hot-tempered.
Go to the top of the page
+Quote Post
Introverterz
post Dec 5 2013, 18:54
Post #1595





Group: Members
Posts: 9
Joined: 27-September 12
Member No.: 103474



QUOTE (Zao @ Sep 12 2013, 08:14) *
yurithedragonhalf: Are you talking about the vertical extents of the waveform inside the display?
The generic way to do that is to use the Direct3D9 mode and in the effect use TRACKMAGNITUDE's components to find out how low/high the peaks are, as described in an earlier post. There's also a REPLAYGAIN semantic you can use to determine the RG amounts you may need to compensate with to get a perceptual full-scale display.

Personally I don't bother with the RG compensation and prefer to see the waveform at its natural extents, maybe just scaled down if it clips some.

Anyway, I've got a soundcloud-like asymmetric look that scales the waveform to the maximum peak, offset from the center-line and with a slight gradient behind.


CODE
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;
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.5 * 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();
}
}


Edit: made reflect_evaluate saturate it's output, otherwise the position/seek-bar got lopsided.

Shade played does not work crying.gif
Go to the top of the page
+Quote Post
Daeron
post Dec 5 2013, 22:09
Post #1596





Group: Members
Posts: 362
Joined: 9-October 08
Member No.: 59818



Just define a custom highlight color?

This post has been edited by Daeron: Dec 5 2013, 22:09
Go to the top of the page
+Quote Post
Zao
post Dec 6 2013, 08:48
Post #1597





Group: Members (Donating)
Posts: 899
Joined: 25-September 03
From: Umeň, Sweden
Member No.: 9001



It's working as intended, where the intent is to only affect the waveform, not the background.
It's working as intended, where 'working' is defined as looking like a SoundCloud waveform, including their semantics for "shading".

It makes complete sense if you interpret "shade played" as "differently render played".

Feel free to rewrite the effect code to do what you want.


--------------------
Zao shang yong zao nong zao rang zao ren zao.
To, early in the morning, use a chisel to build a bathtub makes impatient people hot-tempered.
Go to the top of the page
+Quote Post
Introverterz
post Dec 6 2013, 09:38
Post #1598





Group: Members
Posts: 9
Joined: 27-September 12
Member No.: 103474



I thank for replies.
Go to the top of the page
+Quote Post
Zao
post Dec 6 2013, 15:50
Post #1599





Group: Members (Donating)
Posts: 899
Joined: 25-September 03
From: Umeň, Sweden
Member No.: 9001



Introverterz: If you want a background change, you can modify evaluate to:
CODE
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;
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 outside_color = lerp((played ? 0.3 : 0.0), backgroundColor, highlightColor);

float4 wave = outside
? outside_color
: inside_color
;

return saturate(wave);
}


The area outside of the waveform will in the case of a played section be (30% highlight + 70% background), and for unplayed (100% background).
You can do a similar change for inside_color if you want to interpolate instead of select text vs. highlight.

Shader code is simpler than it seems, if you just squint at it right.


--------------------
Zao shang yong zao nong zao rang zao ren zao.
To, early in the morning, use a chisel to build a bathtub makes impatient people hot-tempered.
Go to the top of the page
+Quote Post
Introverterz
post Dec 6 2013, 17:46
Post #1600





Group: Members
Posts: 9
Joined: 27-September 12
Member No.: 103474



Thanks Zao. I meant something else. I apologise for trouble. In the picture everything is explained.

Go to the top of the page
+Quote Post

70 Pages V  « < 62 63 64 65 66 > » 
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 31st July 2014 - 04:50