6a15566970dedd338527dcd137b9e62aece4ce33
[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 lsof -n | grep dev | grep -e snd -e dsp | awk '{print $2}' | xargs -r kill
51
52 # Make sure nothing is running
53 killall slgui
54 killall sooperlooper
55 killall meterbridge
56 killall qjackctl
57 killall jack-rack
58 killall alsamixer
59 killall jackminimix
60 killall jackd
61 killall audiocontroller
62 killall alsaplayer
63
64 amixer sset Master 100% on
65 amixer sset PCM 100% on
66 amixer sset Capture 50% on
67 amixer sset 'Capture Mux' 0,1
68
69 start 0 25 496 100 "JACK Audio Connection Kit [(default)] Started." \
70     qjackctl
71
72 sooperlooper -l 1 -c 2 -t 600 &
73 clients="$clients $!"
74
75 cd loops
76 start 582 25 794 210 "SooperLooper" \
77     slgui
78 cd ..
79
80 cd conf
81 start 0 153 496 428 "JACK Rack (voice) - voice.rack" \
82     jack-rack -c 1 -s voice voice.rack
83 cd ..
84
85 start 88 609 408 98 "AlsaPlayer" \
86     alsaplayer -r -l 0 -d sooperlooper:common_in_1,sooperlooper:common_in_2
87 clients="$clients $!"
88 move 0 735 496 390 "Queue"
89 alsaplayer --stop
90 alsaplayer --volume .25
91
92
93 start 502 25 74 210 "dpm meter" \
94     meterbridge -r 0 -t dpm -n meter alsa_pcm:capture_1 jack_rack_voice:out_1
95
96 x=`expr $offset + 1382`
97 xterm -fn 6x12 -bg black -fg white -cr white -geometry 88x17+${x}+25 +sb -title Mixer \
98     -e alsamixer -V all &
99 clients="$clients $!"
100
101 jackminimix -c 2 -p 9901 &
102 clients="$clients $!"
103
104 jackminimix -c 1 -p 9902 -n inputgain &
105 clients="$clients $!"
106
107 sleep 1
108
109 jack_connect alsa_pcm:capture_1 inputgain:in1_left
110 jack_connect inputgain:out_left sooperlooper:common_in_1
111 jack_connect inputgain:out_left sooperlooper:common_in_2
112 jack_connect sooperlooper:common_out_1 minimixer:in1_left
113 jack_connect sooperlooper:common_out_2 minimixer:in1_right
114 jack_connect alsa_pcm:capture_2 jack_rack_voice:in_1
115 jack_connect jack_rack_voice:out_1 minimixer:in2_left
116 jack_connect jack_rack_voice:out_1 minimixer:in2_right
117 jack_connect minimixer:out_left alsa_pcm:playback_1
118 jack_connect minimixer:out_right alsa_pcm:playback_2
119
120 x=`expr $offset + 502`
121 xterm -fn '-dejavu-dejavu sans mono-medium-r-normal--*-260-75-75-m-0-iso10646-1' \
122     -bg black -fg white -cr white -geometry 88x22+${x}+273 +sb \
123     -title "Audio Controller" -e /bin/sh -c "while ./audiocontroller; do true; done"
124
125 kill $clients 2>/dev/null
126 killall jackd 2>/dev/null