IPB

Welcome Guest ( Log In | Register )

71 Pages V  « < 50 51 52 53 54 > »   
Reply to this topicStart new topic
foo_wave_seekbar, pretty accelerated seekbar
Zao
post Apr 2 2013, 23:36
Post #1276





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



QUOTE (Dario @ Apr 2 2013, 23:30) *
It'd be awesome if the default front-end settings were documented. I'm still in high school and my knowledge is terribly limited, but damn it, I'd be more than eager to learn to learn the basics regarding shaders and mess around with it.

Most of the effects are based on one of my early abominations, so they're generally hacky, undocumented and inefficient, so I'm not overly surprised that one'd get lost in them. Heck, I get lost, most of the time.

In essence, the effect runs once per pixel. Most of the work is to determine where in the viewport that particular fragment is, and query the information available (waveform texture, parameters, colors).
In most of the effects, there's things like measuring "how many pixels are we above the upper side of the waveform", "how far below the low side are we", "are we occupying a position that needs part of a bar rendered". Once you have the numeric or logic facts, you can start combining them to get something that looks awesome.


--------------------
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
marc2003
post Apr 2 2013, 23:44
Post #1277





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



i like that incremental effect but most people will never see it as it's too fast. you need 1h+ long files at least. tongue.gif
Go to the top of the page
+Quote Post
Zao
post Apr 2 2013, 23:47
Post #1278





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



I had to use a debug build to tell if it was working at all while developing, as I couldn't be bothered digging up multi-hour files. There are formats that are quite costly to decode though, which is one of the purposes.

This post has been edited by Zao: Apr 2 2013, 23:49


--------------------
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
marc2003
post Apr 2 2013, 23:50
Post #1279





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



so you can mimic the effect on files that don't need it? any chance that could be implemented?

edit: just seen your edit. i did not know about that.

This post has been edited by marc2003: Apr 2 2013, 23:54
Go to the top of the page
+Quote Post
Zao
post Apr 3 2013, 00:04
Post #1280





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



You could fake a smooth reveal of the data by looking at the ... odd, I could've sworn I had a "current-time" and "duration" semantic binding.
If I had semantics for those, you could look at the current time and the duration of the track, and do your own fades based on their relation, and other sweet-ass time-dependent effects, like sparkling and whatever 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
tedsmith
post Apr 3 2013, 02:58
Post #1281





Group: Members
Posts: 82
Joined: 29-January 13
Member No.: 106279



QUOTE (Zao @ Apr 2 2013, 15:47) *
I had to use a debug build to tell if it was working at all while developing, as I couldn't be bothered digging up multi-hour files. There are formats that are quite costly to decode though, which is one of the purposes.

I have plenty of 60 or 80 min 24/88.2 and 24/96, etc. flac files. The incremental display is great.
Go to the top of the page
+Quote Post
zooliat
post Apr 3 2013, 14:03
Post #1282





Group: Members
Posts: 38
Joined: 6-May 06
Member No.: 30469



