BASS_SFX v2.4.2.1 for winamp, sonique, bassbox, & WMP visual plugin support!

Started by RevG, 19 Feb '09 - 00:57

Patrice Terrier

Greg,

I uploaded the header to the José Roca's forum already there:
http://www.jose.it-berater.org/smfforum/index.php?topic=1993.msg9722;topicseen#msg9722

QuoteIt was very interesting to see the different file sizes that each programming language produced!
While using different languages, including managed C#, i am always back to the core flat API as soon as i want to take control of everything, mostly because, like yourself, i have also designed my own skin engine.

Low level programming is the only way to create efficient code for that purpose. WinLIFT was my first skinengine (i wrote it in 1997). However since VISTA, i was forced to take another approach to design the interface of my new applications, to let them work together with DWM in full composited mode.

If you want to see what i come with, then give a look here
make sure also to look at the fantastic interface of "Panther" that is 100% OpenGL coding by Ryan Cross.

Note: My GDImage graphic library allows the mixing of GDI32, GDIPLUS and OpenGL altogether.
you can try one of my lattest demo showing this in context there
(you must have a graphic card that is 100% OpenGL 2.0+ compatible to run the Image3D demo)
(The .zsk file is the counterpart of your .xml file)

When you see the size and speed of the resulting EXE, then you can understand the supperiority of the old SDK programming style hover the current approach of managed code that requires the bloated DotNET runtime ;)


ramses

Hi,

Since the version 2.4 i have a problem with the render fonction (using OpenGL) for sonique plugin's (no problem with the old version version 3.0).

the image is jerked.

Did you have any idea of what happening ?

Regards,

Philippe

http://www.qpratools.com

bits

The OpenGL for Sonique visuals that is in bass-sfx 2.4 works by rendering the visual at 512*512 regardless of the window the visual will be shown in. Then OpenGL is used to stretch the image to fit the window which infact could be much smaller than 512*512, but helps when larger.
Sonique visuals are CPU intensive and 512*512 might be too much for the visual and your CPU to handle. 240*240 seems to run fine on most machines/visuals and also helps with some visuals that cant work any higher.
TODO: When the window is smaller it probably should render the visual smaller :)


What visual(s) are you using and what size window are you trying to display them in?

Also I have a list of visuals and some of their querks here:
http://wasteofcash.com/Tuniac/visissues.txt

ramses

Hi,

Thanks for anwser.

The window size is 320*240 but changing the size to 240*2400 or 512*512 doesn't change anything.

I'm running under VISTA Dual Core 2.13Ghz.

I try different visual plugins but i have always the same results:  jerked image.

Tornado.svp
corona.svp
MetreX.svp...

Regards,

Philippe

http://www.qpratools.com

POG-iMplayer

RevG the good fellow that you do such work, many including I are grateful to you.!!!  ;D

firemen

classid  Alchemy:   0AA02E8D-F851-4CB0-9F64-BBA9BE7A983D
                Bars:   48501FF0-F6A9-11D2-9435-00A0C92A2F2D
            Battery:   8D2A317B-D98B-4efa-89D6-E49F0ACF98A1

does alchemy work only?

and

Delphi code:
StrPas( BASS_SFX_PluginModuleGetName(hSFX_alchemy, 0)  )

return unread characters  :(

RevG

Quote from: ramses on 13 Apr '09 - 08:30Hi,

Thanks for anwser.

The window size is 320*240 but changing the size to 240*2400 or 512*512 doesn't change anything.

I'm running under VISTA Dual Core 2.13Ghz.

I try different visual plugins but i have always the same results:  jerked image.

Tornado.svp
corona.svp
MetreX.svp...

Regards,

Philippe

http://www.qpratools.com


Hi There!

I am working right now on fixing this. I am making sonique plugins use GDI by default and OpenGL Rendering will be an option. Since in many of my tests the GDI rendering is actually much faster than OpenGL for rsome resason. I am also changing the OpenGL to render on to the texture slightly different than it currently is, this will ensure that the texture size it renders to is proper and also with my new way it will not be forced to be a power of 2 :D

I will have a new version probably sometime tomorrow. :)

