Using the audioWave node you can input a sound file and get a single output. This output I fed into a setRange node to increase its range (Normal range from output tends to be around min 0.4 max 0.7 so I scaled the range to 1- 100). Now you can work with the output. So I created a curve with 100 cvs which I converted to a softbody, ran a runtime expression through the particle position in Y and particleId based on the setRange output, then duplicated the rig as far as I liked with some offset on each curve. It would be better if the audioWave had several outputs.