The ABC Plus Project
Scherzando

Versione italiana   Versione italiana

Introduction

One of my hobbies is music: I play folk and early music on the whistle, flute, bagpipe, recorder, and clarinet. I find that the ABC music notation language is a wonderful tool to typeset sheet music. ABC is one of the best designed, easy to use, well-thought out, and nicely implemented notation formats I've ever seen: IMHO, it surpasses other good notation languages like GNU Lilypond or MusiXTeX. (Philip's Music Writer is a serious contender though.) You can write music in a very simple ASCII format and convert it to MIDI, or typeset it to make professional-looking scores.

ABC was originally designed for simple melodies, but there have been efforts to extend the notation. The ABC Music Standard is now at version 2.1, which is unfortunately not fully implemented by major programs.

Some ABC applications implement most of the the ABC language; low-level details (formatting and MIDI effects) are supported too. The purpose of the ABC Plus project is to provide software and documentation for this extended ABC. This is an example of classical music written in ABC Plus; it sounds like this.

All RPMs and .deb packages available on this site were built on a Mint GNU/Linux 16 system. I built the RPM packages first, then I made the .deb package using the alien converter.






A couple of notes.

First of all: please note that I am not the author of abcm2ps, abcmidi, ABCExplorer, tclabc, MC Musiceditor, and EasyABC. I wish I was such a great programmer! I just provide the packages or the links. Please refer to the authors for any questions.

Secondly: perhaps I could interest you in my whistle making page?

Finally: please, please, don't write to me asking how to do this or that. I've run out of time. I recommend that you join the abcusers mailing list, and ask questions there. Thanks!


Making Music with ABC Plus

I have written a manual that explains how to write music using ABC Plus. It focuses on using abcm2ps and abcmidi, but most of the information it contains can be applied (at least to some extent) to all ABC applications. Many thanks to Norman Schmidt who helped me translate parts of the manual.

I release this manual under the GNU GPL. This basically means that it's free and that you can freely modify it, as long as you make your modifications publicly available.

Download the PDF version (includes some MIDI files):

Previous versions:

I rely on your feedback to fix errors and omissions, and in general to make this manual more useful. Please feel free to make translations!

Back to top


The Mandolintab online converter

You don't even have to install software on your computer if you want to use ABC Plus software. The Mandolintab online converter (once Folkinfo) provides an easy-to-use Web interface to the best command line tools!

Back to top


Some ABC Plus choral music

As a demonstration of the capabilities of ABC Plus, I have prepared a few examples of choral sheet music. They're free to use and share. Check them out!

Back to top


An ABC package for LaTeX

Prof. Enrico Gregorio (University of Verona, Italy) has written a LaTeX package for including ABC/ABC Plus music in LaTeX documents. Thanks a lot!

The package is available from all CTAN mirrors, e.g. http://www.ctan.org/tex-archive/macros/latex/contrib/abc/. Here's a local copy.


ABC command line tools for Windows and Android

The following archive contains the latest abcm2ps, abcmidi, beep.exe, abcpp, and abc2prt binaries for Windows and ARM Android:

Installing on Android is a bit convoluted, but it's possible even on non-rooted devices. Please refer to the included INSTALL.txt file.

Only SVG output is usable, since Ghostscript is not (yet) available on Android; so you'll want to typeset your ABC music using a command like:

$ abcm2ps -X -O= music.abc

and display the resulting music.xhtml file with Firefox or other browser.


abcm2ps binaries

One of the best implementations of ABC is surely Jean-François Moine's abcm2ps, an adaptation of Michael Methfessel's abc2ps that can handle multiple voices per staff and many other extensions. In my view, abcm2ps is ABC done right - in addition to folk music, it can do a lot of classical music quite well! It's amazing to see how this little program can make professional-looking scores.

abcm2ps' author provides the software in source-only form. Here you can download binaries for Windows and Linux:

  Stable release
abcm2ps-7.8.8-win32.zip binary for Windows, without Pango support.
abcm2ps-7.8.8-pango-win32.zip binary for Windows with Pango support (thanks to Oliver Pfeiffer).
abcm2ps_7.8.8-1_i386.deb binary for Debian and Ubuntu
abcm2ps-7.8.8-1.i386.rpm binary RPM
abcm2ps-7.8.8-1.src.rpm source RPM
abcm2ps-7.8.9-osx.zip Mac OS X binary, thanks to Chuck Boody
  Older stable release
