Errors I encountered
From ArchWiki
I (jonathantan86) am not really an expert in this thing but I'll just document problems I've found and how I solved them. This page is about the ALSA with oss2jack method from Allow multiple programs to play sound at once.
Problems installing fusd-kor
/.../fusd-kor/src/fusd-kor-1.10-11/kfusd/kfusd.c:181: error: 'i' undeclared here (not in a function)
Edit this file. Go to line 181 and change i to "i". You cannot rerun makepkg because that would just reinflate the .tar.gz, so from the root folder (the one with a makefile) run make and sudo make install. This will bypass the package manager, so fusd-kor will not appear in the list of packages installed. So when you install oss2jack, you'll have to pass the -d switch to bypass dependency checks.
If you don't see this compile error you don't have to do anything. :-)
Incorrect udev .rules
Inside /etc/udev/rules.d/, you should have a file named fusd.rules or similar. Inspect this file. It should contain:
SUBSYSTEM="fusd", NAME="fusd/%k", GROUP="audio", MODE="0666"
Be careful...there was one version of the file that had == instead of =, so the file didn't parse correctly.
JACK does not start up correctly
I've found that the only way to get JACK and oss2jack working reliably is to add *only* jack-audio-connection-kit in the DAEMONS array in rc.conf, and nothing else. Don't add kfusd to the modules list or oss2jack to the daemons list. Then, in your rc.local, add:
modprobe kfusd oss2jack &> /dev/null &
That worked for me. Programs like Hydrogen don't work with the OSS emulation that oss2jack provides, so they have to use the JACK engine.
To be able to run JACK as normal non-root user, do the following: - add user to group that will have realtime privileges. You can create one or use the audio group (but beware that user will be able to run any program with realtime privileges). Here we create group called realtime. As root run
groupadd realtime
Then also as root edit /etc/security/limits.conf and add following at the end of file:
@realtime - rtprio 65 @realtime - nice -10 @realtime - memlock 40000
Settings are explained at the beginning of the limits.conf file.
Now you should be able to run JACK as normal user.