Table of Contents

User manual

We at MuSoft Builders think that Compose! is a wonderful program. It can take any object that resides in a computer and turn into music, whether it be fractals, data, tekst, images, your brain waves or whatever. Such a computer object is organized in a so-called vector.

Vectors form a numerical representation of a computer object. The same vector can often produce a variety of numbers. This depends on the parameters you set for a vector. You can set the vector parameters in the vector editor. To make your life a lot easier many vectors have already been predefined. There are many vectors to create fractals into numbers, a vector has been defined to convert text into number, your MIDI keyboard and even your brain waves!

Clips create music out of vectors. The same vector can be converted into many sorts of music by manipulating parameters of the clip. In the quick start you saw how a vector can sound differently by just assigning vectors to aspects or changing the tone scale. But a clip can also reverse a vector, or mirror it or looping. Which parameters you set can be determined in the clip editor.

If you remember these two concepts: vectors convert computer objects into numbers and clips convert vectors into music then you understand the basic principle of Compose!. By means of plugins you can add your own vectors. Consult the technical manual on how to install Compose! plugins.


The Compose! window at the left shows a choice of vectors. Click at one of the vectors in the vector choice. It appears in the vector view. By clicking at one of the buttons just above the vector choice the type of the vectors displayed is changed. To modify the appearance and hence the music of a vector it can be edited.

Right click at the vector to bring op the local vector menu.

The local vector menu

Editing a vector

Double click a vector in the vector view and the vector editor comes up. It has a number of tools in which to change all kind of parameters of the vector. Because some vectors can take quite some time to plot they are not plotted automatically but only by pressing the plot button. The function of the buttons is.

Edit tools

Plotting vectors

The vector plot creates a separate window in which the vector is plotted. The vector always accomodates the plot window and is automatically replotted when the window is resized. When the plot is maximized the window border disappears. This allows you to make screen-sized wallpapers with the plotter. A plot can be saved as a 32bit bitmap or copied to the clipboard.

When moving the mouse near the upper border a toolbar appears in which the colors of the vector can be changed.

Creating vector plugins

Developers can create vectors. This can be useful to interface with own devices for example or to insert specific fractals. The how-to can be found the the plugins paragraph of the technical manual.

Types of vectors

Vectors are a translation from a concept into numbers. A concept maybe a mathematical formula (usually a fractal), text, numbers, a MIDI keyboard, a brain wave scanner, artificial plants, whatever. All these vectors can be subdivided into several groups.

The biggest group of vectors are the so-called dynamic systems. This group contains formulas like

Depending on whether they are 1D, 2D or 3D only a subset of these equations will be used. Fractals like Henon or Lorenz fall into this category. Strange attractors are a formalization of all possible dynamic systems. There is a user defined fractal with which you may create your own fractals along the lines defined above.

The most known vector types are the complex maps. The Mandelbrot and the Julia fractal are its most famous examples. They depict a map in which a value for each pixel is computed by a series of iterations. The initial value of this iteration is very important. In the Mandelbrot way this is computed by the coordinates of the point (pixel) itself. The Julia way of initialization is providing two constants: x and y, as initialization values. The same formula then yields different results as the differences between the Mandelbrot and the Julia set show.

There is a group with plants: the Iterated Function System (IFS) and the Lindenmayer fractal. Both use different techniques. The Lindenmayer fractal uses a context free grammar to create all kind of plants.


Inserting a clip

Playing a piece of music

The following play options are available:

Quick editing a clip

When you have created a clip it appears as a small piano roll. When you move over the clip a panel with several buttons appears above the clip: the so called quick-buttons. One of the buttons is the play button: click it and this clip will play. Above the clip view you see two rows of buttons, The first row are the play controls. When pressing the play button all clips will play.

Editing a clip

You enter the edit mode by clicking on the edit button. On the left are the clip type buttons: buttons with which you indicate which type of clip you want this clip to be. When clicking the instruments button, it shows a menu with all available instruments. Choose an instruments and the clip behaves like an instrument clip. The same will happen when you click the drum or controller button. Clicking the chord button turns the clip into a chord generating clip.

There are four edit boxes right of the clip type buttons. Entering a number in the edit box and pressing Enter will immediately apply this number to the clip. Clicking the button right of this number will reset the value to a suitable default. Their meaning is:

At the right of these four edit boxes you will find push buttons that switch a feature on or off.

At the far right there are several menu boxes that gives you a range of options that apply to the clip you are editing

