Я бы не стал использовать SoundMixer.computeSpectrum, так как он создает снимок всех звуков, даже тех что играют в соседней вкладке, вместо этого есть Sound#extract() + FFT и проблему безопасности снимает
extract не подойдёт. Смена треков происходит не во внешнем классе. Нужен именно SoundMixer. А слушать несколько вкладок кто будет?