abcm2ps-6.6.22-win32.zip binary for Windows without Pango support.
abcm2ps-6.6.22-pango-win32.zip binary for Windows with Pango support (thanks to Oliver Pfeiffer)
abcm2ps_6.6.22-1_i386.deb binary for Debian and Ubuntu
abcm2ps-6.6.22-1.i386.rpm binary RPM
abcm2ps-6.6.22-1.src.rpm source RPM
abcm2ps-6.6.22 Linux binary, statically linked to diet libc. no Pango support, sorry.
abcm2ps-6.6.22-osx.zip Mac OS X binary, thanks to Chuck Boody
  Development release
abcm2ps-8.3.0-win32.zip binary for Windows without Pango support.
abcm2ps-8.3.0-pango-win32.zip binary for Windows with Pango support (thanks to Oliver Pfeiffer)
abcm2ps_8.3.0-1_i386.deb binary for Debian and Ubuntu
abcm2ps-8.3.0-1.i386.rpm binary RPM
abcm2ps-8.3.0-1.src.rpm source RPM
abcm2ps-8.3.1-osx.zip Mac OS universal binary, thanks to Chuck Boody

Binaries for Sun Solaris are available here.

abcm2ps can include graphics in the score, but only in EPS format (the %%EPS command). An excellent program for turning JPG, PNG and other bitmaps into compact EPS files is bmeps. For convenience, the static Windows command-line executable is here: bmeps.exe

Back to top


abcm2ps extensions

An exciting feature of abcm2ps is the possibility of writing extensions as PostScript code. Some of the ABC files included in the abcm2ps distribution show examples of such extensions.

I have gathered some code and written a few .fmt files. I remind you that to use the code in external .fmt files one has to write this command line:

abcm2ps file.abc -F formatfile

where formatfile refers to the file formatfile.fmt.

There you are a list of my .fmt files, which will grow as I finish writing and testing them. They all work on both the stable and development abcm2ps releases. Kudos to Jean-François Moine for writing the original code!

italian.fmt guitar chords using Italian notes (for abcm2ps 5.9.* and later versions).
Rewritten by Christopher Lane and Hudson Flávio Meneses Lacerda.
demo-italian.pdf
deco-guitar.fmt guitar chords diagrams demo-guitar.pdf
deco-marks.fmt position marks demo-marks.pdf
renaissance.fmt Format file for Renaissance music, by Eric Forgeot charlotte.pdf
thinlines.fmt draw thinner lines n/a
ps.zip Lots of new decorations and symbols, by David Lacroix Symbols.pdf
SpecialHeadsAndMarks.pdf
col.fmt Note and symbols in colour, by David Lacroix colors.pdf
colors.abc
Easy Notes new! Easy notes: note heads including the note name. By Jeremy Cowgar. easynotes.png

Back to top


abcmidi binaries

I provide Win32, Linux, and Mac OS X binaries for this very important piece of software, whose original home page is http://abc.sourceforge.net/abcmidi. The latest version is available as source from http://ifdo.pugmarks.com/~seymour/runabc/top.html.

abcmidi-20141016-win32.zip Windows binaries
abcmidi_20141016-1_i386.deb binary for Debian and Ubuntu
abcmidi-20141016-1.i386.rpm binary RPM
abcmidi-20141016-1.src.rpm source RPM
abcmidi-20140928-osx.zip Mac OS X binaries (thanks to Chuck Boody)

Back to top


tclabc binaries

Jean-François' other fine piece of software. tclabc is a graphical ABC editor written in tcl/tk.

tclabc_1.3.6-1_i386.deb binary for Debian and Ubuntu
tclabc-1.3.6-1.i386.rpm latest release for RPM-based distributions
tclabc-1.3.6-1.src.rpm source RPM

Back to top


ABCExplorer

screenshot ABCExplorer main window. Click to enlarge.

ABCexplorer is a free (as in "free beer") interface to command-line ABC tools. It's probably the easiest way to manage ABC Plus music on the Windows platform, and I highly recommend that you try it out.

Download it from its home page: abcsetup.exe

Although ABCexplorer is in its early phase of development, it's quite useable. Please help making it better by reporting bugs to its author.

Back to top


EasyABC

screenshot EasyABC loading an ABC collection. Click to enlarge.

EasyABC is an open source ABC editor for Windows, OSX and Linux. It uses abcm2ps and abc2midi, and it has a rich feature list. Most notably, it can import MusicXML files and export tunes in SVG format.

Kudos to Nils Liberg, original author, and to Seymour Shlien, current maintainer!

EasyABC home page is http://www.nilsliberg.se/ksp/easyabc/. Latest patched version is available here.

