#!/usr/bin/perl
use strict;
use warnings;

use MIDI::Drummer::Tiny;

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;