Cheers,
Greg

RevG

Quote from: POG-iMplayer on 13 Apr '09 - 17:29RevG the good fellow that you do such work, many including I are grateful to you.!!!  ;D

Well thank you sir! I enjoy helping out the community. I thank you for your support and kind words :)
More updates will be coming soon :)

Cheers,
Greg

RevG

Quote from: firemen on 13 Apr '09 - 18:35classid  Alchemy:   0AA02E8D-F851-4CB0-9F64-BBA9BE7A983D
                Bars:   48501FF0-F6A9-11D2-9435-00A0C92A2F2D
            Battery:   8D2A317B-D98B-4efa-89D6-E49F0ACF98A1

does alchemy work only?

and

Delphi code:
StrPas( BASS_SFX_PluginModuleGetName(hSFX_alchemy, 0)  )

return unread characters  :(

Hello,

I just tested this in Delphi 7 and this way works for me. Is this how you are trying to load it too?

hSFX2:=BASS_SFX_PluginCreate('0AA02E8D-F851-4CB0-9F64-BBA9BE7A983D', Panel2.Handle, Panel2.Width, Panel2.Height); //windows media player
str := StrPas(BASS_SFX_PluginModuleGetName(hSFX2, 0));

firemen

str := StrPas(BASS_SFX_PluginModuleGetName(hSFX2, 0));

yes, return "!;CG09=K9 2K1>@"  it must be "Случайный выбор"
windows XP, russ.  Delphi 11.

exactly PAnsiChar? can somewhere  PChar utillized? Russian characters are not right represented...

BASS_SFX_PluginCreate('8D2A317B-D98B-4efa-89D6-E49F0ACF98A1'...
BASS_SFX_PluginCreate('48501FF0-F6A9-11D2-9435-00A0C92A2F2D'..

returns -1

RevG

Quote from: firemen on 13 Apr '09 - 19:46str := StrPas(BASS_SFX_PluginModuleGetName(hSFX2, 0));

yes, return "!;CG09=K9 2K1>@"  it must be "Случайный выбор"
windows XP, russ.  Delphi 11.

exactly PAnsiChar? can somewhere  PChar utillized? Russian characters are not right represented...

BASS_SFX_PluginCreate('8D2A317B-D98B-4efa-89D6-E49F0ACF98A1'...
BASS_SFX_PluginCreate('48501FF0-F6A9-11D2-9435-00A0C92A2F2D'..

returns -1

In the next version I will include unicode version of PluginModuleGetName function and I will also have a BASS_SFX_ErrorGetCode function that will give us more details about why the PluginCreate call is failing when you are trying to load a windows media player plugin via GUID.

I will try to get a new version out tomorrow sometime :)

Cheers,
Greg

bits

RevG it can also be seen in Sonique 1 using GDI is faster than this OpenGL way aswell, it's been annoying me since looking into the SVP renderer :)

So I quickly went looking a few days ago for a better way to do it.
The things I noticed were:
2D GDI+ on Windows XP and Windows 7 should be hardware accelerated, but not on Vista.
I also thought about doing it with Direct3D as that would get hardware acceleration on all versions of Windows.

ramses

Hi,

Thanks for answer.

Did you plan to add a function to list WMP plugins by CLSID ?

It will be great.

Regards.

Philippe

http://www.qpratools.com

Ionut Cristea


RevG

Hey guys,

Sorry I underestimated the amount of time I would have. I am moving tomorrow so I won't be able to get a new version up until a least a couple of days  :(

I will keep you all posted as soon as I am setup in my new place  :)

Cheers,
Greg

RevG

Hi Everyone!

Sorry for the long wait everyone. I have moved into my new house and I am all setup now. I have just uploaded a new version of BASS_SFX. See first post in this topic for details.

Quoteclassid  Alchemy:   0AA02E8D-F851-4CB0-9F64-BBA9BE7A983D
                Bars:   48501FF0-F6A9-11D2-9435-00A0C92A2F2D
            Battery:   8D2A317B-D98B-4efa-89D6-E49F0ACF98A1

does alchemy work only?

and

Delphi code:
StrPas( BASS_SFX_PluginModuleGetName(hSFX_alchemy, 0)  )

return unread characters 

Bars and Battery currently won't work with BASS_SFX. The reason being is that I believe these two visual plugins are com objects contained within the windows media player exe. That means they are not shared on the system and can not be used outside of windows media player. You can now use the functions BASS_SFX_WMP_GetPlugin or BASS_SFX_WMP_GetPluginW to enumerate the registered shared windows media player visualizations that exist on your system :)

There is also now a BASS_SFX_PluginModuleGetNameW for unicode support. Please let me know if this now brings russian characters across properly :)

Cheers,
Greg

ramses

Hi,

The new flag BASS_SFX_SONIQUE_OPENGL does not change anything on VISTA for sonique plugin's, the image is jerked.

Did you have any idea ?

Philippe

RevG

Quote from: ramses on 27 Apr '09 - 04:10Hi,

The new flag BASS_SFX_SONIQUE_OPENGL does not change anything on VISTA for sonique plugin's, the image is jerked.

Did you have any idea ?

Philippe

If you just pass in 0 for the flags parameter on create then the sonique plugin will render using GDI and it should work the same way it did before I added opengl rendering. Is this how you are trying it below? If not, then try that and it should work properly.

If this is what you are doing and still having problems. Could you tell me what programming language you are using? :)
BASS_SFX_PluginCreate("corona.svp", 320, 240, 0);

Edit: Do you have the "image jerk" problem with the compiled examples that come with the package for all languages?



firemen

#93
attach  Delphi Source.

A problem arises if BASS_SFX_PluginResize call of form resize for example.

Error: First chance exception at $7C812AEB. Exception class EAccessViolation with message 'Access violation at address 10011C52 in module 'BASS_SFX.DLL'. Read of address 01C71000'. Process testResize.exe (2528)

if to cause through the sendMessage то BASS_SFX_PluginResize
in works normally at pressure on the button.  But at the attempt of change of sizes of form a mouse an error appears..

I am sorry for bad English, hope you understood me.
Can there are ideas how to realize in given the cases of Bass_sfx_pluginresize  at the change of window extents?

p/s/
WMP vis.  work good

bauhaus

Hello,

Well done

I actually use Visual Basic 6 and i have no problem with Sonique and bassbox plugin.

But Winamp plugin like milkdrop or avs don't work

any idea ???

Thanks

ramses

Hi,

Ok BASS_SFX_PluginCreate("corona.svp", 320, 240, 0) works fine know on vista (no jerked picture).

Thanks for answer.

Regards.

Philippe

roksar

Hello, Sorry for my bad english..

How to scale visuals after render? (example for fullscreen)

I trying .ScaleTransform() to graphic object but get exception ((

Thanks

w3k

BASS_SFX v2.4.1.5 for Delphi2007 Test

System Windows Vista 32

TnG2903

Hi,

First of all, sorry for my bad English, I'm still working on it ^^.

I'm a newbie and learning to use bass.dll
I'm writing a program to play audio files like mp3 and ogg, and I currently using BASS_SFX to do the visualization, but my program only visualizes for a short period of time (never complete a song).

Do I make anything wrong? I use exactly the same code in your example from the package I downloaded from post #1.

Knight_Rider

QuoteHi,

First of all, sorry for my bad English, I'm still working on it ^^.

I'm a newbie and learning to use bass.dll
I'm writing a program to play audio files like mp3 and ogg, and I currently using BASS_SFX to do the visualization, but my program only visualizes for a short period of time (never complete a song).

Do I make anything wrong? I use exactly the same code in your example from the package I downloaded from post #1.
Hello,
got the same problem. I deactivated every timer except the B_SFX one and it works. But why is this problem caused? And how to fix it? (Because the other timers are important for my program to work ;) )
Thanks in advance