Audio/AudioControl: Lots of fixes
[audiocontrol.git] / start.sh
1 #!/bin/sh
2
3 cd "`dirname "$0"`"
4 base="`pwd`"
5
6 displaysize="`xdpyinfo | awk '/^  dimensions:/{print $2}'`"
7 displaywidth="${displaysize%x*}"
8 offset=`expr $displaywidth - 1920`
9
10 clients=""
11
12 move() {
13     local x
14     local y
15     local w
16     local h
17     local name
18     local winid
19     x=`expr $1 + $offset`
20     y=$2
21     w=$3
22     h=$4
23     name="$5"
24     winid=""
25     while [ -z "$winid" ]; do
26         winid=`xwininfo -name "$name" | awk '/^xwininfo:/{print $4}'`
27         [ -n "$winid" ] || sleep 1
28     done
29     $base/winmove $winid $x $y $w $h
30 }
31
32 start() {
33     local x
34     local y
35     local w
36     local h
37     local name
38     local winid
39     x=$1
40     y=$2
41     w=$3
42     h=$4
43     name="$5"
44     shift; shift; shift; shift; shift
45     "$@" &
46     clients="$clients $!"
47     move $x $y $w $h "$name"
48 }
49
50 dcop amarok MainApplication-Interface quit
51 sleep 1
52 lsof -n | grep dev | grep -e snd -e dsp | awk '{print $2}' | xargs -r kill
53 sleep 1
54
55 # Make sure nothing is running
56 pidof -x -o $$ start.sh | xargs -r kill
57 killall sooperlooper
58 killall slgui
59 killall meterbridge
60 killall qjackctl
61 killall jack-rack
62 killall alsamixer
63 killall jackminimix
64 killall jackd
65 killall audiocontroller
66 killall alsaplayer
67
68 amixer sset Master 67%,100% on
69 amixer sset PCM 100% on
70 amixer sset Capture 50% on
71 amixer sset 'Capture Mux' 1,0
72
73 start 0 25 496 100 "JACK Audio Connection Kit [(default)] Started." \
74     qjackctl
75
76 sooperlooper -l 1 -c 2 -t 600 &
77 clients="$clients $!"
78 sleep 1
79
80 cd loops
81 start 582 25 794 210 "SooperLooper" \
82     slgui
83 cd ..
84
85 cd conf
86 start 0 153 496 428 "JACK Rack (voice) - voice.rack" \
87     jack-rack -c 1 -s voice voice.rack
88 cd ..
89
90 start 0 609 496 516 "AlsaPlayer" \
91     alsaplayer -r -l 0 -d sooperlooper:common_in_1,sooperlooper:common_in_2
92 clients="$clients $!"
93 #move 0 735 496 390 "Queue"
94 alsaplayer --stop
95 alsaplayer --volume .25
96
97
98 start 502 25 74 210 "dpm meter" \
99     meterbridge -r 0 -t dpm -n meter alsa_pcm:capture_2 jack_rack_voice:out_1
100
101 x=`expr $offset + 1382`
102 xterm -fn 6x12 -bg black -fg white -cr white -geometry 88x17+${x}+25 +sb -title Mixer \
103     -e alsamixer -V all &
104 clients="$clients $!"
105
106 jackminimix -c 2 -p 9901 -n master &
107 clients="$clients $!"
108 sleep 1
109
110 jackminimix -c 1 -p 9902 -n inputgain &
111 clients="$clients $!"
112 sleep 1
113
114 jackminimix -c 2 -p 9903 -n monitor &
115 clients="$clients $!"
116 sleep 1
117
118 jack_connect alsa_pcm:capture_2 inputgain:in1_left
119 jack_connect inputgain:out_left sooperlooper:common_in_1
120 jack_connect inputgain:out_left sooperlooper:common_in_2
121 jack_connect sooperlooper:common_out_1 master:in1_left
122 jack_connect sooperlooper:common_out_2 master:in1_left
123 jack_connect sooperlooper:common_out_1 monitor:in1_left
124 jack_connect sooperlooper:common_out_2 monitor:in1_left
125 jack_connect alsa_pcm:capture_1 jack_rack_voice:in_1
126 jack_connect jack_rack_voice:out_1 master:in2_left
127 jack_connect jack_rack_voice:out_1 monitor:in2_left
128 jack_connect master:out_left system:playback_2
129 jack_connect monitor:out_left system:playback_1
130
131 x=`expr $offset + 502`
132 xterm -fn '-dejavu-dejavu sans mono-medium-r-normal--*-260-75-75-m-0-iso10646-1' \
133     -bg black -fg white -cr white -geometry 88x22+${x}+273 +sb \
134     -title "Audio Controller" -e /bin/sh -c "while ./audiocontroller; do true; done"
135
136 kill $clients 2>/dev/null
137 killall jackd 2>/dev/null