NAME
vov - chord generation from roman numerals with sub-phrase support
SYNOPSIS
$ vov --outputtmpl='<%{chord}> \t% %{vov}' I IV/IV V7/IV IV V7 I
<c e g> % I
<b dis f> % IV/IV
<c e g b> % V7/IV
<f a c> % IV
<g b d f> % V7
<c e g> % I
DESCRIPTION
Musical V/V utility, for arbitrary "chord X relative to Y as tonic in key Z" type calculations (V/V are called "applied dominants" among various other names). Any scale degree can be used, e.g. the phrase with a sub-phrase relative to IV "I IV/IV V/IV IV V I" says tonic (C), subdominant of the subdominant (B of F), dominant of the subdominant (C of F), and then subdominant (F), dominant (G) and back to the tonic.
The input format is based somewhat upon "Roman Numeral Analysis" and other musical sources, with some tweaks for Unix command line input needs. The output is somewhat suitable for input to lilypond, e.g. via vov ... | ly-fu -
though can be adjusted by various options.
INPUT FORMAT
Supported input must be a roman numeral (I..VII and i..vii), possibly prefixed with #
or b
to sharpen or flatten the root pitch, possibly suffixed with +
to augment or *
to diminish or **
to double diminish, possibly suffixed with an integer specifying the chord factor or inversion:
V5 V6 V64 # Dominant fifth and inversions (or also Va, Vb, Vc)
V7 V65 V42 V2 # Dominant seventh and inversions (V7a, V7b, V7c, V7d)
bII6 # Neapolitan 6th
Use /
to delimit chord-X-of-Y, to arbitrary depth (depending on available memory, but going beyond 12 is silly):
$ vov V/V/V/V/V/V/V/V/V/V/V/V/V
g b d
OPTIONS
This script currently supports the following command line switches:
- --factor=positive odd integer
-
Specify default chord factor (odd integer between 1 for just the fundamental and 13 for thirteenth chords, inclusive). Default is to generate 5th chords;
7
would get seventh chords by default, etc.$ vov --factor=7 II V I d fis a c g b d f c e g b
- --flats
-
Use flats instead of sharps in the output note names.
- --help
-
Displays help and exits program.
- --listmodes
-
List available named scale modes and then exit. Used by ZSH compdef script.
- --minor
-
Use minor mode (default is major).
- --mode=mode
-
Specify named scale mode instead of using --intervals. Available modes can be listed with the --listmodes option.
- --natural
-
Ignore
VII
vs.vii
vs.vii*
distinctions in input and use the intervals implied by the mode. However, abII
would still lower the root. - --outputtmpl=template
-
Specify a custom output template. Supported macros include
chord
andvov
to specify the notes of the chord, and the chord name as specified on the command line. For example:--outputtmpl='<%{chord}> \t% %{vov}'
- --raw
-
Emit raw pitch numbers instead of note names.
- --transpose=pitch or note
-
Value by which to transpose the output by (integer) or to (note name).
FILES
ZSH completion script available in the zsh-compdef directory of the App::MusicTools distribution.
BUGS
Reporting Bugs
If the bug is in the latest version, send a report to the author. Patches that fix problems or add new features are welcome.
http://github.com/thrig/App-MusicTools
Known Issues
None at this time but probably lots.
SEE ALSO
http://www.lilypond.org/
https://en.wikipedia.org/wiki/Roman_numeral_analysis
AUTHOR
Jeremy Mates
COPYRIGHT
Copyright (C) 2012 by Jeremy Mates
This script is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.16 or, at your option, any later version of Perl 5 you may have available.