# grenadelauncher = RELOADSOUND RELOADSOUND
-# electro = beam BAD
+# electro = beam BADFLYSOUND
bot electro
channels 10
init
percussion 34
percussion 56 # 056_Cow_Bell-0.wav
percussion 34
+ percussion 67 # 067_Agogo_High-0.wav
+ percussion 34
+ percussion 68 # 068_Agogo_Low-0.wav
+ percussion 45
+ percussion 71 # 071_Whistle_1_High_Short-0.wav
+ percussion 34
+ percussion 72 # 072_Whistle_2_Low_Long-0.wav
+ percussion 45
# nex is nex NONE
bot nex
cmd selectweapon 13
cmd wait 0.5
raw settemp g_balance_hook_primary_refire 0.3
+ raw settemp g_balance_hook_secondary_refire 0.9
percussion 62 # 062_Conga_High_1_Mute-0.wav
time 0
cmd debug_assert_canfire 1
busy 0.3
percussion 63 # 063_Conga_High_2_Open-0.wav
percussion 62
+ percussion 84 # 084_Belltree-0.wav
+ time 0
+ cmd debug_assert_canfire 1
+ buttons attack2
+ time 0.05
+ cmd debug_assert_canfire 0
+ buttons
+ time 0.1
+ busy 0.9
+ percussion 81 # 081_Triangle_2_Open-0.wav
+ percussion 62
# seeker is BADFLYSOUND tag
bot seeker
percussion 41
percussion 46 # 046_Hi-Hat_Open-0.wav
percussion 41
+ percussion 69 # 069_Cabasa-0.wav
+ percussion 41
+ percussion 82 # 069_Shaker-0.wav
+ percussion 41
# rifle is hard soft
bot rifle
percussion 64 # 064_Conga_Low-0.wav
percussion 42
+bot switcher
+ init
+ time -2
+ cmd aimtarget "tPercussion 1"
+ cmd barrier
+ cmd wait 0.5
+ percussion 29 # not in freepats
+ time 0
+ cmd impulse 10
+ time 0.05
+ busy 0.3
+ percussion 30 # not in freepats
+ percussion 29
+
bot vocals
init
time -2
cmd barrier
super
+bot instance_switcher
+ include switcher
+ include common
+ count 16
+ init
+ cmd movetotarget @places_percussion
+ cmd barrier
+ super
+
bot instance_vocals
include vocals
include common
if($_->[0] eq 'note_on')
{
my $chan = $_->[4] + 1;
- ++$notes_seen{$chan}{($programs{$chan} || 1)}{$_->[5]}
- if $chan != 10 and $chan > 0;
+ ++$notes_seen{$chan}{($programs{$chan} || 1)}{$_->[5]};
if($midinotes{$chan}{$_->[5]})
{
--$notes_stuck;
my $good = 0;
for my $channel(sort keys %notes_seen)
{
+ next if $channel == 10 or $channel < 0;
for my $program(sort keys %{$notes_seen{$channel}})
{
for my $note(sort keys %{$notes_seen{$channel}{$program}})
print STDERR " Transpose $testtranspose: $toohigh too high, $toolow too low, $good good\n";
}
+ for my $program(sort keys %{$notes_seen{10}})
+ {
+ for my $note(sort keys %{$notes_seen{10}{$program}})
+ {
+ my $cnt = $notes_seen{10}{$program}{$note};
+ my $votegood = 0;
+ for(@busybots_allocated)
+ {
+ next # I won't play on this channel
+ if defined $_->{channels} and not $_->{channels}->{10};
+ next # I won't play this program
+ if defined $_->{programs} and not $_->{programs}->{$program};
+ if(exists $_->{percussion}{$note})
+ {
+ ++$votegood;
+ }
+ }
+ if(!$votegood)
+ {
+ print STDERR "Failed percussion $note ($cnt times)\n";
+ }
+ }
+ }
+
while(my ($k1, $v1) = each %midinotes)
{
while(my ($k2, $v2) = each %$v1)