Author Topic: BASS_SFX v2.4.2.1 for winamp, sonique, bassbox, & WMP visual plugin support!  (Read 218105 times)

Patrice Terrier

  • Posts: 108
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

Quote
It 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

  • Posts: 103
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

  • Posts: 44
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
« Last Edit: 13 Apr '09 - 01:02 by bits »

ramses

  • Posts: 103
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

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

firemen

  • Posts: 151
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  :(
« Last Edit: 13 Apr '09 - 18:38 by firemen »

RevG

  • Posts: 454
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


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
« Last Edit: 13 Apr '09 - 19:36 by RevG »

RevG

  • Posts: 454
RevG 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

  • Posts: 454
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  :(

Hello,

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

Code: [Select]
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

  • Posts: 151
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
« Last Edit: 13 Apr '09 - 20:10 by firemen »

RevG

  • Posts: 454
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

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

  • Posts: 44
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

  • Posts: 103
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

  • Posts: 1545
Hi REVG. Can you give the AIMP video plugins Headers? Thanks in advance!

RevG

  • Posts: 454
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

  • Posts: 454
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.

Quote
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 

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
« Last Edit: 23 Apr '09 - 01:06 by RevG »

ramses

  • Posts: 103
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

  • Posts: 454
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

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? :)
Code: [Select]
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?


« Last Edit: 27 Apr '09 - 17:38 by RevG »

firemen

  • Posts: 151
resize Sonic
« Reply #93 on: 27 Apr '09 - 18:34 »
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
« Last Edit: 28 Apr '09 - 08:06 by firemen »

bauhaus

  • Posts: 3
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

  • Posts: 103
Hi,

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

Thanks for answer.

Regards.

Philippe

roksar

  • Posts: 1
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

  • Posts: 62
BASS_SFX v2.4.1.5 for Delphi2007 Test

System Windows Vista 32
« Last Edit: 5 May '09 - 02:35 by w3k »

TnG2903

  • Posts: 1
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

  • Posts: 131
Quote
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.
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
« Last Edit: 31 May '09 - 21:37 by Knight_Rider »