Automatous Monk Home
Getting Started
Automatous Monk consists of three Java applications and one Java applet:
- Automatous Monk Radio
- Automatous Monk Phonograph
- MIDIFileGen
- GarageBandLoopGen
Supporting Libraries
JSyn
Automatous Monk Radio uses the JSyn libraries.
JSynClasses.jar can be downloaded from here.
jMusic
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:
- java com.automatous_monk.apps.CAPlayerGUI
GarageBand Loop Generator
GarageBandLoopGen has the following invocation syntax:
- java com.automatous_monk.apps.GarageBandLoopGen
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:
- Create a MIDI file using GarageBandLoopGen.
- Open the MIDI file in QuickTime player.
- Export the file as a .aif file using the Music to AIFF Export setting in QuickTime Player.
- Open the AIFF file in SoundHack (which you can download for free).
- From the Hack menu, select Normalize. This adjusts the overall volume of the AIFF file; otherwise, it will be too soft.
- Now, use the Apple Soundtrack Loop Utility to convert the AIFF file to the Apple Soundtrack/GarageBand AIFF loop format.
MIDIFileGen
MIDIFileGen has the following invocation syntax:
- java com.automatous_monk.apps.MIDIFileGen <ruleNumber | all> <filePath | dirPath> [-r]
where
- ruleNumber: is a CA rule number (0--255 inclusive). Only one MIDI file,
corresponding to the designated rule, will be generated.
- all: is the string "all" (without the quotation marks). A MIDI file for each of the
256 rules will be generated.
- filePath: is a file path for the MIDI file to be generated
- dirPath: is a directory path where MIDI files for all the rules will be generated
- -r: Random initial state option is used, if specified
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:
- java com.automatous_monk.apps.MIDIFileGen all C:\Rules
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:
- I like to just hit the Random Rule button until I find something interesting. If you're doing this, keep the number of Generations low (no more than 128 or so), so that you can try different combinations quickly. After a while, you'll get to the point where you'll have a pretty good idea whether the CA might sound interesting by just looking at its visual representation.
- The Multi-Voice option can sound cacophonous because of the large number of notes it will play simultaneously. It is usually best not to combine this option with the Binary Number or Cumulative Binary Number options.
- The Binary Number and Cumulative Binary Number options work well in tandem, and even more so when you choose No bias. The Binary Number voices tend to sound like a rhythm section, while the Cumulative Binary Number voices are more melodic. (You can also try adding Multi-Voice for the harmony, but, again, this might just result in cacophony.)
- Try some of the more exotic modes, such as Pentatonic or Indian.
- If you're a music/MIDI hacker, take any interesting MIDI files you've generated with Monk as a starting-point and try combining them, embellishing them, or whatever using MIDI editing and recording tools. If you come up with something interesting, please let me know.
Explanation of Controls
Automatous Monk Radio
- Rule: A CA rule from 0--255 (inclusive).
- Binary Number Mapping: Each row of the CA is coded up as a binary number that is used as a MIDI
pitch.
- Cumulative Binary Number Mapping: Same as binary number, except a running total of the row values
is used to determine the pitch.
- Left Bias: When computing binary number, considers left-hand-side more significant than
right-hand-side.
- Right Bias: When computing binary number, considers right-hand-side more significant than
left-hand-side.
- Various music mode radio buttons: Let you use different musical scale types. (Need to stop and start, for any change to the mode to take effect.)
- Randomize: Selects a rule and mode at random for you.
- Start/Stop: Starts and stops the generation of music. Also, reinitializes the CA and music generation with any settings you might have
changed (such as the Rule or the musical mode).
Automatous Monk Phonograph
- Rule: A CA rule from 0--255 (inclusive).
- Random Rule: Selects a rule at random for you.
- Generations: The number of rows of the CA to be generated.
- Display CA: Whether to show a visual rendition of the CA.
- Multi-Voice: Each column of the CA corresponds to a pitch.
- Binary Number: Each row of the CA is coded up as a binary number that is used as a MIDI
pitch.
- Cumulative Binary Number: Same as binary number, except a running total of the row values
is used to determine the pitch.
- Left bias: When computing binary number, considers left-hand-side more significant than
right-hand-side.
- Right bias: When computing binary number, considers right-hand-side more significant than
left-hand-side.
- No bias: Creates a voice with left bias and a voice with right bias.
- Tempo: Beats per minute.
- Compose: Constructs the jMusic score for the CA.
GarageBandLoopGen
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.
This work is licensed under a Creative Commons License.
Mail reiners@automatous-monk.com
Hosted by www.monkeybrains.net
Development project site hosted by