Author Topic: (Version 1.7.4) Spectrogram Panel Plugin  (Read 14430 times)

zkhcohen

  • Sr. Member
  • ****
  • Posts: 307
IMPORTANT NOTE: MusicBee 3.2 is prone to crashes when enabling new plugins. Expect for it
 to crash up to 3 times before it becomes permanently stable. If you continue
 to have issues, try reinstalling the plugin, or reconfiguring the panels.
I suggest that you change this text since MB is -not- prone to crashes. It may be the -plugin- that causes MB to crash. Especially since you told Steven (in the developers sub-forum) that the issue was fixed.

Good point. Doing that now.

boroda

  • Hero Member
  • *****
  • Posts: 3520
@zkhcohen, could you somehow colorize spectrogram? grayscale coloring is not very funny :)

eeik

  • Newbie
  • *
  • Posts: 2
@zkhcohen, when you revise this plug-in next, might you also be able to enable the hide/display header menu option of the pane within the layout so that the header title word "Spectrogram" can be omitted tightening up the view of the pane with the pane above it?

Thank you for your plug-in contribution!

Kolya

  • Newbie
  • *
  • Posts: 16
Frequency scales would be nice. And yeah, color. Basically I was hoping for something like this: https://academo.org/demos/spectrum-analyzer/
Thank you for your work.

zkhcohen

  • Sr. Member
  • ****
  • Posts: 307
@zkhcohen, when you revise this plug-in next, might you also be able to enable the hide/display header menu option of the pane within the layout so that the header title word "Spectrogram" can be omitted tightening up the view of the pane with the pane above it?

Thank you for your plug-in contribution!

Frequency scales would be nice. And yeah, color. Basically I was hoping for something like this: https://academo.org/demos/spectrum-analyzer/
Thank you for your work.

@zkhcohen, could you somehow colorize spectrogram? grayscale coloring is not very funny :)

Well... I missed all of these. I do have a version with the frequency scale enabled - I'll try to dig it up. The primary issue is that the scale doesn't adjust based on the size of the spectrogram. This is a limitation of FFMPEG.

In terms of the colors, I could try integrating on-the-fly color switching at some point... but for now, you can choose a color from the link below and I can compile it:

https://ffmpeg.org/ffmpeg-filters.html#showspectrum-1

I can also look into removing the header, but I'm not sure if Steven has allowed that in the embedded-plugin section of the API.

Kolya

  • Newbie
  • *
  • Posts: 16
It's hard to say since the linked document only specifies color schemes, without showing what they look like. But I think you can never go wrong with 'plasma'.

EDIT: I noticed that the plugin saves the generated PNGs for every song played, to speed up display time. That's nice, but could you make it optional?
I have >40 000 files. I don't want to save a PNG for each one. On the fly generation will be enough in most cases.

EDIT2: I'm interested in the frequency scales, because I don't want to use the plugin as eye candy. I want to check actual audio quality as described here: http://www.walterdevos.be/how-to-check-quality-of-mp3-file
So if the frequency scales don't scale with the display, maybe there is a way to lock the display size?
Last Edit: February 14, 2019, 06:04:11 PM by Kolya

sveakul

  • Editor
  • Hero Member
  • *
  • Posts: 1428
EDIT: I noticed that the plugin saves the generated PNGs for every song played, to speed up display time. That's nice, but could you make it optional?
I have >40 000 files. I don't want to save a PNG for each one. On the fly generation will be enough in most cases.

A huge +1 on that

zkhcohen

  • Sr. Member
  • ****
  • Posts: 307
It's hard to say since the linked document only specifies color schemes, without showing what they look like. But I think you can never go wrong with 'plasma'.

EDIT: I noticed that the plugin saves the generated PNGs for every song played, to speed up display time. That's nice, but could you make it optional?
I have >40 000 files. I don't want to save a PNG for each one. On the fly generation will be enough in most cases.

EDIT2: I'm interested in the frequency scales, because I don't want to use the plugin as eye candy. I want to check actual audio quality as described here: http://www.walterdevos.be/how-to-check-quality-of-mp3-file
So if the frequency scales don't scale with the display, maybe there is a way to lock the display size?

Yeah, I can definitely implement both. I might just compile a couple of versions of these for everyone...

That being said, I've been extremely busy IRL recently, so I haven't had any time to work on this. I'll try to do it this weekend, but I can't make any promises.

All of the source files are included in the download, so it is technically open-source. If you know basic C#, feel free to make any modifications and releases you'd like.

Actually, I'll open this up on my lunch hour in a couple of minutes and provide some instructions on how to compile your own versions.

Edit: I'm going to figure out how to make a configure menu through the API and just implement it through there.
Last Edit: February 22, 2019, 07:00:50 AM by zkhcohen

zkhcohen

  • Sr. Member
  • ****
  • Posts: 307
Last call on anything you're dying to have in this interface:



sveakul

  • Editor
  • Hero Member
  • *
  • Posts: 1428
Man, this is GREAT.  Almost too good to be true, haha..  Wonderful options, can't see it's missing a thing, would love to see what you've got in the drop-down boxes :)

zkhcohen

  • Sr. Member
  • ****
  • Posts: 307
Man, this is GREAT.  Almost too good to be true, haha..  Wonderful options, can't see it's missing a thing, would love to see what you've got in the drop-down boxes :)


Here's the beta release of 1.5:

CHECK FIRST PAGE FOR LINK


Excuse my crap programming skills. A friend of mine is going to help me clean it up later. That being said, I've tested every feature on a couple of machines and everything is working! It's a miracle.


EDIT: The instructions and download link on the first page of this thread are updated. Please read through them. The link on the official plugin page has not been updated yet.
Last Edit: February 24, 2019, 10:12:42 PM by zkhcohen

sveakul

  • Editor
  • Hero Member
  • *
  • Posts: 1428
Would it be possible to include an option to point to an already existing installation of ffmpeg.exe instead of needing to use the one in the install package?

zkhcohen

  • Sr. Member
  • ****
  • Posts: 307
Would it be possible to include an option to point to an already existing installation of ffmpeg.exe instead of needing to use the one in the install package?

Technically, yes, but there are two issues:

1) Rewriting a portion of the code / interface to check for previous installations and point to them.
2) Ffmpeg is open-source, so there are many different builds floating around. Some builds may not contain some or all of the switches for showspectrumpic. I would have to create debugging for that as well.

I've tried to directly modify and rebuild the Ffmpeg source a couple of times, but haven't had the best results.

In the future, I'll either implement your suggestion or create my own stripped-down build of Ffmpeg for this plugin.

When I do my edits later today/this week, I'll probably take care of this.

sveakul

  • Editor
  • Hero Member
  • *
  • Posts: 1428
Thanks for your reply and for looking into this.  I was thinking of just a settings box where the user could fill in the path to the external ffmpeg.exe themselves, as opposed to expecting your code to do its own checking for it which I understand is a PITA;  since the one I use (the latest "release" Zeranoe build) is on a "portable" path an auto-check probably wouldn't find it anyway.  You could stipulate that the user would be "on their own" with that option as far as compatibility with the plugin.

Thanks again for all your work and continued improvements to this plugin!

zkhcohen

  • Sr. Member
  • ****
  • Posts: 307
Updated names of programs, structure of files, fixed support for mobile installations, debugging message, readme and other back-end improvements:


SEE FIRST PAGE.


Note that the Configuration Menu's name has changed and will now be located wherever the config.xml and ffmpeg.exe files reside.
Last Edit: February 25, 2019, 02:52:36 AM by zkhcohen