So after messing around with the BASS_WASAPI library I managed to get it working kinda.
Ideally I would have nothing to start with, and using sf::SoundRecorder I could select either an input channel to record from or an output channel to record from. You could get a list of active channels from GetChannelList()
The way it is now (I think) is that it records from the default active recording channel.
Then I would make a customized sf::SoundRecorder and draw graphics from the FFT data in OnProcessSamples().
This is for a plugin I'm making for a server in which the world shakes according to the bass on the song that plays on the server.