c5c68a50d4473c212820a8152f055e6c9b8a61ed
[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
62 amixer sset Master 80% on
63 amixer sset PCM 100% on
64 amixer sset Capture 50% on
65
66 start 0 25 496 100 "JACK Audio Connection Kit [(default)] Started." \
67     qjackctl
68
69 sooperlooper -l 1 -c 1 -t 300 &
70 clients="$clients $!"
71
72 cd loops
73 start 582 25 794 220 "SooperLooper" \
74     slgui
75 cd ..
76
77 cd conf
78 # start 0 153 496 600 "JACK Rack (voice) - voice.rack" \
79 start 0 153 496 972 "JACK Rack (voice) - voice.rack" \
80     jack-rack -c 1 -s voice voice.rack
81
82 # start 0 781 496 344 "JACK Rack (guitar) - guitar.rack" \
83 #    jack-rack -c 1 -s guitar guitar.rack
84 cd ..
85
86 start 502 25 74 210 "dpm meter" \
87     meterbridge -r 0 -t dpm -n meter alsa_pcm:capture_1 jack_rack_voice:out_1
88
89 x=`expr $offset + 1382`
90 xterm -fn 6x12 -bg black -fg white -cr white -geometry 88x18+${x}+25 +sb -title Mixer \
91     -e alsamixer -V all &
92 clients="$clients $!"
93
94 jackminimix -c 2 -p 9901 &
95 clients="$clients $!"
96
97 jackminimix -c 1 -p 9902 -n inputgain &
98 clients="$clients $!"
99
100 sleep 1
101
102 jack_connect alsa_pcm:capture_1 inputgain:in1_left
103 jack_connect inputgain:out_left sooperlooper:common_in_1
104 jack_connect sooperlooper:common_out_1 minimixer:in1_left
105 jack_connect sooperlooper:common_out_1 minimixer:in1_right
106 jack_connect alsa_pcm:capture_2 jack_rack_voice:in_1
107 jack_connect jack_rack_voice:out_1 minimixer:in2_left
108 jack_connect jack_rack_voice:out_1 minimixer:in2_right
109 jack_connect minimixer:out_left alsa_pcm:playback_1
110 jack_connect minimixer:out_right alsa_pcm:playback_2
111
112 x=`expr $offset + 502`
113 xterm -fn '-dejavu-dejavu sans mono-medium-r-normal--*-260-75-75-m-0-iso10646-1' \
114     -bg black -fg white -cr white -geometry 88x22+${x}+273 +sb \
115     -title "Audio Controller" -e /bin/sh -c "while ./audiocontroller; do true; done"
116
117 kill $clients 2>/dev/null
118 killall jackd 2>/dev/null