TeamRizu / OutFox

The Bug Reporting Repository for OutFox LTS 0.4, Alpha V and Steam Early Access Builds
https://projectoutfox.com
Apache License 2.0
184 stars 3 forks source link

[Feature Request] ProjectM visualizer integrated as random backgrounds. #93

Closed Level99OCR closed 3 years ago

Level99OCR commented 4 years ago

As of now, the options for backgrounds consist of lua scripted bg animations, prerendered background videos, song-specific supplied background videos, static background images, or none. ProjectM is an open source visualizer based on the legacy of milkdrop, a famous visualizer that originally came bundled with winamp. Allowing for a huge amount of user-created visualization presets, it would be very nice to have a dynamically rendered background visualization to go along with songs instead of having to settle for out of sync random background videos, the smaller pool of lua bganimations, or the static background images.

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

Source code is above, there are already standalone packages for multiple OSes.

Describe alternatives you've considered

For the past few years I've MacGuyver'd a way of making this work involving Milkdrop/ProjectM, OBS, and Stepmania Supplying a prerendered video of a specific color and having that be the only video in the randomMovies folder allowed me to control the background color without manually removing song bg images. Then using the chromakey filter in OBS and adding the visualizer as a lower layer, and further setting that visualizer to use the loopback audio input, I was able to achieve the proof of concept.

The problems with this are numerous, however. First, the music is always slightly ahead of the visualization since it uses the audio loopback. Therefore the visualizer response is never completely in sync with the audio. Furthermore, since it relies on chroma-key, whatever color is specified ends up having a bleed effect. For example, depending on the noteskin selection, some notes end up with the identified alpha and show the visualizer through them. It also makes it extremely difficult to balance the contrast and brightness of the note field with the background. Since it uses OBS, it exponentially increases ram and processing requirements in order to properly display the full output. It also requires a lot of finagling to tab through if someone accidentally uses the mouse on the OBS projector for displaying.

Having the ProjectM integrated would resolve most if not all of these issues.

Additional context

I would be happy to provide images or videos of the proof of concept to show what I am suggesting. Thank you very much for your consideration.

ListenerJubatus commented 4 years ago

At some point I was actually suggesting either this or trying to modernize the old Winamp AVS code to work into it.