Sorry! ;D To try and say it in a simpler way, if you’re doing any (soft) real-time task your code has a deadline to meet. If you’re doing a 60 frames per second game, to not miss a frame your code has to complete what it’s doing each frame in lower than (1/60 sec) ~16ms. If the GC kicks in then the time it takes and the time your code takes must be lower than ~16ms. In fact, in a multi-process system you almost certainly can’t take the full 16ms.
Audio with something like JACK processes in a callback into Java at maybe more like 300 or 600 frames per second. And missed deadlines are a lot more noticeable in audio. Therefore you’re looking at a situation where your code (and possibly GC) has to guarantee to run in less than a few ms. If Shenandoah is working well for the higher framerates of audio, then it should also work well for a 60fps game.