#!/bin/perl while(<>) { /^\// && (print, next); chop; /^$/ && next; if (/^/) { &endOfRegion; } else { ($var, $val) = split /=/; $region{$var} = $val; } } &endOfRegion; sub endOfRegion { if (keys %region) { if ($region{'lokey'} eq $region{'hikey'} and (($region{'lokey'} eq $region{'pitch_keycenter'}) or ($region{'pitch_keytrack'} == 0))) { $region{'key'} = $region{'lokey'}; delete($region{'lokey'}); delete($region{'hikey'}); delete($region{'pitch_keycenter'}); delete($region{'pitch_keytrack'}); ($region{'lovel'} eq "") && ($region{'lovel'} = '000'); ($region{'hivel'} eq "") && ($region{'hivel'} = '127'); } delete($region{'ampeg_release'}); $sample = $region{'sample'}; delete($region{'sample'}); print " count=1"; foreach $a ('count', 'key', 'group', 'off_by', 'transpose', 'tune', 'volume') { if ($region{$a} ne "") { print " $a=$region{$a}"; delete($region{$a}); } } foreach $a ('lokey', 'hikey', 'lovel', 'hivel') { if ($region{$a} ne "") { print " $a=", sprintf("%03d", $region{$a}); delete($region{$a}); } } foreach $a (keys(%region)) { print " $a=$region{$a}"; delete($region{$a}); } print " sample=$sample\n"; } }