There was some discussion last week about how to stream music into vrchat. I found that while plain icecast mp3 streams don't work, you can live-transcode an icecast stream into RTMP with ffmpeg pretty easily, which pipes into nginx-rtmp (or other streaming services like twitch/youtube with rtmp input), which you can then play in vrchat's stream player as an HLS stream. Example with r/a/dio:

$ ffmpeg -i https://stream.r-a-d.io/main.mp3 -filter_complex "[0:a]showspectrum=s=hd480:slide=scroll:mode=combined:color=rainbow:scale=log,format=yuv420p[v]" -map "[v]" -map 0:a -c:v libx264 -preset ultrafast -maxrate 3000k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmp://your-nginx-rtmp-server-here

Then plug in your hls url into the stream player in vrchat. Here I'm just using ffmpeg to generate a spectrogram of the playing audio, but you could other stuff a phase graph, e.g. https://lukaprincic.si/development-log/ffmpeg-audio-visualization-tricks . With some effort, you could read the spectrogram output in shaders and have synchronized visual effects in the world, light shows and such.