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: Winamp-VIS-plugs in foobar (Read 168914 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Winamp-VIS-plugs in foobar

Reply #100
i have a feeling there's going to be all kinds of quirks as a result of this plugin (no-one's fault, just a result of adding another layer between the player and plugin where the plugin authors don't expect it). this could need constant maintenance and be a lot of work  you might have opened a real can 'o' worms. not to put a damper on things

Winamp-VIS-plugs in foobar

Reply #101
Kode -

Can you add an option where the plugin would be able to, say, disable OSD (to prevent flickering) through a checkbox in the config?  That would be sweet 

- `jars

Winamp-VIS-plugs in foobar

Reply #102
Quote
edit: also, the plugin binary you supply still seems to be kinda broken. It works once, but then it appears those window placement settings get screwed (removing ini data fixes it, temporarily).

shit, i'm stupid: i changed "%d" to "%i" instead of "%u"...
should work now if not write again

same link as before: vis_miniskd_FIXED.zip.

thanx, thikasabrik!

Winamp-VIS-plugs in foobar

Reply #103
Well, it isn't working I'm afraid, but it may be a isp caching issue with that download. What should the modification time on the dll be?

edit: forgot to mention, it doesn't work with the binary stamped at 23/02/2004 21:35

Winamp-VIS-plugs in foobar

Reply #104
seems to be cut off mid spectrum. (or maybe overly amplified).

If you set the foobar volume to -25.50 db it fits in the little part of the spectrum that isnt cut off, but it makes other vis things barely respond (incl. milkdrop).

Winamp-VIS-plugs in foobar

Reply #105
@thikasabrik
i really don't know where these big numbers come from...
i included a could-one-see-the-whole-window-check which should erase those big number. worst case should now be a forgotten position...

latest dll should be 22:24.

Winamp-VIS-plugs in foobar

Reply #106
Quote
Latest version: Configure button doesn't work after plugin has run once (using winamp plugins dir, not \bacon\. But, on the bright side, the whitecap prefs bug is fixed. 

Confirmed, using \bacon directory. 

Winamp-VIS-plugs in foobar

Reply #107
I'm not going to have time to do everything I want to do before I try releasing another build (wait until next weekend, probably :|), but here are some notes for kode54 in case he does have time:

1)  Clipping the data as it's converted from float to char works great with the sample data, but terribly with the spectrum data (I really don't know why it seemed to work earlier when it wasn't being clipped... maybe I just wasn't really testing it).  Use a separate function for the two of them and try multiplying the spectrum data by something a lot lower (like 8 or something... I'm not quite sure how the spectrum data from foobar is calculated).  Also, spectrum data is always positive.

2)  AVS does NOT use undocumented API calls.  If you search around the Winamp forums, you'll find an SDK for Winamp 5.02 that explains all of those calls.

@powder:
Have you tried going into the Milkdrop configuration menu, switching over to the, "more options," tab, and changing the delays there to something non-negative?


The reason the plugins aren't working after running once is that, because of the seeking issue, plugins don't get reloaded until you switch to a different one in the config dialog and restart the visualization.  ...I'm sorry I don't have time to fix that right now .

Winamp-VIS-plugs in foobar

Reply #108
@thikasabrik
hopefully last update to vis_miniskd_FIXED.zip:

the problem was GetWindowRect fails first time.
this fills the rect with strange values.
and if one does not move the window in runtime
this wrong number is also writting to the ini.

dll time is 23:44

Winamp-VIS-plugs in foobar

Reply #109
You've done one heck of a job here.
Whenever i'm in fullscreen mode with my Milkdrop, and I use global keys to change song, it does something (a flush?), that makes Milkdrop drop back to winwed mode. I don't know if it's much to ask but is it possible to not go back to windowed mode while in full screen mode? Btw. it works fine if I go to the end of a song, go to full screen and let it automatically change to next song, be it random, default or whatevah. But nice job, keep it going.
"foolish humans, no matter how you try to cover the sky with your hands - is the sky truly smaller than your grasp?" - Gran Kain

Winamp-VIS-plugs in foobar

Reply #110
Yeah, the plugin gets flushed whenever you manually change a song.  Until the timer thing that's been talked about is implemented, you'll have to work around this by configuring Milkdrop to default to whichever setting you prefer so it will start back up in fullscreen/windowed/desktop mode after the flush.

Winamp-VIS-plugs in foobar

Reply #111
Uploaded minus0.7. [binary] [source]

Quote
1)  Clipping the data as it's converted from float to char works great with the sample data, but terribly with the spectrum data (I really don't know why it seemed to work earlier when it wasn't being clipped... maybe I just wasn't really testing it).  Use a separate function for the two of them and try multiplying the spectrum data by something a lot lower (like 8 or something... I'm not quite sure how the spectrum data from foobar is calculated).  Also, spectrum data is always positive.

I borrowed some maths from foo_vis_test, it should look better now. Of course, it could use some proper interpolation... Maybe later.

Quote
2)  AVS does NOT use undocumented API calls.  If you search around the Winamp forums, you'll find an SDK for Winamp 5.02 that explains all of those calls.

You're right. It doesn't use undocumented API calls. It used IPC_GETINIFILE, which I was able to wrap... Of course, it also uses not-fully-documented complicated API calls. Namely, crap for it to stick its dialog into a window provided by the host application.

Maybe the impatient can dig around for a version of AVS which predates this annoying skinning feature.

Quote
The reason the plugins aren't working after running once is that, because of the seeking issue, plugins don't get reloaded until you switch to a different one in the config dialog and restart the visualization.  ...I'm sorry I don't have time to fix that right now .

I may fix this later, along with wrapping the file navigation messages so, for example, zxcvb work in Milkdrop. It looks like the latter will be easier, though.

BAH. There still appear to be issues when loading configuration while a visualization is open. Pain in the ass...


Winamp-VIS-plugs in foobar

Reply #113
Heh, it's kind of funny that your header version changed as the file is identical to the version 0x101 vis.h.  Just out of curiosity, did you edit the VIS_HDRVER #define yourself?  You're not supposed to... though I guess it's possible that Nullsoft could have changed the version for no reason (sorry if I'm out of line with that question).

Depending on why the value is different, a build to allow it to work shouldn't be too hard, but I haven't been able to get any of kode54's recent source releases to compile with Visual Studio .NET 2003.  It flags cfg_basepath.reset() in config.cpp and says reset is not a member of cfg_string.

Winamp-VIS-plugs in foobar

Reply #114
Quote
@powder:
Have you tried going into the Milkdrop configuration menu, switching over to the, "more options," tab, and changing the delays there to something non-negative?

Have some interesting report for you.

If "Time between random song title anims" is set to a positive number:

The title keeps displaying itself over and over again.

If "Time between random song title anims" is set to a negative number,
AND "Time between random custom messages" is set to a positive number:

Foobar2000 crashes.

Winamp-VIS-plugs in foobar

Reply #115
for the avs thing, any avs under 2.9 will work (not so sure but I think so) because they introduced the generic windows skinning apis in 2.9 (or 2.89 dunno)

Winamp-VIS-plugs in foobar

Reply #116
*patiently waits for someone to add AVS support*

Great work, guys!

My two gripes:

1. The spectrum information still clips (try vis_nsfs.dll in spectrum/oscilloscope mode for better evidence). A quick fix would be to "sigmoidally" adjust it something like this: X' = atan(X)*2/PI. It's atan, so that shouldn't be too computationally expensive.
2. Now people won't care to make foobar2000 native visualizations because they can just use Winamp's crufty old API.

Other than that, works great. After AVS is supported, Winamp is gone. Then I shall be ruled by the mighty duo of Media Player Classic and foobar2000. All hail our new media-playing overlords!

Winamp-VIS-plugs in foobar

Reply #117
Quote
Heh, it's kind of funny that your header version changed as the file is identical to the version 0x101 vis.h.  Just out of curiosity, did you edit the VIS_HDRVER #define yourself?  You're not supposed to... though I guess it's possible that Nullsoft could have changed the version for no reason (sorry if I'm out of line with that question).

Depending on why the value is different, a build to allow it to work shouldn't be too hard, but I haven't been able to get any of kode54's recent source releases to compile with Visual Studio .NET 2003.  It flags cfg_basepath.reset() in config.cpp and says reset is not a member of cfg_string.

Nope, I didn't change it myself.

-Scott

Winamp-VIS-plugs in foobar

Reply #118
An option to disable screensaver would be good, although it probably belongs in the main visualization controls.

Winamp-VIS-plugs in foobar

Reply #119
Quote
If "Time between random song title anims" is set to a positive number:

The title keeps displaying itself over and over again.

Yes, that's what the random song title animations are for:  they display the title of the song over and over again every so often.

Quote
If "Time between random song title anims" is set to a negative number,
AND "Time between random custom messages" is set to a positive number:

Foobar2000 crashes.

The only way I was able to reproduce this was caused by very poor error handling in Milkdrop.  If Milkdrop is unable to find a properly formatted milk_msg.ini in the same directory as vis_milk.dll, it dies if you make the time between random custom messages positive.  To get around this, either copy milk_msg.ini from wherever you got vis_milk.dll or use the configuration option kode54 added to point foo_vis_bacon to the directory where all of this stuff came from (probably your Winamp plugins dir).  In fact, I'd like to recommend that everyone who plans on keeping Winamp installed just point foo_vis_bacon at their Winamp plugins dir because it eliminates any problems with not having all of the proper files copied into the bacon or ham or whatever dir.


Quote
Nope, I didn't change it myself.

Okay, then either I or kode54 (whoever gets the next build out... probably kode54 :/ ) could set it to allow plugins with your header version, since like I said, the file is completely identical aside from that #define.


Quote
*patiently waits for someone to add AVS support*

I'm close to getting it working in a hack-ish sort of way... "sort of... maybe... no".  Was AVS always this slow?  After seeing how it was looking in foobar, I opened up Winamp just to see and was amazed at how sluggish everything looked.


Quote
1. The spectrum information still clips (try vis_nsfs.dll in spectrum/oscilloscope mode for better evidence). A quick fix would be to "sigmoidally" adjust it something like this: X' = atan(X)*2/PI. It's atan, so that shouldn't be too computationally expensive.

Hmm... :/.  Part of the problem with this is that I don't actually know how foobar2000 calculates the spectrum data... kode54 might, but I'm not sure.  Maybe I should try a forum search sometime :/.

Quote
2. Now people won't care to make foobar2000 native visualizations because they can just use Winamp's crufty old API.

Well, they really weren't before this, either.  There were a few, but development of foobar visualizations just wasn't catching on.  That's part of why I made this... that and it seemed like a really good way to waste spare time (back when I had it.  I'm gonna go do my economics homework now...).

Winamp-VIS-plugs in foobar

Reply #120
AVS v2.5.1, which is bundled with Winamp v2.81, works fine, sort of. In fact, it appears to work with the presets bundled with Winamp 5.

It does appear to have a problem with opening the configuration while it is running. Perhaps it would simply be better for plug-in configuration to be frozen while the visualization is running.

Winamp-VIS-plugs in foobar

Reply #121
boo.  I've gotten AVS from Winamp 5 to work; will post a build sometime tonight when I've had a chance to test it further, probably sometime after 11:00 or 12:00 (kinda busy).

Winamp-VIS-plugs in foobar

Reply #122
Nice job. :B It's probably just as well, that way you can host it in a standard window, and the newer version might have some other improvements as well. Maybe we should set up a Sourceforge account or something. Heheheh.

Winamp-VIS-plugs in foobar

Reply #123
Before you upload that new build, could you add an option to keep the plug-in window on top?... somewhere in the config window maybe?... also a hotkey for it would be appreciated....

Winamp-VIS-plugs in foobar

Reply #124
That's strange I just did a fresh install of Winamp 5.02 to get Milkdrop 1.04b and there is no milk_msg.ini in the Plugins directory!

Can I please borrow someone else's if it's not too much trouble?

Edit:  Also, I noticed that when I have Milkdrop running in a window, if I hover my mouse over the start menu or something similar on the task bar, Milkdrop slows down a lot.  But no big deal.