QUOTE (Zao @ Apr 2 2013, 08:39) *
QUOTE (zooliat @ Apr 2 2013, 15:32) *
Zao, version 0.2.30.1 causes some really high CPU usage even after playing stops, i had to go back to 0.2.29 (since 0.2.33 doesn't display waveforms for me)

Most of the versions released in the last few weeks has tons of fun bugs, discovered by friendly people like you all.
You're probably triggering the bug that's fixed by 0.2.31's change "Rewrite scan logic to cope with tracks having strange and unpredictable lengths, once and for all."

The changelog is always available at this Github wiki page.



I updated to 0.2.34 and the high cpu usage is still up to 70% for a few seconds. Reverted back to .29, because it doesn't have this problem and the scanning runs smooth in the background (also being pretty fast)
Go to the top of the page
+Quote Post
Zao
post Apr 3 2013, 23:20
Post #1283





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



A future release, probably 0.2.35, will have three additional float effect parameters to play with, TRACKTIME, TRACKDURATION and REALTIME, corresponding to the number of seconds elapsed, number of seconds in the track, and a second count from some point in time since the startup of the frontend.

An example video of what one then can do with time-varying parameters, a cute wave:y position indicator.
CODE
float4 bar( float pos, float2 tc, float4 fg, float4 bg, float width, bool show )
{
    float y = tc.y - 0.3*sin(3.14*real_time) + 0.5*cos(1.1*real_time);
    float x_dist = abs(pos - tc.x);
    float y_dist = abs(y) * 0.005;
    float4 c = (show && x_dist < width)
        ? lerp(fg, bg, smoothstep(0, width, x_dist))
        + lerp(fg, float4(0, 0, 0, 0), smoothstep(1.0/200, 0, y_dist))
        : bg;
    return c;
}


This post has been edited by Zao: Apr 3 2013, 23:21


--------------------
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
matt the cat
post Apr 3 2013, 23:25
Post #1284





Group: Members
Posts: 30
Joined: 28-December 10
Member No.: 86874



Direct2D mode seems to be broken as of latest version, D3D and GDI works properly
Go to the top of the page
+Quote Post
Zao
post Apr 3 2013, 23:47
Post #1285





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



QUOTE (zooliat @ Apr 3 2013, 15:03) *
I updated to 0.2.34 and the high cpu usage is still up to 70% for a few seconds. Reverted back to .29, because it doesn't have this problem and the scanning runs smooth in the background (also being pretty fast)

Could you please use Process Explorer when this happens and see what threads are consuming CPU, like shown in the following image?
The three threads that mention foo_wave_seekbar.dll are likely the waveform extraction threads, or possibly worker threads for GDI/Direct2D, if you use those frontends.


--------------------
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 Apr 3 2013, 23:52
Post #1286





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



QUOTE (matt the cat @ Apr 4 2013, 00:25) *
Direct2D mode seems to be broken as of latest version, D3D and GDI works properly

Elaborate on "broken". Doesn't display, crashes and burns, disintegrates your pet food? On what OS? With what kind of GPU? What foobar2000 version?

This post has been edited by Zao: Apr 3 2013, 23:58


--------------------
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
zooliat
post Apr 4 2013, 15:03
Post #1287





Group: Members
Posts: 38
Joined: 6-May 06
Member No.: 30469



QUOTE (Zao @ Apr 3 2013, 17:47) *
QUOTE (zooliat @ Apr 3 2013, 15:03) *
I updated to 0.2.34 and the high cpu usage is still up to 70% for a few seconds. Reverted back to .29, because it doesn't have this problem and the scanning runs smooth in the background (also being pretty fast)

Could you please use Process Explorer when this happens and see what threads are consuming CPU, like shown in the following image?
The three threads that mention foo_wave_seekbar.dll are likely the waveform extraction threads, or possibly worker threads for GDI/Direct2D, if you use those frontends.



It happens mostly on long files (dj sets or whole-file albums). Also 0.2.29 does it, so i guess it's the cpu needed to render the file. Although it would be nice to have a different approach on resolution/granularization for large files. Or, if possible to limit the amount of CPU it takes to scan.



This post has been edited by zooliat: Apr 4 2013, 15:08
Go to the top of the page
+Quote Post
Zao
post Apr 4 2013, 15:29
Post #1288





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



The majority of the scan cost is in actually decoding the file. My code accounts for maybe 10-20% of the time taken to analyse it.
If you don't want bursts of work while using the player normally, consider extracting the waveforms ahead-of-time through the context menu.

As for artificially taking more time, I don't really see much point in that. The analysis runs at idle priority already, so it shouldn't affect any competing processes adversedly. If anything, it'd make things worse as dynamic frequency scaling wouldn't kick in, or kick in erratically.

Do you have an actual adverse effect by this usage of a resource that's mean to be used as needed, or is it some kind of mindset of yours? There is work that needs to be done, and it doesn't do (much) excess work.

The only known problem is that the predictive analysis might cause the same track to be scanned multiple times if started while a scan is in progress, but that's about it.


--------------------
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
marc2003
post Apr 4 2013, 15:35
Post #1289





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



i have loads of 2-3 hour DJ sets and it's not adversely affected anything i'm doing while it's working. i did time my longest file (3h20m mp3) just for giggles and it took 36 seconds .... and i have a celeron as well. tongue.gif
Go to the top of the page
+Quote Post
Zao
post Apr 4 2013, 16:12
Post #1290





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



I have done some pondering on whether it's beneficial to seek and only decode equally spaced parts of the tracks, but it's very hard to beat the speed you get from pure decoding if you try to seek around.

If my memory is right, the cutoff point was somewhere around 30-50% content analysed if you did the seek-and-decode-chunks dance. This means that you gain nothing at all and lose over half of the information in the tracj, resulting in a significantly inaccurate waveform, and it only gets worse once you try to look at even less than that.

It's inevitable that you need to decode the whole track, so there's a base time cost I cannot get around.


--------------------
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
zooliat
post Apr 6 2013, 19:54
Post #1291





Group: Members
Posts: 38
Joined: 6-May 06
Member No.: 30469



a little bug in 0.2.34: when shuffling, it displays the wave of the last played song for 1-2 seconds until it decodes the current one. Looks kinda weird and can be misleading on long files Also I got used to the blank screen from .29.

This post has been edited by zooliat: Apr 6 2013, 19:55
Go to the top of the page
+Quote Post
Zao
post Apr 6 2013, 20:15
Post #1292





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



Everyone has different feelings about blanking/flat/previous waveform when encountering a track that doesn't have a waveform. I don't really see much point in working anything out there, as there's a very simple solution.
Just scan your tracks ahead of time.


--------------------
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
zooliat
post Apr 6 2013, 21:13
Post #1293





Group: Members
Posts: 38
Joined: 6-May 06
Member No.: 30469



QUOTE (Zao @ Apr 6 2013, 14:15) *
Everyone has different feelings about blanking/flat/previous waveform when encountering a track that doesn't have a waveform. I don't really see much point in working anything out there, as there's a very simple solution.
Just scan your tracks ahead of time.


ok smile.gif
Go to the top of the page
+Quote Post
EpicForever
post Apr 6 2013, 21:18
Post #1294





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



Is there any place where I can still download valid v .29?

EDIT:
THX marc that was so easy, I feel like a dumb smile.gif

This post has been edited by EpicForever: Apr 6 2013, 22:13
Go to the top of the page
+Quote Post
marc2003
post Apr 6 2013, 21:23
Post #1295





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



QUOTE (Zao @ Mar 28 2013, 09:11) *

Go to the top of the page
+Quote Post
r0lZ
post Apr 9 2013, 11:30
Post #1296





Group: Members
Posts: 109
Joined: 18-July 08
Member No.: 55947



Just to let you know, I have had the Direct3D Frontend Settings not opening any window problem reported by NullString here. There are however 3 important differences. I had not the DirectX runtime installed, and I'm using CUI. Also, after having selected Direct3D and started to play a track, I've noticed that WS reverted automatically to the GDI frontend. Obviously, Direct3D was not working correctly on my machine.

After some searches, I've found that it is necessary to install the DX runtime, and I've installed it. That solved the problem. So, I guess that the DX runtime is not correctly installed on NullStream's machine. And I suggest, if it's possible, to write an error message in the log when WS detects that the DX runtime is not installed or, more important, not working correctly. (Maybe it's already the case, I haven't verified.)

I have also a question. Currently, the frontend script is loaded via the window. Does that means that the old effects directory in appdata is not used any more and that it can safely be deleted? Thanks in advance.
Go to the top of the page
+Quote Post
Propheticus
post Apr 9 2013, 11:34
Post #1297





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



Yes the effects folder can safely be removed. It isn't used anymore.
Go to the top of the page
+Quote Post
r0lZ
post Apr 9 2013, 11:41
Post #1298





Group: Members
Posts: 109
Joined: 18-July 08
Member No.: 55947



Thanks for the confirmation. smile.gif
Go to the top of the page
+Quote Post
Zao
post Apr 9 2013, 12:50
Post #1299





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



throw std::runtime_error("DirectX redistributable not found. Run the DirectX August 2009 web setup or later.");

Yes, there should be an error printed to the console, but it's inaccurate. The redist you need is February 2010 (or June 2010).

See the very first post in the thread for the requirements:
QUOTE
The Direct3D 9.0c mode requires the DirectX end-user runtime dated earliest February 2010, which can be installed through use of the DirectX end-user Runtime Web Installer (make sure to not accidentally install the Bing Bar they try to force on you).
Note that the DirectX redistributable is required on all OSes no matter whether you think you "have DirectX installed already, lol" or not.


--------------------
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 Apr 9 2013, 12:53
Post #1300





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



While it is possible to privately deploy the DLLs needed, I'm not going to do that. It'd bloat each and every release archive by 1.7 MiB and the installation by 3.91 MiB.

It's bad enough having to bundle the editor component already.


--------------------
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

71 Pages V  « < 50 51 52 53 54 > » 
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: 21st September 2014 - 03:40