[LAU] 96 kHz -- a bottleneck somewhere

Jonathan E Brickman jeb at ponderworthy.com
Sat Apr 26 17:23:07 UTC 2014


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 &

--
Jonathan E. Brickman
Ponderworthy Music | jeb at ponderworthy.com<mailto:jeb at ponderworthy.com> | (785)233-9977 | http://ponderworthy.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxaudio.org/pipermail/linux-audio-user/attachments/20140426/46d0152f/attachment.html>


More information about the Linux-audio-user mailing list