Ramugen
A random music generator by Greg Fox
Ramugen is a computer program which composes music.
What's Here?
Ramugen (352KB) for 32-bit Windows, complete with Borland Delphi source code.
Early Version (383KB) for 32-bit Windows, totally different but just as functional, complete with non-object oriented source code.
Ramugen Components Package (128KB) for Borland Delphi, designed using Delphi 7 but may well be compatible with earlier versions. I might release a shorn-down Delphi 2 version in the future for maximum compatibility.
For support click here
Ramugen is also hosted at The Internet Archive, Torry's Delphi Pages and SourceForge.net.
The Main Ramugen Application
Ramugen stands for "Random Music Generator" and is intended to assist in the composition of music making use of chance operations. The late "number pieces" of John Cage often present performers with note events : a pitch (or pitch range), a duration (often in seconds) and a range for amplitude.
That's kind of what Ramugen does, except Ramugen accounts for the varieties of chance operation which are possible.
You can set the hard limits, for example "no lower than pitch 40, no higher than pitch 90";
You can set certain probabilities, for example "0.5 probability that amplitude will change from what it was for the last note";
You can set weightings for the selection of data, for example "highly unlikely that F#5 will be chosen, but equal probability for all the others apart from C3, which is highly likely to be chosen".
Ramugen makes these kinds of operations very simple, allows you to define 128 different sets of settings, and then Ramugen will perform the note-events based on those settings.
In addition to this, Ramugen can be given a weighted system for choosing among the different sets of settings, and then another weighted system for choosing among the weightings used to pick the sets of settings.
There are many more features besides, and basically whatever you'd like to be able to do using chance operations, you will be able to.
What's Ramugen like to use?
You don't need to be a programmer. There's no "scripting" involved here. You set values in boxes, WYSIWYG-style, and then click "play". You save and load your settings using intuitively-marked buttons and you sit back and listen to your new masterpieces.
To get the most out of Ramugen, I would strongly recommend that you plug it into a good quality soundcard or into an external sampler such as SynthFont.
Using SynthFont you can write music for non-standard tunings and for sampled instruments or collections of samples.
I would also recommend that you treat Ramugen's output as raw material for your compositions. A touch of reverb is sometimes enough to turn it into a piece of music; other times you need to shape the melodic phrases by applying a dynamic envelope to simulate the human tendency to "swell" a melody. You may, of course, wish to combine several threads produced by Ramugen into a work of greater complexity.
The Legacy Version
Very similar to the modern version, but programmed differently. The legacy version was written using David Churcher's excellent "MIDI-Out" component and RAD-style GUI-based application logic in Delphi 2. The modern version was written using greater encapsulation (and is therefore easier to understand) in Delphi 7 using the Ramugen Components.
The Ramugen Components
Click here for support for the
Ramugen Components Package for Delphi 7.
Pieces of Music Written by Ramugen
Ramugen's Awakening - early pieces made by the newborn Ramugen in alpha/beta stage
Chamber Symphony - to coincide with the debut public release candidate v1.0, this is a formal piece in virtual 'classical' style, whatever that means. You'll know what we mean when you hear it.
Flute Sonata - a 15-minute piece for 19tet piano and 11tet flute written using Ramugen's multi-layer mood settings. RMG "Ramugen savefile" included in the archive (plus FLAC,OGG,MP3 etc).
Ramugen's Zazen Practice - a 90-minute meditation collection where Ramugen randomises her range-settings : many levels of un-choice and yet the music still cometh.... are we imagining it all after all?
Oboe Symphony - a collaboration between Ramugen 2 and I; Ramugen 2 made an interval-based melody of about 4 minutes, so I cut it into thirty small phrases and made it repeat in a phase-shifting stereo-panned sound space - the phrases repeat every N seconds, and each one of them has a different value for N, so the whole thing is thirty minutes of repeating but never-repeating music.
Thanks
Thanks are due to Daniel Dennett, David Cope and Kenneth Rundt for support, inspiration and encouragement, to Christopher Fox (no relation) for artistic inspiration and instruction, to all at UK Brights Google Group for moral support and to Zarko Gajic and John Barrow for completely invaluable guidance regarding object-oriented approaches to Delphi programming. Finally to Marco Cantú for PAS2HTML, which I've eagerly used to generate online source-code listings for the support page.
Last updated 16th of July 2007 by Greg Fox