I decided to try 96 kHz audio with the S.R.O. (Supermega Rumblic Organ), my slightly Aslan-like synth (it is not a tame device really), and found items which may be of interest:
1. At 96 kHz, schedtool definitely matters. Taking it out increased xruns a lot. I tried to figure out what was interfering via htop, but it was very unclear. So I'm keeping the schedtool for now. I could believe that if I reengineer for a zero-X default
setup (likely to happen in the future) this problem might go away, X and the desktop certainly do have lots of demands. I *think* the only big piece missing for me in this is keymapping, I use F-keys to switch patches, quite easy in both LXDE and MATE.
2. At 48 kHz, I could run stereo, i.e., all three Yoshimis' dual outputs combined by Jack separately, so each output of my FCA202 had a separate signal, with different separations as Yoshimi is prepared to do. But at 96 kHz I started to get rare xruns doing
this. Tried a number of things, didn't figure out why. So I tried using just one output of each Yoshimi and then having Jack copy them all to both outputs; xruns gone. Some of my patches -- especially strings-related -- are quite a lot improved by the shift
to 96 kHz, the audio detail at the high third of my 88 is much better. Not very surprising from a mathematical point of view of course. I don't use stereo output anyway, I play in ensemble and I need to leave some of the ambient audio thought-room for others,
so I'm leaving things as they are unless a solution arises for possible use in recording.
3. The Jack-internal MIDI ports are enormously more handy for portability, because since they retain the same Jack port names for any ALSA MIDI hardware, I can plug in any USB MIDI adapter or USB keyboard and expect things to work without getting into GUI
at all. So based on the input from excellent LAU folks, I decided to try an alsarawmidi slave driver via jack_control, thinking that perhaps I mightn't have to worry about the jitter at 4GHz; and lo and behold, all working well so far.
For any who may be interested, here is START-INITIAL (run at boot) and patch script START-SRO:
---- begin START-INITIAL, run at boot ----
#!/bin/bash
echo ''
echo 'Initiating environment...'
echo ''
nohup /home/jeb/startx11vnc.sh &
echo ''
echo 'Cleaning up old logs...'
echo ''
rm ~/.log/jack/jackdbus.log
rm ~/.log/a2j/a2j.log
rm ~/.log/lash/lash.log
echo ''
echo 'Starting jackd via dBus and configuring...'
echo ''
jack_control ds firewire
jack_control dps capture 0
jack_control dps playback 0
jack_control dps rate 96000
jack_control dps period 64
jack_control asd alsarawmidi
jack_control start
jack_control eps realtime true
jack_control eps realtime-priority 75
jack_control eps clock-source 1
/home/jeb/START-SRO &
---- begin START-SRO, run to start patch SRO ----
#!/bin/bash
# Stop any running audio elements
echo "Stop any running audio elements..."
killall -9 -w yoshimi fluidsynth zita-j2a aj-snapshot guitarix calfjackhost non-mixer rakarrack mididings lashd
killall -9 -w yoshimi fluidsynth zita-j2a aj-snapshot guitarix calfjackhost non-mixer rakarrack mididings lashd
# Remove all connections
# echo "Stopping a2j..."
# a2j_control stop
echo "Stopping Jackd to remove all connections..."
killall -9 -w jackdbus
killall -9 -w jackdbus
jack_control stop
echo "Starting Jackd..."
jack_control start
sleep 2
# Running a2j -- needful to use ALSA MIDI devices with
# zita-a2j, which uses the 'dummy' driver in Jack
# echo "Starting a2jmidid..."
# a2j_control ehw
# a2j_control start
# Start all relevant audio elements
echo "Start all relevant audio elements..."
nohup schedtool -R -p 90 -e mididings -f /home/jeb/Combine.py \
> /home/jeb/LOGS/Combine.log &
nohup schedtool -R -p 90 -e calfjackhost --client CalfSRO \
eq12:SRO ! reverb:SRO ! Compressor:SRO \
> /home/jeb/LOGS/calfjackhost-SRO.log &
nohup schedtool -R -p 90 -e yoshimi -N YoshSRO1 -j -l /home/jeb/YOSHIMI/SROpart1.xmz \
> /home/jeb/LOGS/Yoshimi-SRO1.log &
nohup schedtool -R -p 90 -e yoshimi -N YoshSRO2 -j -l /home/jeb/YOSHIMI/SROpart2.xmz \
> /home/jeb/LOGS/Yoshimi-SRO2.log &
nohup schedtool -R -p 90 -e yoshimi -N YoshSRO3 -j -l /home/jeb/YOSHIMI/SROpart3.xmz \
> /home/jeb/LOGS/Yoshimi-SRO3.log &
sleep 2
# And lastly, create jackd connections using aj-snapshot
echo "And lastly, create jackd connections using aj-snapshot..."
cp /home/jeb/AJSRO.xml /home/jeb/AJRunning.xml
nohup schedtool -R -p 90 -e aj-snapshot -d AJRunning.xml &