All pastes #631928 Raw Edit

Something

public text v1 · immutable
#631928 ·published 2007-07-24 13:52 UTC
rendered paste body
#!/bin/sh
#
# jacksetup.sh [version 1] 24/07/2007
#
# Damo's Realtime Audio Tweaker: 
#  Sick of pops and clicks in audio (jack) when you load cpu?
#  Sick of manually tweaking realtime priorities?
#  Sick of MIDI events losing synch?
#  Want XMMS (and all other audio stuff) to run through jack with 100% perfection?
#  Me too, I fiddled for a while, then came up with the following solution:
#
# Step 1: Make sure you are running Ingo patched realtime kernel
# Step 2: cat /proc/interrupts
#       Make sure your soundcard has unique IRQ
#       If s/c is sharing IRQ, you need to set module options
#       in /etc/modprobe.d/alsa-base
#       eg for intel ac97, add a line such as:
#                options intel8x0 irq=5
#       then reboot (or rmmod all soundcard modules and reload).
#       (5 should be a free IRQ)
#

########## Configuration ##########

# Note the IRQ of soundcard... set it here:
SOUNDCARD_IRQ=5

# Note the IRQ of rtc... set it here:
RTC_IRQ=8

######## End Configuration ########


# REALTIME AUDIO SCHEDULING:
# This will setup solid jack performance:

if [ ! -x "/usr/bin/chrt" ] ; then 
  gksudo apt-get install schedutils
fi 
TIMER=`pidof "posix_cpu_timer"`       
SCARD=`pidof "IRQ-${SOUNDCARD-IRQ}"`  
RTC=`pidof "IRQ-${RTC_IRQ}"`          # Vital settings:
gksudo "chrt -p 99 ${RTC}"            #  Sets realtime clock to REALTIME!!
gksudo "chrt -p 85 ${SCARD}"          #  Sets soundcard to near realtime
gksudo "renice -20 ${RTC}"            #  "
gksudo "renice -20 ${SCARD}"          #  "
gksudo "renice -20 ${TIMER}"          #  "
gksudo "killall -q esd"
qjackctl &
##### NEEDS TWEAKING TO MATCH QJACKCTL:
sleep 3                               #  Set jack to autostart, set this 1 second higher than qjackctl delay
##### END 
JACK=`pidof "jackd"`
chrt -p 70 ${JACK}                    #  Sets jack rt priority just below soundcard
gksudo "renice -20 ${JACK}"           #  "


# Name of favourite jack-enabled player:
PLAYER=xmms
OPTIONS=

${PLAYER} ${OPTIONS} &
sleep 1
chrt -p 65 `pidof ${PLAYER}`          #  Sets player priority below jack
gksudo "renice -20 `pidof ${PLAYER}`" #  "

# Enjoy solid audio performance, regardless of cpu load!
# You shouldnt get those ugly hard frame drops anymore
# If you get legitimate buffer drops (xruns will be reported by jack)
# it must be your jack buffer settings,
# set higher buffer...
#
# Damo