App-MusicTools - command line utilities for music composition and analysis


  $ atonal-util --ly findin --pitchset=5-25 c e g
  Ti(0)   c,e,g,a,ais
  T(4)    c,e,g,fis,a

  $ canonical --contrary --retrograde modal c f g e c
  c g, f, a, c

  $ canonical modal --input=dorian --output=locrian d e f g a b c
  d dis f g gis ais c

  $ harmonic-fit f e ees d g aes ges b c a bes des

  $ export MIDI_EDITOR=timidity
  $ ly-fu --instrument=banjo c des ees c des bes c aes

  $ scalemogrifier --mode=mixolydian --transpose=fis
  fis gis ais b cis dis e fis'

  $ varionator '(I I6) (II IV II6 IV6) (V V7 III) I'

  $ 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

And more!


This distribution contains various command line utilities related to music composition and analysis, brief examples of which are shown in the "SYNOPSIS", above. Run perldoc on the command name for additional documentation on how to use each tool, as several of the programs have many, many more options than shown here.

The zsh-compdef directory of this distribution includes ZSH completion scripts for the command line utilities. Install these files to a ZSH $fpath directory, and follow the ZSH documentation on setting up tab completion.


Probably lots. Send patches, as there are probably lots between my bad Perl and badder understanding of music theory.


  • and most notably the Learning and Notation manuals, as the tools make use of the default lilypond note letter conventions (e.g. fis for F sharp, ees for E flat, etc.)

  • ly-fu expects that a MIDI player and PDF viewer are available on the system. Environment variables will likely need to be set or the source code tweaked as necessary.

  • "The Structure of Atonal Music" by Allen Forte (ISBN 978-0-300-02120-2). Though, note that there are two forms of pitch set construction; the one created by Rahn is more common in computing circles.

  • Theory of Harmony by Arnold Schoenberg (ISBN 978-0-520-26608-7).


  • Music::AtonalUtil, Music::Chord::Positions, Music::LilyPondUtil, Music::Tension and others.


thrig - Jeremy Mates (cpan:JMATES) <jmates at>


Copyright (C) 2012 by Jeremy Mates

This program is distributed under the (Revised) BSD License: