How to optimize sound input for audio reactive systems?

Hi all,

I have attached a project file I’ve been working on and was looking for a ways to optimize my system. The way I have it set up right now is that I would play music off of my device’s speakers and receive the sound through my microphone to drive the ramp TOP parameters. Obviously this is not optimal as my visuals would look different at different volumes which is not my goal.

Is there a way to make it so that my ‘audiodevin1’ CHOP input recieves sound information directly from my drivers to make the audio reactivity feel more “instant”?

Would be curious to see how you guys would go about making my network more efficient FPS wise as well :slight_smile:

Cheers
fractal noodle help.toe (128 KB)

One option is to play audio within TouchDesigner. If you need to use a separate program Dante Via allows you to route audio between applications on your computer, it’s about $40

What do you mean by this exactly? Loading individual files is not exactly optimal as I can’t hear them at the same time as I play my visual (+ it removes a lot of the VJ potential of my setup).

With VB-Cable, Voicemeeter or Banana from https://www.vb-audio.com/ you can route internally audio from your player to TouchDesigner.

Trying to make it short:
Get an ASIO enabled device (sound card) to reduce latency.
Maybe use some compression on the audio input to keep levels in a range that you want. Keep in mind that compression is losing dynamics, so essentially you lose information that might be interesting to visualize.
A simple system to just calibrate your input volume with a constant and just thinking about reasonable ways to visualize low volumes might be a better route.
Try to look up more on audio feature analysis. The RMS of an audio signal is a very crude approximation to ‘loudness’. LUFS, prefiltering, spectral energy are all good starting points. There is a ton of literature. Touch designer might not be the best piece of software to extract audio information in a more advanced way. (think max/MSP -> OSC ->TD). Good starting pionts in max might be the zsa.descriptors and the mubu package.
Here are two additional links that might be helpful.
github.com/hrtlacek/td_mfcc
recherche.ircam.fr/anasyn/peeter … atures.pdf

cheers

PS: i didn’t look at your toe file, apologies if i got something wrong