Automatous Monk Home

Getting Started

Automatous Monk consists of three Java applications and one Java applet:

Supporting Libraries


Automatous Monk Radio uses the JSyn libraries. JSynClasses.jar can be downloaded from here.


Automatous Monk also uses the jMusic libraries. jmusic.jar can be downloaded from here. Please also follow the detailed installation instructions at the web-page.

Automatous Monk Radio

Automatous Monk Radio (AM Radio) is one of the two main applications in the Automatous Monk suite. AM Radio runs in lava-lamp mode. That is, it will continuously generate CA melodies in real-time for as long as you want to listen to it.

It's easiest to run AM Radio by simply going to the website.

The main/applet class for AM Radio is com.automatous_monk.realtime.JSynAMRadio. To compile and run AM Radio you need to add the JSyn library to your classpath. JSynAMRadio can be run as either a Java applet or a Java application. In both cases, no parameters should be used. When running as an applet, a width of 600 and a height of 400 work well.

If you change the Rule setting or mode (chromatic, major, minor, etc.) setting directly (i.e., not by using the Randomize button), you will need to Stop and Start the Radio before the changes will take effect. However, changes made using the other controls (such as the mapping and bias settings) take effect immediately. Also, changes caused by pushing the Randomize button take effect immediately.

Automatous Monk Phonograph

Automatous Monk Phonograph is the other main application in the Automatous Monk suite. It is easiest to run it using Java Web Start. You can access the JWS version from the Automatous Monk home page under the "Automatous Monk Installation" section.

Once it starts up, the first thing you should try is just pressing the Compose button at the bottom. The CA Viewer window will appear displaying CA Rule 60, and the jMusic Show window will appear with a musical rendering of CA Rule 60. On the Show menu, select Play MIDI. After the MIDI tune finishes, try saving it to a file by selecting Save as MIDI file... from the Show menu. You now know the basics of operating Automatous Monk. Next try different settings on the main Automatous Monk control panel. When you find a tune you like, save it as a MIDI file.

If you want to run it from the command-line, CAPlayerGUI has the following invocation syntax:

GarageBand Loop Generator

GarageBandLoopGen has the following invocation syntax:

Note that GarageBandLoopGen does not directly create AIFF files in Apple Soundtrack/GarageBand loop format. Not only that, but it doesn't even create AIFF files; instead, it creates the same type of MIDI files that the regular version of Automatous Monk creates. So, why the heck did I create GarageBandLoopGen? Why not just use Automatous Monk, instead? Well, those are good questions. I guess my main motivation at the time was to create a simplified interface that directly corresponded to the loop properties displayed in GarageBand. So, that's what I've done. But you could create the exact same MIDI files from the full-blown version of Automatous Monk, if you prefer. (Actually, that's not entirely true, since GarageBandLoopGen uses a bass voice, while Automatous Monk does not have an option for using a bass voice.)

At any rate, you're probably wondering how you can create actual GarageBand loops from the MIDI files generated by GarageBandLoopGen. There are a lot of different ways to do this, but here is a procedure that works well for me:

  1. Create a MIDI file using GarageBandLoopGen.
  2. Open the MIDI file in QuickTime player.
  3. Export the file as a .aif file using the Music to AIFF Export setting in QuickTime Player.
  4. Open the AIFF file in SoundHack (which you can download for free).
  5. From the Hack menu, select Normalize. This adjusts the overall volume of the AIFF file; otherwise, it will be too soft.
  6. Now, use the Apple Soundtrack Loop Utility to convert the AIFF file to the Apple Soundtrack/GarageBand AIFF loop format.


MIDIFileGen has the following invocation syntax:


Note that, if you specify a particular rule, you should specify a file path, while, if you specify all, you should specify a directory path.

Here is a sample invocation:

Things to Try

I hate to give you too much guidance, because I'm hoping you might go down interesting paths that I haven't tried, but here are a few tips and suggestions:

Explanation of Controls

Automatous Monk Radio

Automatous Monk Phonograph


GarageBandLoopGen has similar controls to those of Automatous Monk Phonograph.

Automatous Monk was programmed by Paul Reiners. Paul was a math major at the University of Wisconsin-Madison, and currently works as a staff software engineer at IBM. He lives in Minnesota, plays the piano as a hobby, and is a Morton Feldman wanna-be.

Creative Commons License
This work is licensed under a Creative Commons License.


Hosted by

Development project site hosted by Logo