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

  • edit the vector
  • plot selected vectors
  • rename the vector
  • switch the vector view between icons or rows
  • select all vectors
  • Create tracks - create clips from selected vectors and convert the clips to tracks
  • load vectors from file, see load vectors from file
  • save selected vector to file, see load vectors from file
  • delete selected vectors
  • copy X-dimension of selected vector to a new (data)vector
  • copy Y-dimension
  • copy Z-dimension
  • edit properties for advanced users. Useful for plugin developers
  • dump vector to logfile for debugging reasons

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

  • Color - changes the color of a vector that has not a third dimension (the dimension that is used for coloring)
  • Cross - this applies to complex maps and images.
  • Load vector values from file
  • Save vector values to file
  • Play buttons allow to listen to the current edited vector
  • Reset - set the vector values to the values before entering the vector
  • Initialize - set the vector to the values when it was created

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

  • x’= f(x, y, z)
  • y’= f(x, y, z)
  • z’= f(x, y, z)

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

  • In order to create a clip in the clip panel, click at a vector in the vector panel (arrow 3). In the left upper corner of the clip panel an outline of the vector becomes visible. That means that when you click anywhere in the clip panel, a clip is created.
  • When no vector is present, you first have to create one by clicking at a vector in the vector choice. A vector is created in the vector panel (arrow 1). But at the same moment an outline becomes visible in the left upper panel of the clip panel (arrow 2). Click an ywhere in the clip panel to create a clip.
  • If the outline of a vector is visible in the clip panel and you don't want to create the vector ignore it (but don't click in the clip panel) or right-click with the mouse in the clip panel.

Playing a piece of music

The following play options are available:

  • Rewind - set the current position at zero
  • Play - start to play the entire piece
  • pause playing
  • Step - play all MIDI events at the same time
  • stop playing and rewind
  • generate (but no playback) the entire music
  • Emergency - sometimes the playback of an instrument “hangs”. Press emergency to stop

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.

  • Edit - when clicking this button the clip switches to edit mode
  • Play - the clip starts to play, when pressed it changes into Stop
  • stop playing, when pressed it changes into Play
  • link this clip to a another clip; click this button, next to the clip to link to
  • Unlink - remove the link to this clip
  • duplicate this clip
  • delete this clip

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:

  • Offset determines the exact start position of the clip in 32nd notes
  • Duration - The exact duration of the clip in 32nd notes
  • Loops - Number of times a clip is repeated. When the clip is finished playing it restarts at the beginning. This is a suitable way to insert loops
  • The Stretch factor is the factor with which to lengthen (or to shorten) the notes of a clip. A number of 2 makes all notes twice as long, 0.5 halves the length of the notes. The Length of the clip remains unchanged, so the number of notes changes. When you Ctrl-click the drag handle of a clip, the number of notes already visible remains exactly the same, meaning that the stretch factor is changed to accomodate the change of length of the clip.

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

  • Reverse - play the clip backwards
  • Mirror - flip the notes of the clip vertically. A low note becomes a high note and vice versa
  • Track - convert the clip to a track, meaning its offset is zero and its duration the length of the piece

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

  • Sound card - when there are multiple soundcards present you may opt for a different sound card
  • MIDI channel number - select the MIDI channel number. Channel number 10 is the drum channel, all notes are interpreted as drum sounds. When choosing a drumming instrument automatically channel number 10 is chosen. Several clips may output to the same MIDI channel. This can be a desired phenomenon when you wish to output several MIDI controller to a clip that contains the notes. However when you want two clips with a different instrument be sure to have selected different MIDI channels. Compose! automatically selects for each new clip a MIDI channel one higher than the previous created clip. It start renumbering from 1 when channel number 16 has been reached
  • Playback style - ranges from very legato via normal to very staccato. Does not function yet
  • Music scale - Select a musical scale
  • Tonica - and its tonica

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

  • Moving a clip around is easy. Click on it and drag it to the desired spot. The window scrolls automatically. Measures are automatically created if you need them. There is a bottom however and this will not be resized.
  • A clip can be made shorter or longer by clicking and dragging its resize handle.
  • When the resize handle of a clip is Ctrl-clicked then the duration of the notes will be accomodated will be changed in such a way that the number of notes remain the same. The stretch factor is changed.
  • A track is a clip that always starts at the beginning and runs to the end of the piece. Its size will be changed automatically when the number of measures is changed. A track cannot be moved around. Tracks can be created in two ways:
    • Edit the clip and check the Track option. Compose remembers the clip settings, unchecking the track option restores the clip to its original position.
    • Select the vectors to be tracked and click the track button. For each selected vector a track will be created.

The Clips local menu

  • Rewind - set the current position at zero
  • Play - start to play the entire piece
  • pause playing
  • Step - play all MIDI events at the same time
  • stop playing and rewind
  • generate (but no playback) the entire music
  • Emergency - sometimes the playback of an instrument “hangs”. Press emergency to stop
  • Zoom in - enlarge the picture
  • Zoom out - reduce the picture
  • Soundcards - select a soundcard for all clips; this setting will reset the local settings of the clip itself
  • Music scale - select a music scale for all clips; this setting will reset the local settings of the clip itself
  • Tonica - select a tonica for all clips; this setting will reset the local settings of the clip itself
  • Style - select a style for all clips; this setting will reset the local settings of the clip itself
  • Quantize - the quantize settings determine where a clip is set at the piece;this gives the user more control over how the clips cooperate together

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:

  • duplicate clips
  • link clips

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.

  • .txt files A stream of numbers separated by space and newline. It is converted to one datavector when loaded. When saved, only the current dimension is saved. This is by default the Y-dimension but you may have selected another dimension in the vector editor.
  • .csv files A .csv file is a text file, where each row contains numbers separated by comma's, rows are separated by newlines. Each row has the same amount of numbers and the first row contains a description of those numbers (separated by comma's) that will be used as the name of the vector. Each column is treated as a vector. When some data are unintelligible they will not be read, when a column contains no valid data it will not be read. Before reading the data the user will be presented a window with the columns (= vectors) found. The user can check which vectors to read. Vectors can be saved as .csv files. All available dimensions will be saved, The first row will contain the vector name and the dimension. Reading and writing od .csv-files is not symmetrical: a vector will be saved as one .csv-file, but the sane .csv-file may yield several datavectors (one for each dimension saved).
  • .mid files MIDI (Musical Instrument Digital Interface) is used to exchange electronic instrument data. Compose! is able to read a MIDI file and present the user a list of available MIDI channels (= vectors). The user which vectors he wants to read. The vectors are so called MIDI vectors and can be draged and dropped on clips like any other vector.

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.

  • Play - start to play the entire piece
  • stop playing and rewind
  • delete clear entire MIDI container
  • save entire MIDI container
  • clear MIDI container before each recording (default)
  • add new recording from the beginning (time = 0)
  • add new recording at end of current MIDI container
  • add new recording at a time the user can specify in 32nd's
user_manual.txt · Last modified: 2014/06/17 21:53 (external edit)
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki