NAME
scalemogrifier - generate notes of named or arbitrary scales
SYNOPSIS
$ scalemogrifier
c d e f g a b c'
The list of accepted lilypond note names and other elements include:
c cis des d dis ees e f fis ges g gis aes a ais bes b nl
Available named modes include:
aeolian amdorian dorian hminor hunminor ionian locrian lydian
major minor mixolydian mminor phrygian
DESCRIPTION
Generates notes of arbitrary scales (subsets of the Western 12-tone chromatic system) from a specified starting note in a specified direction and so forth from other options.
The output is in lilypond absolute format. The default scale is The Major Scale, but that's easy to adjust to say C Minor:
$ scalemogrifier --minor --flats
By default, scales loop back to the starting note. If this is not the case, suffix nl
to a custom interval series:
$ scalemogrifier --intervals=c,cis,dis,e,g,nl --length=15
c cis dis e g gis ais b d' dis' f' fis' a' ais' c''
The output is based on the assumption that c
equals 0. The output can be transposed via:
$ scalemogrifier --mode=mixolydian --transpose=-5
Integer interval numbers can be used instead of note names or the --mode option, for example the Major Scale:
$ scalemogrifier --intervals='2 2 1 2 2 2 1' --raw
Or to form a -P4,+P5 sequence:
$ scalemogrifier --intervals=-5,7 --len=24
Or just plain made up:
$ scalemogrifier --intervals=1,2,3,5,7 --dir=53 --relative --len=24
Scales can also be rendered backwards:
$ scalemogrifier --dir=-1
Or with the interval order reversed:
$ scalemogrifier --rev
The scale generated can be fed back into a different output scale (the direction and reverse options only apply to the --intervals option scale, not the --ois scale):
$ scalemogrifier --intervals=c,cis,dis,e,g,nl --ois=aes,bes,ces,ees,fes \
--len=48 --flats --rel
Practical application of the results to music theory or composition left as an exercise to the user. The output can be fed to ly-fu
for playback and display, for example:
$ ly-fu --abs -l --open $(scalemogrifier ...)
$ ly-fu -l --open $(scalemogrifier --relative ...)
OPTIONS
This program currently supports the following command line switches:
- --direction=integer
-
Positive, the scale goes up, negative, down. Magnitudes greater than 1 multiply the interval.
- --flats | --noflats
-
Use flats instead of sharps in the output note names. Prefix with no to disable flats, in the event an alias has set them on by default.
- --help
-
Displays help and exits program.
- --intervals=interval list
-
List (comma or space delimited) of intervals (integers) or notes of the scale (lilypond note names) or
nl
for non-loop-back-to-start- pitch scales. - --length=positive integer
-
How many notes to generate in the output.
- --listmodes
-
List available named scale modes and then exit. Used by ZSH compdef script.
- --mode=mode
-
Specify named scale mode instead of using --intervals. Available modes can be listed with the --listmodes option.
- --ois=interval list
-
"Output interval sequence" -- the custom scale or interval set that the output will be mapped into.
- --ors=string
-
"Output record separator" -- text to print between each output element. Defaults to a space character.
- --raw
-
Emit raw pitch numbers instead of note names.
- --relative
-
Generate relative lilypond output (default: absolute). Good fun can be had by using absolute in relative mode, or otherwise letting the chance of the lilypond algorithm take the music in unexpected directions.
- --reverse
-
Reverses the order of the intervals.
- --transpose=pitch or note
-
Value by which to transpose the output by (integer) or to (note name).
FILES
A ZSH completion script is available in the zsh-compdef/
directory of the App::MusicTools distribution. Install this to a $fpath
directory.
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
Consider http://oeis.org/ to lookup interesting interval series; for example, search by the major interval sequence for numeric sequences that contain it: http://oeis.org/search?q=2,2,1,2,2,2,1
Music::Canon contains routines for mapping series of pitches via arbitrary scales or interval sequences to produce new material. See also canonical
of this distribution.
AUTHOR
Jeremy Mates
COPYRIGHT
Copyright (C) 2012-2013,2015 by Jeremy Mates
This module is free software; you can redistribute it and/or modify it under the Artistic License (2.0).