--- --- --- --- --- --- --- ---NOTE: I supplied the 64 bit version of FFMPEG in the Dependencies folder. This will not work on some Operating Systems. Download a 32-bit build here: https://ffmpeg.zeranoe.com/builds/
(UPDATED) Latest Release (Requires MusicBee 3.3.7001 or NEWER): Click Here. For users on MusicBee version 3.3.6996 or OLDER: Click Here.Changelog:
Update 1: Fixed scaling issues.
Update 2: Added height-resizing.
Update 3: Added support for mobile installations / updated installation instructions.
Update 3.1: New instructions / troubleshooting tool to fix spectrogram when it fails to appear (incorrect ffmpeg.exe path).
Update 4: Fixed percent and quotation symbols causing incorrect filenames. Added support for songs with identical filenames.
Update 5: Added a configuration panel which allows you to take advantage of all the ffmpeg 'showspectrumpic' switches. Added the ability to clear files on each restart of the add-in. Updated installation instructions due to (new) built-in debugging.
Update 5.1: Updated names of programs, structure of files, fixed support for mobile installations, debugging message, Readme and other back-end improvements.
Update 5.2: Added ability to set your own path to Ffmpeg. Removed unnecessary files. Many back-end improvements.
Update 5.3: Additional improvements including debugging and previously-set Ffmpeg path populating Config. Panel automatically.
Update 5.4: Streams no longer cause Ffmpeg to hang. Ability to prevent the header (title bar) from being shown by manually creating a text file called "noheader.txt" in the Dependencies folder (USE AT YOUR OWN RISK).
Update 5.5: Configuration panel now integrated with MusicBee. Debug logging to "MBSpectrogramLog.txt" in Dependencies folder (cleared on restart). Other general improvements.
Update 5.6: Attempt to fix stream image generation. Code optimizations.
Update 5.7: Fixed stream image generated bug. Fixed track seeking when frequency legend is enabled.
Update 5.8: Debugging Mode made optional. Fixed MusicBee error log spam. Code optimizations. Updated README.
Update 5.9: Fixed identical tracks with different file-types preventing unique image from being generated. Added ability to set Placeholder image for streams (place "placeholder.png" in the Dependencies folder). Switched to Zerandoe FFMPEG build so that the Magma color scheme works.
Update 6: Spectrogram now always shows the full frequency spectrum of the track, regardless of the size of the panel. This works by finding the closest resolution (multiple of 2) and then stretching the image to fit the panel. This also means that substantially fewer images will be generated, and accidental/minor resizes won't trigger new image generation (it will use the best-fit).
Update 6.1: You can now access the Spectrogram Configuration Panel by right-clicking the panel. Bug fixes. More efficient image generation / resolution matching.
Update 6.2: Fixed prompt. Changed defaults to the popular configuration. Removed right-click configuration menu -> moved to the header drop-down menu.
Update 7: Added two experimental features to the Configuration Panel - Enable Seekbar and Disable Header. Added ability to pause/play by right-clicking the Spectrogram.
Update 7.1: Added dynamic indicator (tooltip) of time in song. Fixed version.
Update 7.2: Attempt at fixing multi-threading crash and tooltip issues. Changed cursor.
Update 7.3: Fixed an issue which caused a System.OverflowException when listening to radio streams for extended periods with the seekbar enabled.
Update 7.4: Re-fixed the issue using a Bind.
Update 7.5: Now using file hashes to name images. Created rounding to reduce the number of images created. Fixed scaling on images.
Update 8: Fixed placeholder.Planned Updates and Fixes (in no particular order):
1. I barely knew what I was doing when I wrote this. I need to completely refactor/rewrite it from the ground up.
2. Potentially implement Spek for better image generation.Description:
This plugin displays the spectrogram for the currently playing song. It also works as a seekbar,
allowing you to select the location in the track by clicking on it.
The program works by sending a command to ffmpeg (a free-ware program located in the
Tooltips folder) which generates a spectrogram. Afterwards, the .png image
it generated is displayed by the plugin.
After the image has been generated once, it will be used for any future plays, meaning
that it will load almost instantly, with no CPU usage.
The Plugin:Installation Instructions:
1. With MusicBee off, extract the file located in the "Plugins" folder to your MusicBee Plugins directory.
2. Start MusicBee.
3. A message will appear telling you where to place the plugin's "Dependencies" folder; extract the whole folder there now.
4. In MusicBee navigate to Edit > Edit Preferences > Plugins. Ensure that "spectrogram-display" appears. Enable it, and hit Save.
5. Navigate to View > Arrange Panels...
6. Drag the "spectrogram-display" element from the "available elements" window to the "main panel" section to your desired position, for instance above the "now playing bar" element. Note: This is not the required location of the plugin, but it is HIGHLY RECOMMENDED that you position it here. Hit Save.
7. Drag the top of the Spectrogram window where you have placed it to the desired height.
8. Try playing a song. After a second or two of processing, the spectrogram should appear. You can seek through the song if desired within the spectrogram window.
9. See the first post of the plugin's thread on the MusicBee forum for instructions on using the plugin's built-in Configuration Panel and other important information.Using the Configuration Panel:
1. To open the configuration panel, go to Edit > Edit Preferences > Plugins, then locate "Spectrogram-Display" and click "Configure" or click on the header drop-down:
2. The settings are rather intuitive, but for further information on what they do, please go to the following link: https://ffmpeg.org/ffmpeg-filters.html#showspectrumpic
NOTE: Adding a .png file called "placeholder.png" in the Dependencies folder will allow the plugin to display an image of your choice while streams are being played.
The Configuration Panel: