Author Topic: Winamp "Classic Spectrum Analyzer" plugin with MusicBee  (Read 72297 times)

zkhcohen

  • Sr. Member
  • ****
  • Posts: 346
Now we need someone who is familiar with C++ to fix the minor flaws of the plug-in, like:
- ability to open the context menu
- option for transparent background
Hope we can find a Stakeholder here  ;)

Looks like we have some hope here:  https://getmusicbee.com/forum/index.php?topic=25944.msg155952#msg155952


Could you clarify what needs to be done?

I can probably do it but those two line-items are not descriptive.

sveakul

  • Sr. Member
  • ****
  • Posts: 2438
Glad to see you here, sir!  What we hope to see:

1.  The CSA natively comes with an options-rich GUI which is meant to be invoked by right-clicking in the window area and selecting "Properties"--the screenshots farther up the thread show you what they then look like.  Unfortunately, trying to do this when the CSA is loaded into MusicBee will cause MB to crash--every time.  To see the GUI in action, you could load the plugin in the XMPlay player (the player requires the xmp-wadsp.dll plugin to use Winamp dsp plugins).  Hopefully, the CSA source code pointed to in Sofocl's post (https://getmusicbee.com/forum/index.php?topic=23345.msg154061#msg154061) will help you find a way to adapt the GUI for use in MusicBee.

2.  KangNi expressed the desire for the background of the spectrum window to have a selection for "transparent" in the Style/Background GUI options, probably to provide the option to show the MB skin behind it.

Thank you for taking a look at this.

zkhcohen

  • Sr. Member
  • ****
  • Posts: 346
Glad to see you here, sir!  What we hope to see:

1.  The CSA natively comes with an options-rich GUI which is meant to be invoked by right-clicking in the window area and selecting "Properties"--the screenshots farther up the thread show you what they then look like.  Unfortunately, trying to do this when the CSA is loaded into MusicBee will cause MB to crash--every time.  To see the GUI in action, you could load the plugin in the XMPlay player (the player requires the xmp-wadsp.dll plugin to use Winamp dsp plugins).  Hopefully, the CSA source code pointed to in Sofocl's post (https://getmusicbee.com/forum/index.php?topic=23345.msg154061#msg154061) will help you find a way to adapt the GUI for use in MusicBee.

2.  KangNi expressed the desire for the background of the spectrum window to have a selection for "transparent" in the Style/Background GUI options, probably to provide the option to show the MB skin behind it.

Thank you for taking a look at this.

Yeah. I can probably do this.

I don't have time to look at the source code right this second, but can you cause it to crash and then send me the associated report from your MusicBee error logs?

sveakul

  • Sr. Member
  • ****
  • Posts: 2438
Actually the crash sequence doesn't produce an entry in the MB error log, unfortunately.  Instead, you get a Windows "Program Not Responding" message:

Description:
  A problem caused this program to stop interacting with Windows.

Problem signature:
  Problem Event Name: AppHangB1
  Application Name: MusicBee.exe
  Application Version: 3.3.7011.33478
  Application Timestamp: 5c894de6
  Hang Signature: bb13
  Hang Type: 4
  OS Version: 6.1.7601.2.1.0.256.48
  Locale ID: 1033
  Additional Hang Signature 1: bb1339ed19f0961c98e0ff516ad1cc8a
  Additional Hang Signature 2: f9f7
  Additional Hang Signature 3: f9f725122ec4d4f052ead1320d7ca78f
  Additional Hang Signature 4: f095
  Additional Hang Signature 5: f095ea1431772cece13db4b56e132bf5
  Additional Hang Signature 6: 06cb
  Additional Hang Signature 7: 06cba739a016d32254006ebbc35e5469

The sequence of events is thus:

1.  Open MB with the CSA loaded and its window displayed.

2.  Right-click in the CSA window;  instead of then displaying a Properties/Profiles/Close/About context menu from the plugin, part of the spectrum (if playing) will freeze and nothing appears.  Your song (if playing) will continue to play--if you didn't have anything playing, nothing appears either.

3.  Then  trying to perform any kind of activity in MB (navigate to another tab, start a song, etc.) will totally freeze it.  Attempting to continue will result in the Windows error and offer to close the program.

