FOMUS

A Computer Music Notation Tool

Introduction

FOMUS (FOrmat MUSic) is a music notation tool for composers of computer music. The purpose of it is to facilitate the conversion of "raw" algorithmic output into readable music notation, a process that can be frustrating and time consuming since it often requires dumping data into some intermediary format (such as MIDI) and importing it into a notation program that only does a mediocre job of conversion. FOMUS attempts to remove this frustration by making a reasonably intelligent attempt at spelling notes, quantizing offsets and durations into readable rhythms, laying out the information into voices and staves, and other tasks (such as where to include clef changes or ottava markings). The user may also specify extra information such as articulations, text markings, time signature changes, notational details of musical instruments, etc.. When the program is run, it outputs a file suitable for importing straight into a notation program (Finale, Sibelius, CMN or Lilypond), after which only a minimal amount of editing and some layout work should be required to create a finished musical score.

A C++ port has been underway, hosted at SourceForge.net. When that's finished, this project will be replaced with a Lisp interface to the C++ library. Much of the design has been rethought to allow more flexibility and control and easy implementation of new features and plugins/modules. Some of the major changes (and planned additions) include:

  • Settings affecting notation can be changed/controlled at the note level.
  • Native input/output file format with a flexible syntax that includes macros plus various ways of adjusting/transposing sections of the score (also with modes and syntax highlighting for Emacs and Grace).
  • Built-in documentation and ability to search through it (for example, any settings affecting tuplets can be brought up and browsed through).
  • Objects or plugins for applications such as Pd or Max that will send events directly to FOMUS.
  • Use of multiple cores or processors.
  • Presets for different types of notation, include draft and final score settings.
  • Modules/tasks can be plugged into different "engines" that handle the operations differently (FOMUS's default engines will be a generic one, a dynamic programming one, and search one.). The API also allows for non-linear search methods as well.
  • The main C API is as compact as I could make it--it should be easy to interface with many languages/interpretters.
  • Other little bits that needed to be changed (like how FOMUS chooses tuplets).
  • Mailing Lists

    Download

    This project has not released any files.

    CVS

    You can browse the CVS repository or download the current development tree via anonymous CVS. To download, type the following in the installation directory at a UNIX command prompt:

    cvs -z3 -d :pserver:anonymous:anonymous@common-lisp.net:/project/fomus/cvsroot co fomus

    Documentation

    Online Documentation is available here.

    Valid XHTML 1.0 Strict