dweymouth / supersonic

A lightweight and full-featured cross-platform desktop client for self-hosted music servers
GNU General Public License v3.0
939 stars 46 forks source link

Visualizer Integration (eg. Milkdrop / ProjectM) #464

Open starfishpatkhoo opened 3 months ago

starfishpatkhoo commented 3 months ago

Hi guys, I'm just curious and wondering what your thoughts are about integrating a visualizer screen as an option (like part of the now playing screen)..

https://github.com/projectM-visualizer/projectm

^_^

dweymouth commented 3 months ago

This would be cool but there are two obstacles to adding existing visualization libraries like this:

  1. ProjectM and most existing visualizers analyze the audio data directly - because of the MPV backend this isn't possible and we only have access to audio stats from the FFMpeg astats filter.
  2. It uses OpenGL to render, which means it can only be shown in its own window (not a big deal since the peak meter already is like this) but it won't be able to be made part of the main app window.
starfishpatkhoo commented 3 months ago

Thank you so much for the explanation! I learned something new. As a result, I have been experimenting with showwaves in ffmpeg and ffplay.. ha ha ha! I saw your issue in the projectM repo..

Indeed it seems complex with many moving parts, so projectM may not be possible, and looking closer into ffmpeg's own, but less capable, visualisations may be the best way forward for such kinds of things.. ^_^