The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Music::ChordBot::Song - Generate ChordBot songs.

SYNOPSIS

    use Music::ChordBot::Song;
    song "All Of Me";
    tempo 105;

    section "All Of Me 1";
    style "Chicago";

    C 4; C; E7; E7; A7; A7; Dm7; Dm7;
    E7; E7; Am7; Am7; D7; D7; Dm7; G7;

    section "All Of Me 2";
    style "Swingatron";

    C 4; C; E7; E7; A7; A7; Dm7; Dm7;
    Dm7; Ebdim7; Em7; A9; Dm7b5; G13;
    C 2; Ebdim7; Dm7; G7;

DESCRIPTION

Music::ChordBot::Song exports a number of subroutines that can be used to construct a CordBot song. Upon program termination, the song is written out to standard output in JSON format, suitable for import into the ChordBot app.

SUBROUTINES

song title

Starts a new song with the given title.

tempo bpm

Sets the tempo in beats per minute.

section name

Starts a song section. A section groups a number of bars with chords. Each section can have a style associated although it is common to have a single style for the whole song.

style preset

Associate the given style to the current section. For a list of presets, see http://chordbot.com/style-lookup.php .

chord key, type, duration

Append a chord with given key, type and duration. Note that duration is measured in number of beats. The three arguments may also be specified in a single string argument, space separated.

You can specify a bass note for the chord by separating the key and bass with a slash. E.g., "C/B" denotes a C chord with B bass.

QUICK ACCESS CHORDS

For convenience, subroutines are exported for quick access to chords. So instead of

  chord "C", "Maj", 4;

you can also write:

  C 4;

If you omit the duration it will use the duration of the previous chord:

  C 4; C; F; G;         # same as C 4; C 4; F 4; G 4;

The subroutine name is the key of the chord, optionally followed by a chord modifier. So C is C major, Cm is C minor, and so on.

Chord keys are A B C D E F G Ab Bb Db Eb Gb Ais Cis Dis Fis Gis.

Modifiers are m 7 m7 maj7 9 11 13 auf 7b5 m7b5 dim dim7.

DISCLAIMER

There is currently NO VALIDATION of argument values. Illegal values will result in program crashes and songs that cannot be imported, or played, by ChordBot.

AUTHOR, COPYRIGHT & LICENSE

See Music::ChordBot.