easyabc_1.3.5p8-1_all.deb binary for Debian and Ubuntu. You'll also need python-wxgtk2.8, python-pygame, and python-pyparsing.
easyabc-1.3.5_p8-1.noarch.rpm latest release for RPM-based distributions
easyabc-1.3.5_p8-1.src.rpm source RPM
EasyABC_1.3.5_p7.zip Windows version, thanks to Seymour Shlien
EasyABC_1.3.5_p7.dmg Mac OS X version, thanks to Frédéric Aupépin and Chuck Boody

Back to top


MC Musiceditor

screenshot MC Musiceditor editing a tune. Click to enlarge.

MC Musiceditor is free/open source (GPLv2) music notation software for Windows. It supports the ABC syntax (via abcm2ps) and a small modification of the language (no L: field). Free! Kudos to Reinier Maliepaard.

The MC Musiceditor home page is http://www.mcmusiceditor.com/.

Back to top


JedABC

screenshot A.k.a. ABC mode for Jed. Click to enlarge.
screenshot JedABC in index mode. Click to enlarge.

JedABC is an extension to the Jed editor that turns it into a powerful and easy to use IDE (Integrated Development Environment) for ABC files, with full integration with preprocessors, converters, players and previewers. It's similar in concept to BarFly or runabc, with several advantages.

Warning: JedABC is meant for geeks, that is for people who are computer proficient and are comfortable editing files by hand.

JedABC helps you write ABC files with useful features:

I'm tempted to say that JedABC is one of the nicest tools around for writing ABC. Forget the command line!

To use JedABC, install the Jed editor first. Packages should exist for your platform or Linux distribution. Also, make sure you have GhostView and a MIDI player installed. Then download JedABC:

Put abc.sl and jedabc.txt where all the other .sl files reside (usually /usr/share/jed/lib), then edit the system-wide jed.rc (/etc/jed.d/05jed-common.sl on Ubuntu) or .jedrc in your home directory to add these lines:

variable abc_encoding="utf8";
% Italian users only
define variable abc_language = "it";
autoload ("abc_mode", "abc");
add_mode_for_extension ("abc", "abc"); % plain ABC
add_mode_for_extension ("abc", "abp"); % ABC with abcpp macros

Windows users may use this binary Jed package: jed_0.99.18-s2.0.6-i154.exe and the files in this archive: jedabc-1.18.1.zip.

Warning: JedABC does not work on some Windows versions. I have no access to Windows machines anymore, so I'm afraid I cannot help in case of troubles. I warmly suggest that Windows users look elsewhere!

Back to top


abcpp

abcpp is a simple yet powerful preprocessor designed for, but not limited to, ABC music files. It provides conditional output, macros, symbol renaming, and file inclusion. I wrote it for two reasons: first, I wanted to overcome incompatibilities between ABC packages; secondly, I wanted to be able to write portable and more readable ABC files.

Inspired by the C and S-Lang ( http://www.s-lang.org) preprocessor, abcpp supports some directives that allow you to play a few tricks. You write your ABC music files with directives lines like #define or #ifdef, defining macros or excluding portions of text according to specific conditions. Then you preprocess your file with abcpp, producing an output file suitable for each ABC application or voice. Interestingly, abcpp is actively used with MusiXTeX-related programs.

In a nutshell, have your ABC cake and eat it too!

Download abcpp

The archive also contains the documentation. Many thanks to the developers who sent me patches!

Back to top


abc2prt

abc2prt is a simple tool to extract parts from multivoice ABC music files.

I wrote it because it's often desirable to give singers their own part in addition to the complete score. I know that Perl scripts exist that do the trick, and Unix users will be happy with them. However, installing Perl on a Windows machine only for running a script is quite an overkill.

abc2prt is a command line tool. Usage is

$ abc2prt -v voicename [inputfile] [outputfile]

If inputfile and outputfile are not specified, abc2prt will use standard input and standard output. An example is

$ abc2prt -v TII music.abc music-tii.abc

which will output the whole header and all the lines that belong to the voice defined as V:TII, including w: lines. At most five -v fields are allowed.

If there's enough request, I'll write a graphical version. The multivoice extensions were written by Matthew K. Junker, junker at alum dot mit dot edu. Many thanks, Matthew!

Download abc2prt

Back to top


More ABC stuff will come.

This site is maintained by Guido Gonzato, Ph.D.

For information, suggestions, etc, please drop me a line: guido.gonzato at gmail.com


Free Tibet!

My deeply felt sympathy to the Tibetan people

Made with Jed Abcplus at SourceForge.net