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

foo_wave_seekbar

Reply #450
added one line to scale the waveform using replaygain


What's the use/result of it?

scaled smaller same sized waveforms, personal preference


Tried your script. Doesn't run here. Pasted it into Notepad and saved as seekbar.fx. But Waveform Seekbar reverts to GDI mode on startup.

foo_wave_seekbar

Reply #451
Tried your script. Doesn't run here. Pasted it into Notepad and saved as seekbar.fx. But Waveform Seekbar reverts to GDI mode on startup.

Change © to ( c )

foo_wave_seekbar

Reply #452
Tried your script. Doesn't run here. Pasted it into Notepad and saved as seekbar.fx. But Waveform Seekbar reverts to GDI mode on startup.

Change © to ( c )


Ok, working now. Thanks.


But:

1. Non-ReplayGain-tagged files are not showing any waveform now. Just a horizontal grey line visible.
2. Why not normalizing the Waveform display by peak value of the file so that it would also work for non-ReplayGain-tagged files? Is this not possible?

foo_wave_seekbar

Reply #453
Dandruff, NullString: From earlier in this thread -
When querying for non-existant replaygain, the track and album gain is -1000, and the peaks are -1. Adjusting the effect to test for negative values will likely do the trick.
Stay sane, exile.

foo_wave_seekbar

Reply #454
Ok, scripting is not my thing. But thanks.


Are ReplayGain tags required to scale the waveform height? Does Waveform Seekbar know the real peak value to be able to normalize the display for all tracks?

foo_wave_seekbar

Reply #455
It could probably be provided, but I'd rather not go break the effect interface again before I get around fixing multiple effects and add effect versioning.
Stay sane, exile.

foo_wave_seekbar

Reply #456
Ok, thanks!

foo_wave_seekbar

Reply #457
Got a new bug:

I installed foobar 1.0.2.1 and seekbar 0.2.5 on to my notebook which has an Intel 945 Express display adapter. I get no issues with GDI, but with DirectX9c it's not so good:


It would appear to be something to do with large peaks as the same original flac file (which has a peak < 1) displays fine, along with other mp3s that have a have peaks < 1.





I attempted to scale the waveform in seebar.fx but this had no effect. I've seen other developers complain about how broken Intel's drivers are so I would hazard a guess it's the cards handling of textures.

foo_wave_seekbar

Reply #458
I'm currently in an awesome state of sleep deprivation, but I can tell you this: this texture scaling code looks like the works of a madman.
Try the 0.2.6 I just uploaded. It might even fix it.
Stay sane, exile.

foo_wave_seekbar

Reply #459
Can confirm that the new version does fix it, thanks a lot.

I wasn't expecting it to happen that fast, I don't know about everyone else but I'm always happy to wait for a fix if it means that you don't burn yourself out. Get some well deserved sleep.

foo_wave_seekbar

Reply #460
I was bending my sleep back into shape for the weekdays, so I had nothing to do anyway. 
I can't see how this code ever really worked right. Waveforms ought to have been mis-scaled by 4x, if it does what I think it did.
Stay sane, exile.

foo_wave_seekbar

Reply #461
Could I get some help with the RMS script? It doesn't seem to be working with 0.2.6. Also I get no waveform when playing a specific vinyl 24bit FLAC rip, everything else loads just fine  Is it the processing time which is incredibly long or am I having a problem here? I'm not seeing anything in the console.

/EDIT during the 13:48 minutes one of the songs is, the waveform never loads

foo_wave_seekbar

Reply #462
i have 3 available modes in te options for rendering of the wave :

Direct2D 1.0
Direct3D 9.c
GDI

but Direct3D 9.c doesn't work at all, empty panel or freeze of the previous rendering (GDI or Direct2D)

i run the latest version 0.2.6 under Seven x64 with a Geforce 8800 GTS video card with the latest video drivers (just installed to be sure my problem was not from the drivers)