If you don't try to pull up that right-click menu, the plugin functions (shows a spectrum) problem free, crash free every time throughout any MB navigation.  Users must therefore make their changes manually to the plugin's actual ini files  (yes there are TWO of 'em--"vis_classic.ini" in the Plugins folder and "Current_Settings.ini" in the vis_classic subfolder within Plugins).

I hope I haven't scared you off  :-X
Last Edit: March 16, 2019, 12:19:30 AM by sveakul

zkhcohen

  • Sr. Member
  • ****
  • Posts: 346

3.  Then  trying to perform any kind of activity in MB (navigate to another tab, start a song, etc.) will totally freeze it.  Attempting to continue will result in the Windows error and offer to close the program.

If you don't try to pull up that right-click menu, the plugin functions (shows a spectrum) problem free, crash free every time throughout any MB navigation.  Users must therefore make their changes manually to the plugin's actual ini files  (yes there are TWO of 'em--"vis_classic.ini" in the Plugins folder and "Current_Settings.ini" in the vis_classic subfolder within Plugins).

I hope I haven't scared you off  :-X

I mean, initially it seems like an easy problem but seeing as this is C++ and was compiled in 2010 (?), it's a bit messy.

Was really hoping that it would produce a usable error message.

I guess you could try installing earlier C++ Redistributables...

I can also see if recompiling magically solves the issue. Otherwise, I'll try to debug it.

sveakul

  • Sr. Member
  • ****
  • Posts: 2438
I have the 2008-2010-2013-2017 redists so that isn't it.  I think we'll have to rely on your debugging.

zkhcohen

  • Sr. Member
  • ****
  • Posts: 346

sveakul

  • Sr. Member
  • ****
  • Posts: 2438
Hey man it's OK, I just appreciate that you did give it a go.  Sticking with manual mods of the ini file won't kill me.  We can use your skills elsewhere! :)

zkhcohen

  • Sr. Member
  • ****
  • Posts: 346
I have no clue why this started working...





Edit: Here's my guess...

1. Another legacy visualizer was bugging out when I enabled the panel and threw a class registration error.
2. I believe that the right-click menu might conflict with the right-click menu that allows you to switch between visualizers on the panel.
3. I believe that #1 caused the menu in #2 to be un-bound from right-click for that session, and allowed the Classic Spectrum settings to appear.

If this is the case, I might be able to change the mouse-binding and recompile the code.
Last Edit: April 15, 2019, 10:46:17 PM by zkhcohen

sveakul

  • Sr. Member
  • ****
  • Posts: 2438
Wow, that is great!!  When you actually choose "Properties" now, do you get the Options GUI??

PLEASE do recompile and test again!  Can't wait to see this in action.  Wishing you luck!

zkhcohen

  • Sr. Member
  • ****
  • Posts: 346
Wow, that is great!!  When you actually choose "Properties" now, do you get the Options GUI??

PLEASE do recompile and test again!  Can't wait to see this in action.  Wishing you luck!

Well... I leave you with that.

I recompiled in VS 2017, but I think there are just too many differences. The plugin simply doesn't work in MB or WinAmp.

I've already spent too much time beating away at this.

Someone else needs to install VS 2005, 2008 or 2010 in a VM and recompile it in its native environment.


To whoever tries to do it:

Use the OLD Windows SDK headers.
Use these as well: http://wiki.winamp.com/wiki/SDK_Contents
And use these: https://getwacup.com/sdk/

DON'T use the main Github source, use this unmodified one: https://github.com/WACUP/vis_classic/releases/tag/v1.1

Good luck. You'd be better off asking Steven to change the key-binding in the Visualize:Graphics panel.

zkhcohen

  • Sr. Member
  • ****
  • Posts: 346
Huh... for some reason if I stack the Visualizer behind another panel, and then restart MusicBee with the OTHER panel active, when I restart and then click the header to go back to the Visualizer, I get a class registration error, but then the right-click menu works every time.

It's exploiting a bug, but it works every time for me.

Could you try to replicate that?

sveakul

  • Sr. Member
  • ****
  • Posts: 2438
I have to ask:  you posted an image of it actually running in MusicBee (I assume), showing the context menu, and confirmed that it did call up the Options GUI.  Is whatever configuration that produced that in your own environment something that if posted might produce the same useability for others?  Or was it running in some kind of specific test environment not reproducible for ordinary use?  Not being a programmer, I apologize for whatever ignorance those questions disclose.

But if that's the end of it, THANK YOU for the considerable effort you made, and the keys you left for others to follow.  At least it can continue to run great as-is in MusicBee with manual edits to the ini files, GUI access or not.  I have found it extremely stable and without real competition as far as what it can do.  As I mentioned before, your expertise is needed for other plugins!

UPDATE:  OK just saw your new post!  Can you please detail the steps you took to "stack" the panel?  And if once the operation is completed, the menu works every time MB is started, or does the same exploit need to be done every time?  The latter would sorta kill the useability except for maybe the first set-up of the opions from the GUI.
Last Edit: April 18, 2019, 04:06:06 AM by sveakul

zkhcohen

  • Sr. Member
  • ****
  • Posts: 346
UPDATE:  OK just saw your new post!  Can you please detail the steps you took to "stack" the panel?  And if once the operation is completed, the menu works every time MB is started, or does the same exploit need to be done every time?  The latter would sorta kill the useability except for maybe the first set-up of the opions from the GUI.


It's only really useful for the first configuration.

Panel Layout with stacking:




Gif showing steps to replicate on new launch of MusicBee:


sveakul

  • Sr. Member
  • ****
  • Posts: 2438
Thanks for the details and gifs, very much appreciated.

I want to add a request in the Wishlist thread for Steven to "change the key-binding in the Visualize:Graphics panel" as you mentioned, but can you go into more detail please so he'll know exactly what action I am requesting?  Then I will so post.

I like your never-say-die approach.  I also appreciate recognizing when the point to "move on" has been reached.  A tip of the hat to the only person who gave it a shot.