Audio/AudioControl: Commit loads of long uncommited changes
[audiocontrol.git] / start.sh
1 #!/bin/sh
2
3 cd "`dirname "$0"`"
4
5 displaysize="`xdpyinfo | awk '/^  dimensions:/{print $2}'`"
6 displaywidth="${displaysize%x*}"
7 offset=`expr $displaywidth - 1920`
8
9 clients=""
10
11 move() {
12     local x
13     local y
14     local w
15     local h
16     local name
17     local winid
18     x=`expr $1 + $offset`
19     y=$2
20     w=$3
21     h=$4
22     name="$5"
23     winid=""
24     while [ -z "$winid" ]; do
25         winid=`xwininfo -name "$name" | awk '/^xwininfo:/{print $4}'`
26         [ -n "$winid" ] || sleep 1
27     done
28     ./winmove $winid $x $y $w $h
29 }
30
31 start() {
32     local x
33     local y
34     local w
35     local h
36     local name
37     local winid
38     x=$1
39     y=$2
40     w=$3
41     h=$4
42     name="$5"
43     shift; shift; shift; shift; shift
44     "$@" &
45     clients="$clients $!"
46     move $x $y $w $h "$name"
47 }
48
49 lsof -n | grep dev | grep -e snd -e dsp | awk '{print $2}' | xargs -r kill
50
51 # Make sure nothing is running
52 killall slgui
53 killall sooperlooper
54 killall meterbridge
55 killall qjackctl
56 killall jack-rack
57 killall alsamixer
58 killall jackminimix
59 killall jackd
60
61 amixer sset Master 80% on
62 amixer sset PCM 100% on
63 amixer sset Capture 50% on
64
65 start 0 25 496 100 "JACK Audio Connection Kit [(default)] Started." \
66     qjackctl
67
68 sooperlooper -l 1 -c 1 -t 300 &
69 clients="$clients $!"
70
71 cd loops
72 start 582 25 794 220 "SooperLooper" \
73     slgui
74 cd ..
75
76 # start 0 153 496 600 "JACK Rack (voice) - voice.rack" \
77 start 0 153 496 972 "JACK Rack (voice) - voice.rack" \
78     jack-rack -c 1 -s voice voice.rack
79
80 # start 0 781 496 344 "JACK Rack (guitar) - guitar.rack" \
81 #    jack-rack -c 1 -s guitar guitar.rack
82
83 start 502 25 74 210 "dpm meter" \
84     meterbridge -r 0 -t dpm -n meter alsa_pcm:capture_1 jack_rack_voice:out_1
85
86 x=`expr $offset + 1382`
87 xterm -fn 6x12 -bg black -fg white -cr white -geometry 88x18+${x}+25 +sb -title Mixer \
88     -e alsamixer -V all &
89 clients="$clients $!"
90
91 jackminimix -c 2 -p 9901 &
92 clients="$clients $!"
93
94 jackminimix -c 1 -p 9902 -n inputgain &
95 clients="$clients $!"
96
97 sleep 1
98
99 jack_connect alsa_pcm:capture_1 inputgain:in1_left
100 jack_connect inputgain:out_left sooperlooper:common_in_1
101 jack_connect sooperlooper:common_out_1 minimixer:in1_left
102 jack_connect sooperlooper:common_out_1 minimixer:in1_right
103 jack_connect alsa_pcm:capture_2 jack_rack_voice:in_1
104 jack_connect jack_rack_voice:out_1 minimixer:in2_left
105 jack_connect jack_rack_voice:out_1 minimixer:in2_right
106 jack_connect minimixer:out_left alsa_pcm:playback_1
107 jack_connect minimixer:out_right alsa_pcm:playback_2
108
109 x=`expr $offset + 502`
110 xterm -fn '-dejavu-dejavu sans mono-medium-r-normal--*-260-75-75-m-0-iso10646-1' \
111     -bg black -fg white -cr white -geometry 88x22+${x}+273 +sb \
112     -title "Audio Controller" # -e /bin/sh -c "while ./audiocontroller; do true; done"
113
114 kill $clients 2>/dev/null
115 killall jackd 2>/dev/null