1 // Play the @!#%'n Tuba with your MIDI keyboard!
3 // Use the keyboard's octave button to adjust the octave, this one matches the
4 // power-on default of a MIDISTART-3.
6 // NOTE: currently only works with ALSA on Linux, and then like this:
8 // Find your MIDI keyboard in this list. Assuming it is client 20, port 0,
10 // ./xonotic -sndseqin 20:0 +exec input-tuba.cfg
11 // Then, grab a Tuba, then play notes on your MIDI keyboard!
13 // If you have no keyboard input, you can map the tuba notes to your keyboard:
15 // for US keyboard layout, and
17 // for German keyboard layout
19 alias +tuba_l "+moveleft; +tuba_$*"
20 alias -tuba_l "-moveleft; -tuba_$*"
21 alias +tuba_r "+moveright; +tuba_$*"
22 alias -tuba_r "-moveright; -tuba_$*"
23 alias +tuba_b "+back; +tuba_$*"
24 alias -tuba_b "-back; -tuba_$*"
25 alias +tuba_f "+forward; +tuba_$*"
26 alias -tuba_f "-forward; -tuba_$*"
27 alias +tuba_c "+crouch; +tuba_$*"
28 alias -tuba_c "-crouch; -tuba_$*"
29 alias +tuba_j "+jump; +tuba_$*"
30 alias -tuba_j "-jump; -tuba_$*"
33 alias +tuba_2 "+fire2"
34 alias -tuba_2 "-fire2"
35 alias +tuba_! "echo cannot play this note, sorry"
40 set tuba_note_42 "l b c 1"
41 set tuba_note_43 "b c 1"
42 set tuba_note_44 "r b c 1"
45 set tuba_note_47 "f r c 1"
46 set tuba_note_48 "c 1"
47 set tuba_note_49 "l b c 2"
48 set tuba_note_50 "r c 1"
49 set tuba_note_51 "f l c 1"
50 set tuba_note_52 "f c 1"
51 set tuba_note_53 "l c 1"
52 set tuba_note_54 "l b 1"
53 set tuba_note_55 "b 1"
54 set tuba_note_56 "b r 1"
55 set tuba_note_57 "r c 2"
56 set tuba_note_58 "f l c 2"
57 set tuba_note_59 "f r 1"
59 set tuba_note_61 "l b 2"
60 set tuba_note_62 "r 1"
61 set tuba_note_63 "f l 1"
62 set tuba_note_64 "f 1"
63 set tuba_note_65 "l 1"
64 set tuba_note_66 "f r 2"
66 set tuba_note_68 "b r j 1"
67 set tuba_note_69 "r 2"
68 set tuba_note_70 "f l 2"
69 set tuba_note_71 "f 2"
70 set tuba_note_72 "l 2"
71 set tuba_note_73 "l b j 2"
72 set tuba_note_74 "r j 1"
73 set tuba_note_75 "f l j 1"
74 set tuba_note_76 "f j 1"
75 set tuba_note_77 "l j 1"
76 set tuba_note_78 "f r j 2"
77 set tuba_note_79 "j 2"
79 set tuba_note_81 "r j 2"
80 set tuba_note_82 "f l j 2"
81 set tuba_note_83 "f j 2"
82 set tuba_note_84 "l j 2"
85 bind MIDINOTE42 "+tuba 42"
86 bind MIDINOTE43 "+tuba 43"
87 bind MIDINOTE44 "+tuba 44"
88 bind MIDINOTE45 "+tuba 45"
89 bind MIDINOTE46 "+tuba 46"
90 bind MIDINOTE47 "+tuba 47"
91 bind MIDINOTE48 "+tuba 48"
92 bind MIDINOTE49 "+tuba 49"
93 bind MIDINOTE50 "+tuba 50"
94 bind MIDINOTE51 "+tuba 51"
95 bind MIDINOTE52 "+tuba 52"
96 bind MIDINOTE53 "+tuba 53"
97 bind MIDINOTE54 "+tuba 54"
98 bind MIDINOTE55 "+tuba 55"
99 bind MIDINOTE56 "+tuba 56"
100 bind MIDINOTE57 "+tuba 57"
101 bind MIDINOTE58 "+tuba 58"
102 bind MIDINOTE59 "+tuba 59"
103 bind MIDINOTE60 "+tuba 60"
104 bind MIDINOTE61 "+tuba 61"
105 bind MIDINOTE62 "+tuba 62"
106 bind MIDINOTE63 "+tuba 63"
107 bind MIDINOTE64 "+tuba 64"
108 bind MIDINOTE65 "+tuba 65"
109 bind MIDINOTE66 "+tuba 66"
110 bind MIDINOTE67 "+tuba 67"
111 bind MIDINOTE68 "+tuba 68"
112 bind MIDINOTE69 "+tuba 69"
113 bind MIDINOTE70 "+tuba 70"
114 bind MIDINOTE71 "+tuba 71"
115 bind MIDINOTE72 "+tuba 72"
116 bind MIDINOTE73 "+tuba 73"
117 bind MIDINOTE74 "+tuba 74"
118 bind MIDINOTE75 "+tuba 75"
119 bind MIDINOTE76 "+tuba 76"
120 bind MIDINOTE77 "+tuba 77"
121 bind MIDINOTE78 "+tuba 78"
122 bind MIDINOTE79 "+tuba 79"
123 bind MIDINOTE80 "+tuba 80"
124 bind MIDINOTE81 "+tuba 81"
125 bind MIDINOTE82 "+tuba 82"
126 bind MIDINOTE83 "+tuba 83"
127 bind MIDINOTE84 "+tuba 84"
129 // german keyboard layout for tuba
130 in_bind 3 < "+tuba 48"
131 in_bind 3 a "+tuba 49"
132 in_bind 3 y "+tuba 50"
133 in_bind 3 s "+tuba 51"
134 in_bind 3 x "+tuba 52"
135 in_bind 3 c "+tuba 53"
136 in_bind 3 f "+tuba 54"
137 in_bind 3 v "+tuba 55"
138 in_bind 3 g "+tuba 56"
139 in_bind 3 b "+tuba 57"
140 in_bind 3 h "+tuba 58"
141 in_bind 3 n "+tuba 59"
142 in_bind 3 m "+tuba 60"
143 in_bind 3 k "+tuba 61"
144 in_bind 3 , "+tuba 62"
145 in_bind 3 l "+tuba 63"
146 in_bind 3 . "+tuba 64"
147 in_bind 3 - "+tuba 65"
148 in_bind 3 ä "+tuba 66"
149 in_bind 3 shift "+tuba 67"
150 in_bind 3 # "+tuba 68"
151 in_bind 3 q "+tuba 60"
152 in_bind 3 2 "+tuba 61"
153 in_bind 3 w "+tuba 62"
154 in_bind 3 3 "+tuba 63"
155 in_bind 3 e "+tuba 64"
156 in_bind 3 r "+tuba 65"
157 in_bind 3 5 "+tuba 66"
158 in_bind 3 t "+tuba 67"
159 in_bind 3 6 "+tuba 68"
160 in_bind 3 z "+tuba 69"
161 in_bind 3 7 "+tuba 70"
162 in_bind 3 u "+tuba 71"
163 in_bind 3 i "+tuba 72"
164 in_bind 3 9 "+tuba 73"
165 in_bind 3 o "+tuba 74"
166 in_bind 3 0 "+tuba 75"
167 in_bind 3 p "+tuba 76"
168 in_bind 3 ü "+tuba 77"
169 in_bind 3 ' "+tuba 78"
170 in_bind 3 + "+tuba 79"
171 in_bind 3 backspace "+tuba 80"
172 in_bind 3 enter "+tuba 81"
174 // US keyboard layout for tuba
175 in_bind 4 z "+tuba 48"
176 in_bind 4 s "+tuba 49"
177 in_bind 4 x "+tuba 50"
178 in_bind 4 d "+tuba 51"
179 in_bind 4 c "+tuba 52"
180 in_bind 4 v "+tuba 53"
181 in_bind 4 g "+tuba 54"
182 in_bind 4 b "+tuba 55"
183 in_bind 4 h "+tuba 56"
184 in_bind 4 n "+tuba 57"
185 in_bind 4 j "+tuba 58"
186 in_bind 4 m "+tuba 59"
187 in_bind 4 , "+tuba 60"
188 in_bind 4 l "+tuba 61"
189 in_bind 4 . "+tuba 62"
190 in_bind 4 ";" "+tuba 63"
191 in_bind 4 / "+tuba 64"
192 in_bind 4 shift "+tuba 65"
193 in_bind 4 "\\" "+tuba 66"
194 in_bind 4 q "+tuba 60"
195 in_bind 4 2 "+tuba 61"
196 in_bind 4 w "+tuba 62"
197 in_bind 4 3 "+tuba 63"
198 in_bind 4 e "+tuba 64"
199 in_bind 4 r "+tuba 65"
200 in_bind 4 5 "+tuba 66"
201 in_bind 4 t "+tuba 67"
202 in_bind 4 6 "+tuba 68"
203 in_bind 4 y "+tuba 69"
204 in_bind 4 7 "+tuba 70"
205 in_bind 4 u "+tuba 71"
206 in_bind 4 i "+tuba 72"
207 in_bind 4 9 "+tuba 73"
208 in_bind 4 o "+tuba 74"
209 in_bind 4 0 "+tuba 75"
210 in_bind 4 p "+tuba 76"
211 in_bind 4 [ "+tuba 77"
212 in_bind 4 = "+tuba 78"
213 in_bind 4 ] "+tuba 79"
214 in_bind 4 backspace "+tuba 80"
215 in_bind 4 enter "+tuba 81"
217 // US dvorak layout for tuba
218 in_bind 5 ";" "+tuba 48"
219 in_bind 5 o "+tuba 49"
220 in_bind 5 q "+tuba 50"
221 in_bind 5 e "+tuba 51"
222 in_bind 5 j "+tuba 52"
223 in_bind 5 k "+tuba 53"
224 in_bind 5 i "+tuba 54"
225 in_bind 5 x "+tuba 55"
226 in_bind 5 d "+tuba 56"
227 in_bind 5 b "+tuba 57"
228 in_bind 5 h "+tuba 58"
229 in_bind 5 m "+tuba 59"
230 in_bind 5 w "+tuba 60"
231 in_bind 5 n "+tuba 61"
232 in_bind 5 v "+tuba 62"
233 in_bind 5 z "+tuba 63"
234 in_bind 5 - "+tuba 64"
235 in_bind 5 shift "+tuba 65"
236 in_bind 5 "\\" "+tuba 66"
237 in_bind 5 "'" "+tuba 60"
238 in_bind 5 2 "+tuba 61"
239 in_bind 5 , "+tuba 62"
240 in_bind 5 3 "+tuba 63"
241 in_bind 5 . "+tuba 64"
242 in_bind 5 p "+tuba 65"
243 in_bind 5 5 "+tuba 66"
244 in_bind 5 y "+tuba 67"
245 in_bind 5 6 "+tuba 68"
246 in_bind 5 f "+tuba 69"
247 in_bind 5 7 "+tuba 70"
248 in_bind 5 g "+tuba 71"
249 in_bind 5 c "+tuba 72"
250 in_bind 5 9 "+tuba 73"
251 in_bind 5 r "+tuba 74"
252 in_bind 5 0 "+tuba 75"
253 in_bind 5 l "+tuba 76"
254 in_bind 5 [ "+tuba 77"
255 in_bind 5 "/" "+tuba 78"
256 in_bind 5 ] "+tuba 79"
257 in_bind 5 backspace "+tuba 80"
258 in_bind 5 enter "+tuba 81"
262 alias +tuba_note "+tuba_${$1}"
263 alias -tuba_note "-tuba_${$1}"
264 alias tuba_start "+tuba_note tuba_note_$tuba_note"
265 alias tuba_stop "-tuba_note tuba_note_$tuba_note; alias tuba_stop_$tuba_note \"\"; set tuba_note \"\""
266 alias +tuba "tuba_stop; set tuba_note $1; tuba_start; alias tuba_stop_$1 tuba_stop"
267 alias -tuba "tuba_stop_$1"