// Play the @!#%'n Tuba with your MIDI keyboard! // // Use the keyboard's octave button to adjust the octave, this one matches the // power-on default of a MIDISTART-3. // // NOTE: currently only works with ALSA on Linux, and then like this: // aconnect -l -i // Find your MIDI keyboard in this list. Assuming it is client 20, port 0, // run Xonotic with: // ./xonotic -sndseqin 20:0 +exec input-tuba.cfg // Then, grab a Tuba, then play notes on your MIDI keyboard! // // If you have no keyboard input, you can map the tuba notes to your keyboard: // for German keyboard layout // in_bindmap 3 0 // for US keyboard layout // in_bindmap 4 0 alias +tuba_l "+moveleft; +tuba_$*" alias -tuba_l "-moveleft; -tuba_$*" alias +tuba_r "+moveright; +tuba_$*" alias -tuba_r "-moveright; -tuba_$*" alias +tuba_b "+back; +tuba_$*" alias -tuba_b "-back; -tuba_$*" alias +tuba_f "+forward; +tuba_$*" alias -tuba_f "-forward; -tuba_$*" alias +tuba_c "+crouch; +tuba_$*" alias -tuba_c "-crouch; -tuba_$*" alias +tuba_j "+jump; +tuba_$*" alias -tuba_j "-jump; -tuba_$*" alias +tuba_1 "+fire" alias -tuba_1 "-fire" alias +tuba_2 "+fire2" alias -tuba_2 "-fire2" alias +tuba_! "echo cannot play this note, sorry" alias -tuba_! "" alias +tuba_ "" alias -tuba_ "" set tuba_note_42 "l b c 1" set tuba_note_43 "b c 1" set tuba_note_44 "r b c 1" set tuba_note_45 "!" set tuba_note_46 "!" set tuba_note_47 "f r c 1" set tuba_note_48 "c 1" set tuba_note_49 "l b c 2" set tuba_note_50 "r c 1" set tuba_note_51 "f l c 1" set tuba_note_52 "f c 1" set tuba_note_53 "l c 1" set tuba_note_54 "l b 1" set tuba_note_55 "b 1" set tuba_note_56 "b r 1" set tuba_note_57 "r c 2" set tuba_note_58 "f l c 2" set tuba_note_59 "f r 1" set tuba_note_60 "1" set tuba_note_61 "l b 2" set tuba_note_62 "r 1" set tuba_note_63 "f l 1" set tuba_note_64 "f 1" set tuba_note_65 "l 1" set tuba_note_66 "f r 2" set tuba_note_67 "2" set tuba_note_68 "b r j 1" set tuba_note_69 "r 2" set tuba_note_70 "f l 2" set tuba_note_71 "f 2" set tuba_note_72 "l 2" set tuba_note_73 "l b j 2" set tuba_note_74 "r j 1" set tuba_note_75 "f l j 1" set tuba_note_76 "f j 1" set tuba_note_77 "l j 1" set tuba_note_78 "f r j 2" set tuba_note_79 "j 2" set tuba_note_80 "!" set tuba_note_81 "r j 2" set tuba_note_82 "f l j 2" set tuba_note_83 "f j 2" set tuba_note_84 "l j 2" set tuba_note_ "" bind MIDINOTE42 "+tuba 42" bind MIDINOTE43 "+tuba 43" bind MIDINOTE44 "+tuba 44" bind MIDINOTE45 "+tuba 45" bind MIDINOTE46 "+tuba 46" bind MIDINOTE47 "+tuba 47" bind MIDINOTE48 "+tuba 48" bind MIDINOTE49 "+tuba 49" bind MIDINOTE50 "+tuba 50" bind MIDINOTE51 "+tuba 51" bind MIDINOTE52 "+tuba 52" bind MIDINOTE53 "+tuba 53" bind MIDINOTE54 "+tuba 54" bind MIDINOTE55 "+tuba 55" bind MIDINOTE56 "+tuba 56" bind MIDINOTE57 "+tuba 57" bind MIDINOTE58 "+tuba 58" bind MIDINOTE59 "+tuba 59" bind MIDINOTE60 "+tuba 60" bind MIDINOTE61 "+tuba 61" bind MIDINOTE62 "+tuba 62" bind MIDINOTE63 "+tuba 63" bind MIDINOTE64 "+tuba 64" bind MIDINOTE65 "+tuba 65" bind MIDINOTE66 "+tuba 66" bind MIDINOTE67 "+tuba 67" bind MIDINOTE68 "+tuba 68" bind MIDINOTE69 "+tuba 69" bind MIDINOTE70 "+tuba 70" bind MIDINOTE71 "+tuba 71" bind MIDINOTE72 "+tuba 72" bind MIDINOTE73 "+tuba 73" bind MIDINOTE74 "+tuba 74" bind MIDINOTE75 "+tuba 75" bind MIDINOTE76 "+tuba 76" bind MIDINOTE77 "+tuba 77" bind MIDINOTE78 "+tuba 78" bind MIDINOTE79 "+tuba 79" bind MIDINOTE80 "+tuba 80" bind MIDINOTE81 "+tuba 81" bind MIDINOTE82 "+tuba 82" bind MIDINOTE83 "+tuba 83" bind MIDINOTE84 "+tuba 84" // german keyboard layout for tuba in_bind 3 < "+tuba 48" in_bind 3 a "+tuba 49" in_bind 3 y "+tuba 50" in_bind 3 s "+tuba 51" in_bind 3 x "+tuba 52" in_bind 3 c "+tuba 53" in_bind 3 f "+tuba 54" in_bind 3 v "+tuba 55" in_bind 3 g "+tuba 56" in_bind 3 b "+tuba 57" in_bind 3 h "+tuba 58" in_bind 3 n "+tuba 59" in_bind 3 m "+tuba 60" in_bind 3 k "+tuba 61" in_bind 3 , "+tuba 62" in_bind 3 l "+tuba 63" in_bind 3 . "+tuba 64" in_bind 3 - "+tuba 65" in_bind 3 ä "+tuba 66" in_bind 3 shift "+tuba 67" in_bind 3 # "+tuba 68" in_bind 3 q "+tuba 60" in_bind 3 2 "+tuba 61" in_bind 3 w "+tuba 62" in_bind 3 3 "+tuba 63" in_bind 3 e "+tuba 64" in_bind 3 r "+tuba 65" in_bind 3 5 "+tuba 66" in_bind 3 t "+tuba 67" in_bind 3 6 "+tuba 68" in_bind 3 z "+tuba 69" in_bind 3 7 "+tuba 70" in_bind 3 u "+tuba 71" in_bind 3 i "+tuba 72" in_bind 3 9 "+tuba 73" in_bind 3 o "+tuba 74" in_bind 3 0 "+tuba 75" in_bind 3 p "+tuba 76" in_bind 3 ü "+tuba 77" in_bind 3 ' "+tuba 78" in_bind 3 + "+tuba 79" in_bind 3 backspace "+tuba 80" in_bind 3 enter "+tuba 81" // US keyboard layout for tuba in_bind 4 z "+tuba 48" in_bind 4 s "+tuba 49" in_bind 4 x "+tuba 50" in_bind 4 d "+tuba 51" in_bind 4 c "+tuba 52" in_bind 4 v "+tuba 53" in_bind 4 g "+tuba 54" in_bind 4 b "+tuba 55" in_bind 4 h "+tuba 56" in_bind 4 n "+tuba 57" in_bind 4 j "+tuba 58" in_bind 4 m "+tuba 59" in_bind 4 , "+tuba 60" in_bind 4 l "+tuba 61" in_bind 4 . "+tuba 62" in_bind 4 ";" "+tuba 63" in_bind 4 / "+tuba 64" in_bind 4 shift "+tuba 65" in_bind 4 "\\" "+tuba 66" in_bind 4 q "+tuba 60" in_bind 4 2 "+tuba 61" in_bind 4 w "+tuba 62" in_bind 4 3 "+tuba 63" in_bind 4 e "+tuba 64" in_bind 4 r "+tuba 65" in_bind 4 5 "+tuba 66" in_bind 4 t "+tuba 67" in_bind 4 6 "+tuba 68" in_bind 4 y "+tuba 69" in_bind 4 7 "+tuba 70" in_bind 4 u "+tuba 71" in_bind 4 i "+tuba 72" in_bind 4 9 "+tuba 73" in_bind 4 o "+tuba 74" in_bind 4 0 "+tuba 75" in_bind 4 p "+tuba 76" in_bind 4 [ "+tuba 77" in_bind 4 = "+tuba 78" in_bind 4 ] "+tuba 79" in_bind 4 backspace "+tuba 80" in_bind 4 enter "+tuba 81" // US dvorak layout for tuba in_bind 5 ";" "+tuba 48" in_bind 5 o "+tuba 49" in_bind 5 q "+tuba 50" in_bind 5 e "+tuba 51" in_bind 5 j "+tuba 52" in_bind 5 k "+tuba 53" in_bind 5 i "+tuba 54" in_bind 5 x "+tuba 55" in_bind 5 d "+tuba 56" in_bind 5 b "+tuba 57" in_bind 5 h "+tuba 58" in_bind 5 m "+tuba 59" in_bind 5 w "+tuba 60" in_bind 5 n "+tuba 61" in_bind 5 v "+tuba 62" in_bind 5 z "+tuba 63" in_bind 5 - "+tuba 64" in_bind 5 shift "+tuba 65" in_bind 5 "\\" "+tuba 66" in_bind 5 "'" "+tuba 60" in_bind 5 2 "+tuba 61" in_bind 5 , "+tuba 62" in_bind 5 3 "+tuba 63" in_bind 5 . "+tuba 64" in_bind 5 p "+tuba 65" in_bind 5 5 "+tuba 66" in_bind 5 y "+tuba 67" in_bind 5 6 "+tuba 68" in_bind 5 f "+tuba 69" in_bind 5 7 "+tuba 70" in_bind 5 g "+tuba 71" in_bind 5 c "+tuba 72" in_bind 5 9 "+tuba 73" in_bind 5 r "+tuba 74" in_bind 5 0 "+tuba 75" in_bind 5 l "+tuba 76" in_bind 5 [ "+tuba 77" in_bind 5 "/" "+tuba 78" in_bind 5 ] "+tuba 79" in_bind 5 backspace "+tuba 80" in_bind 5 enter "+tuba 81" set tuba_note "" alias tuba_stop_ "" alias +tuba_note "+tuba_${$1}" alias -tuba_note "-tuba_${$1}" alias tuba_start "+tuba_note tuba_note_$tuba_note" alias tuba_stop "-tuba_note tuba_note_$tuba_note; alias tuba_stop_$tuba_note \"\"; set tuba_note \"\"" alias +tuba "tuba_stop; set tuba_note $1; tuba_start; alias tuba_stop_$1 tuba_stop" alias -tuba "tuba_stop_$1"