Yes. It depends on both how the alsa hardware driver is setup. If the alsa driver can support sub-streams then you can avoid using pulseaudio. But only a handful of applications are pulseaudio-stubborn(such as firefox). IIRC there's "asnd-loop" devices so that you can have multiple alsa clients("applications"), and if you want to use JACK+ALSA (without pulseaudio) but still want "alsa-clients" to connect to JACK then you will need to use alsa-plugin-jack.
the alsa-plugin-jack setting allows multiple alsa-clients to connect to JACK when jack is holding onto the alsa device.. and it should be possible to create a softvol (I never bothered to figure that how, so if someone wants to add they can)
/usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_pcm_jack.so < make sure you have this module
(path may vary by distribution -- should be included with "alsa" or "alsa-plugin" in a particular package name -- It is an "alsa plugin" rather a jack plugin, even though the audio routing now becomes {alsa-plugin-jack}->Jack->Alsa for any alsa-clients)
~/.asoundrc
"
pcm.rawjack {
type jack
playback_ports {
0 system:playback_1
1 system:playback_2
}
capture_ports {
0 system:capture_1
1 system:capture_2
}
}
pcm.jack {
type plug
slave { pcm "rawjack" }
hint {
description "JACK Audio Connection Kit"
}
}
pcm.!default {
type plug
slave { pcm "rawjack" }
}
"
I haven't found any improvement over pulseaudio, but the configuration is also documented from jackaudio's site http://jackaudio.org/faq/routing_alsa.html
you'll find the other method with alsa loop devices more difficult as that may require to do scripting work.