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

use Data::Dumper::Compact 'ddc';
use MIDI::Chord::Guitar;
use MIDI::Util qw(setup_score);

my $score = setup_score(patch => 24, bpm => 90);

#my $mcg = MIDI::Chord::Guitar->new(voicing_file => 'share/midi-guitar-chord-voicings.csv');
my $mcg = MIDI::Chord::Guitar->new;

# Inspect the voicings
#for my $spec (
#    ['C3', ''],
#    ['A2', 'm'],
#    ['F3', ''],
#    ['G2', ''],
#) {
#    my $chords = $mcg->transform(@$spec);
#    print "@$spec: ", ddc($chords);
#}
#__END__

for my $n (1 .. 2) {
    for my $spec (
        ['C3', '', 0],
        ['A2', 'm', 3],
        ['F3', '', 0],
        ['G2', '', 0],
        ['C3', '', 0],
        ['A2', 'm', 3],
        ['G2', '', 0],
        ['G2', '', 0],
    ) {
        my $chord = $mcg->transform(@$spec);
        $score->n('en', $_) for @$chord;
        $score->n('en', $_) for reverse @{$chord}[1 .. $#$chord - 1];
    }
}

my $chord = $mcg->transform('C3', '', 0);
$score->n('wn', @$chord);

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