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

use lib '/Users/gene/sandbox/MIDI-Util/lib';
use MIDI::Util; # https://metacpan.org/release/MIDI-Util
use lib '/Users/gene/sandbox/Music-Cadence/lib';
use Music::Cadence; # https://metacpan.org/release/Music-Cadence

my $max = shift || 16;

my @notes = qw/ C4 D4 E4 F4 G4 A4 B4 C5 /;

my $score = MIDI::Util::setup_score( bpm => 100 );

for my $i ( 1 .. $max ) {
    my $note1 = $notes[ int rand @notes ];
    my $note2 = $notes[ int rand @notes ];

    $score->n( 'hn', $note1, $note2 );
}
 
my $mc = Music::Cadence->new;

my $notes = $mc->cadence(
  key    => 'C',
  scale  => 'major',
  type   => 'plagal',
  octave => 4,
);

$score->n( 'wn', @{ $notes->[0] } );
$score->n( 'wn', @{ $notes->[1] } );

$score->write_score("$0.mid");
