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 799811 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_wave_seekbar

Reply #1100
gdi on win8. Why.
Use Direct2D or something.

foo_wave_seekbar

Reply #1101
D2D on Win7. I toyed with D3D and custom effects in the beginning but settled for D2D because I like the look.

foo_wave_seekbar

Reply #1102
If you feel the current version isn't a proper long term solution for legacy systems, then perhaps it would be best to release a final version with a few fixes that's still compatible with XP.

That's a bit of the problem right there - in order to find and fix the current set of crashes, I'd probably have to tear down and rejigger a fair bit of the core that happens to be stable for most of the user base. The architecture of this component wasn't designed in any way, it's mostly an organic growth of excellent and way less excellent ideas. It's a bit ... resistant to change.

The only reason I haven't made breaking changes is because I hate when people make breaking changes.
Stay sane, exile.

foo_wave_seekbar

Reply #1103
gdi on win8. Why.
Use Direct2D or something.


GDI:




D2D:






That's why. And personally i really don't like d3d due to it's smoothness. I need sharp peaks. Is it possible with custom shader?


foo_wave_seekbar

Reply #1104
That's why. And personally i really don't like d3d due to it's smoothness. I need sharp peaks. Is it possible with custom shader?


You've got all the data available in the shader, you just need to sample the input texture enough and construct a nice view of it.
There's a D2D-like line drawing effect out there, which does a piecewise linear curve, much like D2D.
It might be https://gist.github.com/1329609, I don't have a machine I can look at it with right now.
Stay sane, exile.

foo_wave_seekbar

Reply #1105
I use D2D on my Vista computer because I like sharp peaks, just like the post above.

On my XP, selecting the D3D option froze the computer completely. The GDI waveforms looked ugly, while the D2D waveforms could not render. So I removed the component from that computer. Probably the hardware couldn't handle it.

I'm alright with removing support for XP though.


foo_wave_seekbar

Reply #1107
You've got all the data available in the shader, you just need to sample the input texture enough and construct a nice view of it.
There's a D2D-like line drawing effect out there, which does a piecewise linear curve, much like D2D.
It might be https://gist.github.com/1329609, I don't have a machine I can look at it with right now.

Well you got me tinkering around...


The linked effect does provide exact d2d effect ( or at least it seems so to me )

