FOMUS is a open source software application by David Psenicka that automates many musical notation tasks for composers and musicians, facilitating the process of creating professionally notated scores by allowing the user to separate attributes such as times, durations and pitches from the representation of them in conventional music notation. It is especially useful for composers who work with algorithms and computer music software languages/environments such as CM/Grace, Pure Data and Lisp. It can also be used to import data from MIDI files into a graphical notation editor or creating scores from scratch using text files.
Input of musical events is narrowed down to a small set of basic attributes: time, duration, pitch, a list of marks and an optional dynamic level. Measures are treated as containers with time offsets and durations. After a score has been created, it can be entirely renotated with different rhythmic values (e.g., eighth notes instead of quarter notes) or in a different meter (e.g., 5/8 instead of 4/4). A score for percussion ensemble can be renotated with different layouts using single or multiple staves, or entire blocks of music can be easily shifted by any value (e.g., an eighth note or one third of an eighth note triplet). As the software develops the user will have multiple specialized algorithms to choose from for any given task and will be able to tailor the program to his/her own style or aesthetic. If desired, many automated tasks can be switched off or overridden by the user, the goal being to allow varying levels of control and flexibility over the output.
The software is implemented as a shared library, and can be used in programming environments such as Lisp or Common Music or as an external in graphical programming environments such as Pure Data. It can also load files written in FOMUS's native file format and import data from other file formats (such as MIDI). Once the composer loads or inputs his/her information, FOMUS outputs a file (or multiple files) in one or more different formats suitable for importing into a graphical notation program such as LilyPond, Finale or Sibelius. The user can then load the output file into one of these programs and make further edits to produce a finished score. FOMUS thus determines symbolic aspects of notation while leaving issues related to graphical layout and positioning to another program where this type of editing can be done. The library can easily be extended to work with other programming environments and its plugin-style architecture allows the user to modify, add to or replace parts of its functionality.
7/5/2011 | Version 0.1.18-alpha released. Fixed many bugs and added an `untie' algorithm to simply notation with complex rhythms. |
4/12/2011 | Version 0.1.17-alpha released. Fixed compiling errors with Boost 1.46.1 and bugs involving measure barlines, tempo markings, mark events, and several other issues. Added a default `all' metapart for easily adding certain things (like tempo markings) and some more dynamic marks. |
3/20/2011 | Version 0.1.16-alpha released. Now compiles properly in Fedora 14. |
2/7/2011 | Version 0.1.15-alpha released. More bug fixes, including one in Windows that caused executables (like `lilypond.exe') to be called incorrectly. |
12/17/2010 | Version 0.1.14-alpha released. OS X binaries should now run on PPC, Intel 32-bit and Intel 64-bit machines. Fixes a bug involving calculation of time signatures in compound meter and another one involving how clef signatures are output to `.ly' files, along with several other minor corrections. |
12/8/2010 | Version 0.1.13-alpha released (source code only). Fixes a compile-time error caused by a recent change in Boost's API. |
12/4/2010 | Version 0.1.12-alpha released. Includes major fixes (since the last rc6 release) involving compound meter/time signatures, detached marks and mark events, as well many minor fixes and more documentation additions and revisions. |
Following is a partial list of tasks or notational features that FOMUS automates:
Input files and environments that FOMUS currently works with:
FOMUS currently outputs the following file formats:
The current version of FOMUS is 0.1.18-alpha. A beta test release is expected sometime in the near future.
Binaries builds of the current version can be downloaded for the following architectures:
Simply run the installer app and follow the instructions to install FOMUS.
A Ubuntu binary package is included in the Puredyne distribution (the link to the PPA repository is here). |
Download the current source code. See the “Install” section of the documentation for instructions on how to compile from source. |
Download older binaries and source code.
Browse the repository here.
The SVN repository isn't recommended since it is often unstable and has many more dependencies than the source package. If you really want to compile from the repository source see the “Install” section of the documentation for instructions.
No screenshots at the moment.
Click here to browse the documentation on-line. Although much of it is incomplete at this point, there are many examples in several different languages/formats (Lisp, Common Music and FOMUS's native file format) that show how to control FOMUS's features.
Click on this link to subscribe to the fomus-user mailing list. The traffic is fairly low. This is the place for announcements, discussions, features requests, and bug reports.
FOMUS works directly with the following software/file specifications:
FOMUS is also used as a backend in the following software packages: