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

use lib map { "$ENV{HOME}/sandbox/$_/lib" } qw(MIDI-Util);
use MIDI::Util;
use Music::MelodicDevice::Transposition;

my @notes = qw(C4 E4 D4 G4);

my $md = Music::MelodicDevice::Transposition->new(
    scale_note => 'C',
    scale_name => 'major',
    verbose => 1,
);

my $score = MIDI::Util::setup_score();

@notes = MIDI::Util::midi_format(@notes);
$score->n('qn', $_) for @notes;
$score->r('hn');

my $transposed = $md->transpose(1, \@notes);
@$transposed = MIDI::Util::midi_format(@$transposed);
$score->n('qn', $_) for @$transposed;
$score->r('hn');

$transposed = $md->transpose(2, \@notes);
@$transposed = MIDI::Util::midi_format(@$transposed);
$score->n('qn', $_) for @$transposed;
$score->r('hn');

$transposed = $md->transpose(3, \@notes);
@$transposed = MIDI::Util::midi_format(@$transposed);
$score->n('qn', $_) for @$transposed;
$score->r('hn');

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