Hudson Lacerda

microtonal music software

by Hudson Lacerda

[ download | examples | tutorial | reference ]

21/09/2008: New version of microabc tutorial is online (PDF)

10/01/2008: New version of microabc, with several new features and easier to use!!!
(Includes executable files for Windows/DOS and GNU+Linux)


microabc is a free software which generates macros to represent microtonal music in ABC notation. It is intended for use along the preprocessor abcpp, although it contains a simple (yet very useful) built-in preprocessor, able to convert delimited macros and to provide support for Sagittal Notation System. The preprocessed ABC code is suitable for abcm2ps and/or abcMIDI. This means that you can obtain both audible MIDI files and printable PostScript (and PDF) scores as output. See the examples.

The program reads commands and data, and outputs a list of macro definitions. Macro replacements can be: chromatic, diatonic, microtonal or literal. Chromatic and diatonic modes are useful to generate MIDI files to be re-tuned with the program scala or played by timidity++. They can also be used to generate a mapping for standard staff notation (tablature-wise approach). Microtonal mode computes pitch quantisation in semitone fractions relative to the standard equal temperament (quarter-tones, eighth-tones, integer cents, etc.), using microtonal ABC accidentals for abc2midi or abcm2ps. Literal mode uses given replacement text strings.

There are also commands to generate equal and linear temperaments, to import/export scala tuning files (*.scl) and to write into a file a list of frequencies for use by timidity++.

microabc is released as free software under the GNU General Public License (GNU GPL), and it is available at

For more information on microabc features and commands, see:

Additional software you will want to use (see the links):
Note about abcpp:

Due to the large number of macros normally needed for microtonal notation, it is strongly recommended to compile abcpp with enough room for macros. For abcpp version 1.3.2, change the line 43 of `abcpp.c' to something like this and then compile the program:

#define MAX_MACROS     512      /* # of #defined macros */

You may be also interested in a GUI (graphical user interface) music notation software with support for quartertones. Have a look at tkabc. tkabc belongs to the tclabc package, which you can download from Jef's page. I have made available my ~/.tkabcrc file with convenient keystrokes. It should be saved in your home directory, renamed as ".tkabcrc" (without the quotes).


A simple Sagittal example in Just Intonation

The easiest way to run microabc is as a preprocessor for Sagittal notation. The Sagittal pitches are written between square braces (in the place where ABC pitches would go in the ABC file), and can be interpreted in different systems like just intonation, linear temperaments and equal temperaments. The user may also redefine the meaning of the Sagittal pitches.

The file sagit.abp is the music source:

%%format sagittal-pfb.fmt

T:microabc tutorial
T:Sagittal preprocessing
%%text Pure intonation (fifth=2:3, octave=1:2)
[C][E\] [G][Bbt] [D`][F^`] [Aw`][B\`] |\
[C``][B\`] [Aw`][F^`] [D`][Bbt] [G][E\] | [C]4 z4 |]
[C,]8 | [C,,]8 | [C,]4 z4 |]

microabc is used to convert it into ABC files for MIDI (option -M) and for PostScript (option -P):

microabc -i- -S -Msagit.abp >
microabc -i- -S -Psagit.abp >
Then, the output files (PostScript and MIDI) can be generated:
abcm2ps -O=

The score will look like this (click on the image to listen to the MIDI file): A Sagittal score example

More examples

Here are a few other examples of what microabc (along abcm2ps and abc2midi) can do:

The microabc package includes more examples.


microabc is free software released under GNU GPL in source code form (it is written in the C programming language and it has being compiled successfully on GNU/Linux systems).

The package includes also the program documentation with several examples (including sources, scores and MIDI files) and a PostScript font of Sagittal microtonal accidentals.

Latest version (for any plataform -- includes binaries for Windows/DOS and GNU+Linux): - [ChangeLog]

Browse the directory:

Binaries for Windows/DOS (2008-Jan-03): - microabc.exe and abcalias.exe are based on microabc-2007-12-31 with slight changes. They require cwsdpmi.exe which is included in the zip archive. contains only the executable files. Please download also the package, which includes source, documentation, Sagittal PS font, format files and examples. Please also read the Announcement and Instructions.

Binary for Windows (OLD VERSION): - microabc.exe was kindly provided by Ken Fasano from microabc-2006-07-29. It requires cygwin1.dll which is included in the zip archive. Be aware: the content of the package is provided "as is" with no warranties of any kind. Use it at your own risk. contains only the executable files. Please download also the package, which includes source, documentation and examples.

If you have built binary executable files or installer packages for your system and you would like to share them, I will be glad to put a link to them here. Just let me know:

hfml (at) brfree (dot) com (dot) br


Hudson Lacerda