Dave Cross: Still Munging Data With Perl: Online event - Mar 17 Learn more

#!/usr/bin/perl
use strict;
my $beats = shift || 4;
my $divisions = shift || 4;
my $bars = shift || 16;
my $bpm = shift || 100;
my $d = MIDI::Drummer::Tiny->new(
file => $0 . '.mid',
signature => $beats . '/' . $divisions,
bars => $bars,
bpm => $bpm,
);
$d->count_in(1);
if ($beats == 3 && $divisions == 4) {
$d->metronome34;
}
elsif ($beats == 4 && $divisions == 4) {
$d->metronome44;
}
elsif ($beats == 5 && $divisions == 4) {
$d->metronome54;
}
elsif ($beats == 7 && $divisions == 4) {
$d->metronome74;
}
elsif ($beats == 5 && $divisions == 8) {
$d->metronome58;
}
elsif ($beats == 6 && $divisions == 8) {
$d->metronome68;
}
elsif ($beats == 7 && $divisions == 8) {
$d->metronome78;
}
else {
die 'Unknown time signature';
}
$d->write;