descriptionAnn Hell Ex Machina (music writing software)
homepage URL
repository URL
last changeWed, 28 Dec 2011 11:08:21 +0000 (28 12:08 +0100)
last refreshSat, 31 Oct 2009 21:37:28 +0000 (31 22:37 +0100)
content tags
Ann Hell Ex Machina README

 Ann Hell Ex Machina - Music programming language and compiler
 Copyright (C) 2003-2011 Angel Ortega <>
 Home Page:

This software is GPL. NO WARRANTY. See file 'COPYING' for details.


Ann Hell Ex Machina (AHXM) is a set of tools for composing and generating
music. Given a text file in a special-purpose music definition programming
language (the Ann Hell Scripting, or AHS for short), it outputs
multi-channel wave files much like a music compiler. The included software
synthesizer supports raw PCM, .wav, .pat and .sf2 files as instrument
definitions and a full set of digital filters as echoes, flangers and
reverbs. MIDI output to external synthesizers is also supported.

The AHS language resembles text-based music markup as the one in Lilypond,
with more specialized commands for the PCM wave generation, digital effects
or the MIDI definitions. Simple notes and chords, repeating blocks,
patterns, arpeggiators, tempo and measure changes, transpositions, staccato
/ tenuto, marks, random blocks, are all usable via simple (usually
one-letter) commands. Stereo, quad, 5.1 or whatever desired number of audio
channels can be used and each software synthesizer note be mapped to any of
them freely. Input formats not directly supported can be used via external

This is a very personal project and its features are fitted to my own way of
making music, so there may be missing capabilities that you, as a musician,
consider essential, and others that you may see as superfluous. I don't
care. This software is made for me, by me. I'll consider any patch from
external developers, but only accept the ones I feel meet my needs.

This software is designed for Unix/Linux systems, but also runs under win32.

If you want to hear examples of music made with Ann Hell Ex Machina, go to (the Ann Hell Home Page).

Compiling and installing

As always,

	su -c "make install"

As this program relies heavily in floating pointing arithmetic, it can
benefit greatly from compiler optimizations, so you can try:

	CFLAGS="-O2 -ffast-math" ./
	su -c "make install"

Angel Ortega -
2011-12-28 Angel OrtegaTweaked CFLAGS detection in
2011-07-13 Angel OrtegaNew file .my-git-push.
2011-02-16 Angel OrtegaVersion 1.0.13 RELEASED.1.0.13
2011-02-09 Angel OrtegaFix file permissions.
2011-02-09 Angel OrtegaAdded 'win32dist' Makefile target.
2011-02-09 Angel OrtegaUpdated RELEASE_NOTES.
2011-02-09 Angel OrtegaFix file permissions.
2011-02-09 Angel OrtegaUpdated README.
2011-02-09 Angel OrtegaPrint the configured drivers in config and help.
2011-02-09 Angel OrtegaFix file permissions.
2011-02-01 Angel OrtegaMore reformatting.
2011-02-01 Angel OrtegaFixed file permissions.
2011-02-01 Angel OrtegaFixed stress.c.
2011-02-01 Angel OrtegaFixed file permissions.
2011-02-01 Angel OrtegaMore reformatting.
2011-02-01 Angel OrtegaMore reformatting.
7 years ago 1.0.13
10 years ago 1.0.12
10 years ago 1.0.11
11 years ago 1.0.10
11 years ago 1.0.9
12 years ago 1.0.8
12 years ago 1.0.8-rc1
12 years ago 1.0.7
12 years ago 1.0.6
12 years ago 1.0.5
12 years ago 1.0.4
12 years ago 1.0.3
12 years ago merge-paged
12 years ago root-paged
12 years ago 1.0.2b
12 years ago 1.0.2
6 years ago master