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

use Music::Cadence;

my $mc = Music::Cadence->new;

my $chords = $mc->cadence;
print join( ', ', map { "[@$_]" } @$chords ), "\n";
# [G B D], [C E G C]

$mc = Music::Cadence->new( octave => 4 );

$chords = $mc->cadence;
print join( ', ', map { "[@$_]" } @$chords ), "\n";
# [G4 B4 D4], [C4 E4 G4 C5]

$chords = $mc->cadence(
    type    => 'half',
    octave  => 0,
    leading => 2,
);
print join( ', ', map { "[@$_]" } @$chords ), "\n";
# [D F A], [G B D]

$chords = $mc->cadence(
    type      => 'imperfect',
    octave    => 4,
    inversion => { 1 => 1, 2 => 1 },
);
print join( ', ', map { "[@$_]" } @$chords ), "\n";
# [B4 D4 G5], [E4 G4 C5]

$mc = Music::Cadence->new(
    key    => 'C#',
    octave => 5,
);

$chords = $mc->cadence;
print join( ', ', map { "[@$_]" } @$chords ), "\n";
# [G#5 C5 D#5], [C#5 F5 G#5 C#6]

$mc = Music::Cadence->new(
    key    => 'C#',
    octave => 5,
    format => 'midi',
);

$chords = $mc->cadence;
print join( ', ', map { "[@$_]" } @$chords ), "\n";
# [Gs5 C5 Ds5], [Cs5 F5 Gs5 Cs6]

$mc = Music::Cadence->new( format => 'midinum' );

$chords = $mc->cadence( octave => 4 );
print join( ', ', map { "[@$_]" } @$chords ), "\n";
# [67 71 62], [60 64 67 72]

$chords = $mc->cadence( octave => -1 );
print join( ', ', map { "[@$_]" } @$chords ), "\n";
# [7 11 2], [0 4 7 12]

$mc = Music::Cadence->new( seven => 1 );

$chords = $mc->cadence;
print join( ', ', map { "[@$_]" } @$chords ), "\n";
# [G B D F], [C E G A# C]

$chords = $mc->cadence(
    type   => 'evaded',
    octave => 4,
);
print join( ', ', map { "[@$_]" } @$chords ), "\n";
# [F4 G5 B5 D5], [E4 G4 A#4 C5]