any idea ? (i've try to installe again DirectX, but on install, system says i already have the latest version installed, for sure!)

so, what's the problem, plugin bug or vieo card (nvidia Geforce 8) not compatible??

i'm stuck

foo_wave_seekbar

Reply #463
The Direct3D9 mode supports cards down to the weak Intel cards and GF FX cards. Check your console for failure information.
Judging by your claim that the redist says you're up to date, you must be trying to run the web installer. If you've got spare time and a decent internet connection, there's always the full redist.
Did you extract the effects directory into your foobar2000 profile or foobar2000 install directories?
Stay sane, exile.

foo_wave_seekbar

Reply #464
all methods tried for installing DirectX again (in case of...) : web or full redist package, same

effects folder is at the good place i mean, check below:



the CONSOLE display this error when i select Direct3D render mode :

Seekbar: taking Direct3D9 path.
Seekbar: Direct3D: D3DXERR_INVALIDDATA(-2005529767) Invalid data
Seekbar: frontend creation failed: Direct3D9: could not create effects.


any idea ?

foo_wave_seekbar

Reply #465
At first guess, I would guess that it's probably the u-with-grave (ù) in your path, but I'd have to test that to be sure.
Also, can you upload your effect file intact somewhere. You might have accidentally saved it as UTF-8 with a BOM or with characters outside low ASCII. Both those things will make it fail.
Stay sane, exile.

foo_wave_seekbar

Reply #466
At first guess, I would guess that it's probably the u-with-grave (ù) in your path, but I'd have to test that to be sure.
Also, can you upload your effect file intact somewhere. You might have accidentally saved it as UTF-8 with a BOM or with characters outside low ASCII. Both those things will make it fail.


foobar2000 for renamed without ù and now it works (/fubar - tech/)... how do you get the foobar root folder in your code ? something is looking bad in ...

thanx for the help, and add an advert in the doc to explain that are restrictions in the name of the root foobar folder naming for Direct3D rendering ... just until you fix it


EDIT: the behaviour of this component is weird when i change seekbar.fx script, it's no always updated ... keep playing with it

foo_wave_seekbar

Reply #467
requests:

1. could it be possible to never save the wave form in db, maybe an option to purpose no ?

2. multiple instance of this panel (in a CUI config) ? for example, to display left channel in a panel and right panel in another one ...

foo_wave_seekbar

Reply #468
I have uploaded 0.2.7 which solves both possible problems.
It loads the file into memory using the foobar2000 infrastructure so it should behave properly with any paths that foobar2000 supports.
It also filters out (and warns) about any non-ASCII bytes in the effect file.

Multiple instances works out of the box. Just create two of it, and just check/uncheck channel checkboxes in each of them.

As for not storing waveforms and/or storing it in separate files, it's on the TODO but nothing concrete for now.
Stay sane, exile.

foo_wave_seekbar

Reply #469
I have uploaded 0.2.7 which solves both possible problems.
It loads the file into memory using the foobar2000 infrastructure so it should behave properly with any paths that foobar2000 supports.
It also filters out (and warns) about any non-ASCII bytes in the effect file.

Multiple instances works out of the box. Just create two of it, and just check/uncheck channel checkboxes in each of them.

As for not storing waveforms and/or storing it in separate files, it's on the TODO but nothing concrete for now.


i'm going to test the new version right now, thanx

"...storing it in separate files" -> would be cool to obtain the wave as a .png image in the music folder or in a specified folder (to set), so the wave form could be exploited out of the box with other components (WSH for example in order to code a more complex seekbar...)

thanx again Zao!

EDIT: all is fine in this new version foobar root folder name (fùbar is ok now) + multiple instances are ok (tested with both only)

foo_wave_seekbar

Reply #470
Back in the 0.0.x days, there used to be two separate components, foo_wave_cache and foo_wave_seekbar. The former had a public interface that could be used by any component.
Internally, that's still the case, so it sure would be possible to query the cache from other components. It's not separated enough to be usable by anyone else, and I doubt that anyone that was competent enough to do component dev would want it. Especially as if I publish an interface to it, I would be forced to ensure binary compatibility forever, which I'd rather not.

As for exporting PNG files, that's a bit restrictive and cumbersome, as the waveform is stored internally as a 1D texture.
Stay sane, exile.

foo_wave_seekbar

Reply #471
I understand

but ... exporting this 1D texture as a data file, that would be a useful option, for example, this will allow us to read this data file (ascii format because jscript can't read binary files) in a WSH script to draw to desired form, like a wave or like a color (like the moodbar of Amarok ...)

what do you think about it ?

foo_wave_seekbar

Reply #472
To quote Samir from Office Space: »Yes, this is horrible, this idea.«.
A solution not involving the file system would be most optimal. Possible implementation methods would be to use the non-existant service of my component, or opening the sqlite3 database yourself, or writing an component or external tool to extract such information. Or heck, expose it as a metadata field, but then we're getting into cwbowron-grade insanity.
Stay sane, exile.

foo_wave_seekbar

Reply #473
When I try to add this to my config, foobar immediately crashes with this in the event log:

Code: [Select]
Faulting application name: foobar2000.exe, version: 1.0.2.1, time stamp: 0x4bc1080c
Faulting module name: ntdll.dll, version: 6.1.7600.16385, time stamp: 0x4a5bdb3b
Exception code: 0xc0000374
Fault offset: 0x000cdcbb
Faulting process id: 0x88c
Faulting application start time: 0x01cae03e20fa652f
Faulting application path: E:\Media\foobar2000\foobar2000.exe
Faulting module path: C:\Windows\SysWOW64\ntdll.dll
Report Id: 6cb7f953-4c31-11df-984f-f2b8e5f08a48


Here are my components:

Code: [Select]
Core (2010-04-10 23:21:50 UTC)
    foobar2000 core 1.0.2.1
foo_ac3.dll (2010-01-11 17:18:40 UTC)
    AC3 decoder 0.9.4
foo_adpcm.dll (2010-01-11 17:19:30 UTC)
    ADX decoder 1.8
    BRR decoder 0.7
    GCN DSP decoder 1.4
    Interplay ACM decoder 1.0
    kode's ADPCM decoders 1.4
    OKI-ADPCM decoder 0.14
    RAC decoder 1.0
    XA ADPCM decoder 1.5
foo_albumlist.dll (2010-04-10 23:19:56 UTC)
    Album List 4.4
foo_audioscrobbler.dll (2010-02-07 21:16:48 UTC)
    Audioscrobbler 1.4.6
foo_cdda.dll (2010-04-10 23:19:48 UTC)
    CD Audio Decoder 3.0
foo_channel_mixer.dll (2008-03-12 09:37:47 UTC)
    Channel Mixer 0.9.6.5
foo_converter.dll (2010-04-10 23:19:30 UTC)
    Converter 1.4
foo_dsp_dolbyhp.dll (2010-01-22 19:40:28 UTC)
    Dolby Headphone Wrapper 1.4.1
foo_dsp_fsurround.dll (2010-03-31 10:35:38 UTC)
    FreeSurround 0.3.5
foo_dsp_std.dll (2010-04-10 23:20:02 UTC)
    Standard DSP Array 1.0
foo_dumb.dll (2010-01-16 13:01:20 UTC)
    DUMB module decoder 0.9.9.12
foo_fileops.dll (2010-04-10 23:19:08 UTC)
    File Operations 2.1.2
foo_freedb2.dll (2010-04-10 23:19:10 UTC)
    freedb Tagger 0.6.2
foo_gep.dll (2010-02-10 05:23:54 UTC)
    Game Emu Player 1.94
foo_input_dts.dll (2010-01-11 17:28:30 UTC)
    DTS decoder 0.2.8
foo_input_std.dll (2010-04-10 23:19:50 UTC)
    Standard Input Array 1.0
foo_input_usf.dll (2010-02-04 00:10:14 UTC)
    LazyUSF 2.0 (Build Feb  3 2010)
foo_jesus.dll (2010-01-03 19:41:18 UTC)
    Autosave & Autobackup 8
foo_lastfm_radio.dll (2010-02-18 03:21:28 UTC)
    Last.fm Radio 0.5.7e
foo_midi.dll (2010-02-18 18:15:52 UTC)
    MIDI synthesizer host 1.99
foo_out_asio.dll (2009-03-22 20:15:46 UTC)
    ASIO support 1.2.7
foo_playcount.dll (2009-04-30 02:09:32 UTC)
    Playback Statistics 2.1.9
foo_podcatcher.dll (2010-03-26 02:30:42 UTC)
    Podcatcher 0.1.6d (beta)
foo_prettypop.dll (2009-12-06 03:31:08 UTC)
    Pretty Popup 1.2.5
foo_psf.dll (2010-03-04 04:52:40 UTC)
    Highly Experimental 2.0.12
foo_rgscan.dll (2010-04-10 23:19:38 UTC)
    ReplayGain Scanner 2.0.9
foo_sid.dll (2010-01-11 16:38:46 UTC)
    sidplay2 1.15
foo_softplaylists.dll (2010-03-23 04:30:13 UTC)
    Soft Playlists 2009-12-30.2
foo_ui_columns.dll (2010-01-09 14:40:28 UTC)
    Columns UI 0.3.8.3
foo_ui_std.dll (2010-04-10 23:20:12 UTC)
    Default User Interface 0.9.5
foo_uie_bookmarks.dll (2009-12-24 02:42:30 UTC)
    Bookmarks 0.3.0
foo_uie_vis_peakmeter_spectrum.dll (2008-04-20 01:18:50 UTC)
    Peakmeter Spectrum Visualisation 0.2.0.0 beta
foo_uie_wsh_panel_mod.dll (2010-02-28 02:59:14 UTC)
    WSH Panel Mod 1.3.2
foo_unpack.dll (2010-04-10 23:18:56 UTC)
    RAR reader 1.3
    ZIP/GZIP reader 1.0
foo_vis_shpeck.dll (2009-09-28 16:32:16 UTC)
    Shpeck - Winamp vis plugins wrapper 0.3.7
foo_w7shell.dll (2010-01-17 10:09:20 UTC)
    Windows 7 integration 0.2.9.1
foo_wave_seekbar.dll (2010-04-20 03:16:48 UTC)
    Waveform seekbar 0.2.7

foo_wave_seekbar

Reply #474
Did you submit a crash report? I can't find anything that's blamed on the current seekbar component. Is this CUI or DUI?
Also, try it on a fresh portable install without all the junk components.
Also, try running this redist test, as that does the same tests as my component does. You might be suffering from hooks from external applications or components. Something on your system is preventing the foobar2000 crash handler from activating.
Stay sane, exile.