PDA

View Full Version : VSXu OpenGL 3D design and Winamp Plugin


wirejam
10th April 2007, 04:08
What do you guys think of the VSXu 3D GUI for OpenGL based visualization? I got hooked up to this from a comment by redi jedi on his website. The GUI has a beautiful 3D brouser like nothing I've ever seen. You use it to grab OpenGl modules for graphical network style programming.

redi said he was interested in writing some new implementations of Milkdrop into this program. How is that working out so far?

I can't find any sound processing modules in the brouser to hook into the graphical operations but they say they have a module (somehwere) doing a 512 point fft (same as MD I think) with spectral power measures over many audio bands along with raw audio waveform output.

I was told that they are working on a plugin for winamp. Somewhere on the site there is a suggestion that MilkDrop is "decaying" away with the implication that VSXu is stepping into the gap.

Compared to what you guys have been doing with MD for so long there is very little visualization work accomplished to date with VSXu (over 2 years or so I think). What do you think of the capabilities of the VSXu system compared to MD? How might your work on MD be applied to it or how could it be applied to MD as I think redi is suggesting?

redi jedi
17th April 2007, 04:46
well I played with vsxu for quite a bit, I re-did a rough implantation of my beat detection which worked ok. But i kinda lost intrist in it because most of the cool modules would crash my comp, and i actually find it harder to make useful "functions" that way, I'm more of a code person though so...
And I've got this love/hate thing with the GUI, it looks great.. too great.. it takes me half an hour to add a module because I start moving the menu around to the beat and just stare at that... kinda counter productive..

as far as its capabilitys... hard to say for sure since i couldnt use most of the modules, but it had alot of features, but most seemed limited to the point that it removed most of the creativity... and originality.

I think its a great idea, they just need more.. stuff.. i guess. if they made a code interpreter block that just used md style "math code" that made the output it would help bridge the gap..

pretty sure the main reasion ya dont see much done with it is that the gui is more fun than the program(not to diss on it, i'm just sayin) and it crashes instead of giving errors..

and thats my take on vsx..

wirejam
17th April 2007, 20:00
Yeah - the GUI is more fun than the program. I was afraid of that. Thanks for the appraisal from the coding point of view. They sure got the art together in the GUI but I guess I just have to wait to see if they get more functional. Sounds like you worked directly with their C++ code to get the beat detection in there - I couldn't myself see any place in their system where the audio came in.

Thanks again for your view of it - that would have taken me a lot of time to figure out.

redi jedi
18th April 2007, 04:55
oh no i made the beat detection with the modules, theres a spectrum analizer in there somewhere, its in a weird place though...

jonatan
11th May 2007, 15:59
hey guys, found this thread :)

some good pointers on how to improve the program here indeed :) will get to it..

also you're right that we need more 'stuff', and that's why I'm now working on solidifying the engine + adding more interresting modules and extending the ones we have.

redi, which was the last version of vsxu you tested?
In the latest version I resolved some memory-related bugs that made the program crash almost 30% of the times you removed a module, I hope it was that..
However could also be lack of functionality in your graphics card since vsxu is quite demanding, neeeds at least nvidia 6800 to run really well.. of course this can be improved, it's mostly the shader's fault. some bug reports would be nice if it wasn't the memory bug which should now be fixed :)

redi jedi
13th May 2007, 14:37
not sure witch version it was, but it's prolly been a good 6 months since i've played with it.

most of the crashes i had happend when i connected a module, figure thats a GFX problem, since i can add the module, but once i hook up the output it blows up.

my gfx card is a 7300GS... not 100% sure i've tried it with this card, my old on was a radion 9200, that one gave me many errors...

i'll have to try your lastest version once i get some time here..

oh and if your adding modules.. please make one where i can input code... simmilar to milkdrop, just math. like mabye a variable number of inputs/outputs then just math in them creates the output.. would be much easyer to make contol signals and what not...

jonatan
13th May 2007, 18:03
aha, a lot has happened with stability in the past 6 months..

so you're basically requesting a scriptable module that is able to render stuff?
as well as defining inputs for the program and processing these...?

redi jedi
23rd May 2007, 15:12
oh no it wont need to render anything, just make numerial outputs that you could use to pluginto the render modules.

basicly you would set the number of input/output connections, then connect other modules to the input/output and use math to actualy define the relation.

simple example-> beat dection.
to make a simple beat dection(peak dection) i had to make a macro, in side of witch i had to make all kinds of connections with the add/sub/multi blocks.. it was really a pain to figure out how to do it, let alone actualy get it to work correctly.

would be better like this:
add the spectrum anilizer(dont rember name) thing, add a code block, and a few simple renders, then ya connect the spectrumn to the codes input, and the output to the diffrent options inside of the render(color, size,ect) then writing the beat dection and music reaction is much easyer, plus it doesnt make your layout look too congested with all those add/sub/mult blocks everywhere...

jonatan
24th May 2007, 08:10
Actually this has been possible in vsxu in the past (I have long since implemented a scripting language with C-like syntax called game monkey), but it's been broken. In the past few days I've been working on getting it working again, so in the next version you'll have this functionality. (In the current version it's crashing because i was too brutal with garbage collection which really was unnecesarry) I did some other things wrong as well.

Anyway, you can add "parameter filters" to float parameters on any module, the filter can set the value and has access to the connected incoming value if there is any. So if you want to make a general float-float maths plugin, just use the float dummy and hook a value to it. Or you can make a plain oscillator without hooking anything to it.

There's also another place where you can place script, and that is right before the module runs. You then have access to all float parameters (including the result of the 'parameter filter' scripts) and can make ifs etc and set them to new values.

Also: in the upcoming version, global variables are shared among all scripts in the engine, so if you're the hackish type you can really do fun tricks with that.

I also tested some performance, i take it that milkdrop makes vector fields (x/y offset) (for the feedback effect) in blocks of 128x64 at most (not actual pixels at 1024x1024), so doing this will also be possible. I'm gonna create "float field" which is a [x][y] array of floats, and a general module that renders a grid out of these values..
So you can generate these fields in script with 2 nested for loops.
Then you can make milkdrop-like effects and add whatever crap/3d objects/waves/duck.3ds on top of the feedback :)


And finally, the last new nice feature in the upcoming vsxu version is transitions in the player - which you can design yourself in the editor :) You get 2 textures and 1 float value, you have to fade (or do whatever you like) from texture a to b using the float value as time.

jonatan
18th June 2007, 07:22
Ok, new version is out now: http://vsxu.com