And i started modifying it until foobar crashed due to d3d ( not sure, don't care - yet ). Anyway, then i saw that i only need to triple the 'factor' var in evaluate() in the default shader to get very sharp peaks. So i'm all set on that, now just need to modify played() so that only the waveform is shaded, not the background. Will probably play around tomorrow, when i'm sober  anyway, thanks for providing the interest


foo_wave_seekbar

Reply #1108
The architecture of this component wasn't designed in any way, it's mostly an organic growth of excellent and way less excellent ideas.


Dude.. I'm this close of making a t-shirt with that phrase!! you struck gold!

foo_wave_seekbar

Reply #1109
The linked effect does provide exact d2d effect ( or at least it seems so to me )

And i started modifying it until foobar crashed due to d3d ( not sure, don't care - yet ). Anyway, then i saw that i only need to triple the 'factor' var in evaluate() in the default shader to get very sharp peaks. So i'm all set on that, now just need to modify played() so that only the waveform is shaded, not the background. Will probably play around tomorrow, when i'm sober  anyway, thanks for providing the interest


Yup, the goal I had when writing it was to as close as possible model the Direct2D line list method, by computing the distance to sub-pixel line segments. It's not a perfect match, but mostly accurate.

The primary benefit of modelling it as many small line segments is that it deals much better with near-vertical lines.

As for the D3D9 crashing, that whole effect loading bits and error recovery is quite a mess and something I'd rather either remove or move out into a subprocess.

As it seems now, I'll stick with the VS10 toolchain for a while longer until legacy XP support is rolled out from MS HQ for VS11. Hopefully I've got a solution with styles that reduce the reliance on D3D9 for legacy users. I've also been toying with making the configuration GUI in Windows Forms from .NET, that would get rid of much of the shader editor instability.
Stay sane, exile.

foo_wave_seekbar

Reply #1110
Out of curiosity but is it possible for a preset system to be added to foo_wave_seekbar? There could be implementations of the 3 stock wavebars interchangeable between GDI, D2D and D3D as default, and user contributed presets (after being tested, of course) could then be added later to newer versions, or just be made available separately, being then usable through some form of preset import feature.

 

foo_wave_seekbar

Reply #1111
I've pondered this over time, but it would be quite tricky considering the significant difference in the frontends and what they allow.
Stay sane, exile.

foo_wave_seekbar

Reply #1112
That's a shame, as it's one feature I would certainly enjoy, and it would truly make customization far easier.

So, it might be too much work to make a newer version with most XP bugs fixed and setting it as the final XP version, focusing from there on to Vista, 7 and 8?

foo_wave_seekbar

Reply #1113
That assumes that I know what bugs there are, and know how to fix them. I've yet to dig properly into the crash reports I have for 0.2.27, where some at a glance seems to be related to the GDI fallback from D3D9, probably for a device reset after hibernation.

People have the strangest systems with odd graphics cards and drivers, not to mention tons of malware and shovelware... systems that still run XP tend to run the same install for ages.

Solving the crashes would require me to re-familiarize myself with how this abomination is supposed to work, and how it actually works. Those two concepts differ greatly in reality.

I would reckon that there's some major rejiggering needed to get that part into a stable state... I wouldn't want to release something that's worse than the current, stability-wise, particularly as a release tends to require lots of effort spent on seeing if there's fallout and handling renewed interest.
Stay sane, exile.

foo_wave_seekbar

Reply #1114
If XP systems seem to have that many issues with D3D9, what if D3D9 was removed from a XP version and only be available on Vista/7/8?


foo_wave_seekbar

Reply #1116
If XP systems seem to have that many issues with D3D9, what if D3D9 was removed from a XP version and only be available on Vista/7/8?

The reason for that is the same reason why I still target XP. There's some innocent people for whom it still works adequately, and by removing it I would just create incitements to stay on an inferior version of the component.
There's nothing worse than an entrenched user base on a perceived "better" version when you have to deploy a criticial fix.

D3D9 will still have the completely stupid device reset mechanics, no matter what OS you put it on.
It's just more painful on XP as it resets if you stare at it, while Vista and up just reset if you do more extreme things like remove the GPU, hibernate or similiar things.

I really don't want to be in this situation, but people like Wish refuse to leave XP and I will eventually have to crush the dreams of some. Bloody luddites.
Stay sane, exile.

foo_wave_seekbar

Reply #1117
The whole situation is honestly to be expected. Some people will stick to what they consider to be good or better than newer versions, which on some cases can be true. However, an OS like Windows 7 simply is better than Windows XP in most regards. But don't worry, considering how things are going, Windows 7 will become the new Windows XP.

Windows XP no longer gets bugfixes of any kind and its security updates still don't make that OS as secure as any of the newer Microsoft OSes, so regardless of personal preferences, people who stick with Windows XP are riding a dying horse and endangering everyone they connect to due to that hole filled kernel that's a virus haven.

foo_wave_seekbar

Reply #1118
The whole situation is honestly to be expected. Some people will stick to what they consider to be good or better than newer versions, which on some cases can be true. However, an OS like Windows 7 simply is better than Windows XP in most regards. But don't worry, considering how things are going, Windows 7 will become the new Windows XP.

Windows XP no longer gets bugfixes of any kind and its security updates still don't make that OS as secure as any of the newer Microsoft OSes, so regardless of personal preferences, people who stick with Windows XP are riding a dying horse and endangering everyone they connect to due to that hole filled kernel that's a virus haven.

When did security bother those who stick with obsolete OS-es?

foo_wave_seekbar

Reply #1119
Version 0.2.29 was released the other day, with some fixes for Direct2D rendering not updating after locking/suspending a Windows 8 machine.

The fix for it should be benign, but if you experience any form of deadlocks, honk.
Stay sane, exile.

foo_wave_seekbar

Reply #1120
The current approach is having the three distinct frontends, where for the Direct3D one you happen to be able to provide effect source to customize that particular instance.


I gave the documentation in the wiki a much-needed update to explain where the shader effect can be customized, because it was still pointing people to an external seekbar.fx file, and didn't make it clear it was only applicable to Direct3D.

I wanted to test Direct3D mode to make sure it still works for me and is customizable (I normally just use Direct2D, ever since I got a Win7 machine). So I installed the DirectX end-user runtime and at first everything looked OK..the first files I tried looked as expected. But then some files wouldn't have anything rendered for them, just the flat line in the middle, even with the default shader effect. In fact it seems to happen more often than not, but I don't see any rhyme or reason as to which files render and which don't.

There's nothing unusual in the console...the wave is always analyzed and it works fine in Direct2D and GDI modes.

What could be going wrong? Let me know if you need more info.

fb2k 1.1.14a / Win7 64-bit / Waveform seekbar 0.2.29

foo_wave_seekbar

Reply #1121
I would make a wild stab at the presence or absence of replaygain information, if you've got a fancier effect.

There's some special values that end up with large sentinel values to signal the absence of one or the other form of replaygain info.

I can't quite recall which right now, it's probably documented in the default effect and/or source.
Stay sane, exile.

foo_wave_seekbar

Reply #1122
gdi on win8. Why.
Use Direct2D or something.


GDI:



D2D:



That's why. And personally i really don't like d3d due to it's smoothness. I need sharp peaks. Is it possible with custom shader?

I get the same thing on Windows 8 with Direct2D. I use Direct3D but it certainly is less "detailed" than GDI in terms of peaks shown.

foo_wave_seekbar

Reply #1123
I get the same thing on Windows 8 with Direct2D. I use Direct3D but it certainly is less "detailed" than GDI in terms of peaks shown.

Open 'Frontend Settings', load default effect. Go to line 107, and enter *3 or *4 at the end of min() function in that line. Sharp(er) peaks and you can adjust it by how much you multiply it