Each clip has several aspects that determine the music. The note aspect determines the height of the notes and how to rescale. The duration aspect allows you to edit several parameters of the duration while the volume aspect has some parameters that influence how the volume of a clip's music is generated. At the bottom of the editor there are buttons of which each opens a new editor with extra options.

Each aspect editor allows the dimension of the vector to be chosen. Click at X, Y or Z. Depending on the vector one or more dimensions might be disabled. Each aspect vector has a minimum and a maximum. When the rescale button is pressed (default) then all vector values will be rescaled between minimum and maximum. When it is not pressed (no rescaling) values will not be rescaled. Values below the minimum will be set to the minimum, values above maximum will be set to maximum.

Note aspect editor

Values can be entered as symbolic MIDI notes or as numbers, they will always be translated to symbolic MIDI note names.

Duration aspect editor

When no vector is provided a default value will be supplied. This value is. as is the case with minimum and maximum, in 32nd notes, the basic positioning and duration unit of Compose! The default value is 4, meanin 4 32nd notes, so the default value is a 1/8 note.

When nothing is done, all values between minimum and maximum are generated. This is not always pleasant to listen at. Therefore the user can limit the values to some selected values. Just click the values you wish.

Volume aspect editor

The volume aspect editor just has a minimum, maximum and a default value that is used when no vector is assigned.

Transpose editor

The transpose editor is not an aspect editor. Its function is to transpose notes generated by the clip. The notes can be transposed up or down, added with octaves. When notes are transposed enharmonically the resulting note lies always within the musical scale. This process is well defined for a Major and Minor scale, but not for other scales. What is a Sixth for a 'pentatonic' scale? Compose! does not answer this question but takes a pragmatic approach: when enharmonical transposition takes place for a scale that is Major nor Minor, simply the number of notes in the scale are counted. So a Sixth in a Pentatonic scale would be an octave in a Major scale.

When transposing chromatically just click the number of half-tones you would like to change the notes. The scale is not considered when transposing in this way.

Moving a clip around

The Clips local menu

Precision and Quantization

Each composition is divided into measures. The current version of Compose! only knows the 4/4 measure timing. (In a future version other measure bases will be allowed, like 9/8, 2/1, or 12/16) A measure base consists of four quarter notes, 8 eighth notes or 32 32nd notes. The 32nd note is the highest resolution of Compose! All measures of time and duration are in 32nd notes. Suppose that the duration of a clip is 10 measures. When editing the clip the value for duration is 320, 10 x 32 32nd notes.

It is not always easy to align the clips precisely. Two methods can be used to do that:

To be able to align the clips precisely quantization might be used. With quantization the user can align the clips at a less precise level, like whole or halve notes. There are several quantize buttons. The button label 2 means that a clip can only be placed at half note positions being 0/4 and 2/4 or, in 32nds, on 0/32 and 16/32. The 4 button means that all clips can be set at 1/4 interval. Default is 32, a clip can be put in any position.

Themes and links

Compose! has several tools to play with themes, these are:

Duplicating clips is easy: click the duplicate button and the clip is automatically copied and inserted near the clip that was copied. Move the clip to a suitable place. The newly created clip is a normal, independent clip. Changes in the original clip do not affect the copied clip.

This is different in linked clips. They a dependent on the original clip. Some changes in the original clip do have an impact on the linked clip. What is a linked clip?

View Explanation
In this example there are two clips. One based on a Lorenz fractal and the other on the Henon fractal. Both are shown with their X-dimension.
Click the Link symbol, next click at the clip which has to be linked. This clip, the linked clip, will take the vector as its input. The old vector is not discarded, when unlinking the clip it will be used again.
After selecting the mirror option the data from the first clip is used and mirrored by the linked clip.
When the linked clip is unlinked the present vector is used again.

Linking clips is a way to use a certain theme and to use this theme in other clips, thereby lengthening or shortening the notes, reversing the theme or whatever. This allows you to simply click a fugue together.

Reading and writing of files

The whole piece can be loaded and saved in the .afcod format.

Vectors can be loaded and saved in additional formats: .txt, .csv and .mid.Right click in the vector view and click Load to open a file. Right click a vector and click Save to save the vector in a specific format.

The MIDI local menu

When Compose! plays music it is recorded in the so-called MIDI container. The MIDI view displays the contents of the MIDI container. You may playback or save the contents of the container, but you may also specify how recordings are treated. The standard behavior of the MIDI container is to remove the previous recording when starting a new recording. The tapeover facility allows you to add recordings over existing ones.