Finally got around to messing with the new AudioAnalyzer, AudioPlayer, And Wire’s and threw this together within 2 hours or so for anyone wondering you can make this by console only atm as its not possible to make within the explorer so you’d set it up in console like so:
local AudioPlayer = Instance.new("AudioPlayer")
local AudioAnalyzer = Instance.new("AudioAnalyzer")
local Wire = Instance.new("Wire")
Wire.SourceInstance = AudioPlayer
Wire.TargetInstance = AudioAnalyzer
AudioPlayer.Parent = workspace
AudioAnalyzer.Parent = AudioPlayer
Wire.Parent = AudioPlayer
Then in a local script you would take any array of parts or frames and align them to the AudioAnalyzer’s spectrogram with :GetSpectrogram()
You need to link a AudioDeviceOutput. Funnily enough, you cant use a wire to split an audio stream, so really you should just play the audio in SoundService using a Sound instance.
If you insist on only using the new audio API though, you can wire the AudioPlayer into an AudioEmitter, create two AudioListener s that overlap the emitter, and separately wire them into the AudioAnalyzer, and AudioOutputDevice.