Welcome to the Fractal MusicLab DEMO....!

This file contains program operational information, some information 
regarding the included MIDI and SMUS examples, and ordering 
information.  We hope you enjoy this DEMO, but in any case, we 
would love to hear any suggestions or comments you have.  

This program DEMO is similar to the commercial product with the
exceptions that all Save functions have been disabled.


Please call us with any questions or comments at (414) 733-6863, 
or direct them to the address below.

If you wish to purchase this program, just sent a check or money 
order for $89 + $4 S&H (in U.S.) to:

                         Digital Expressions Research
                         W6400 Firelane 8
                         Menasha, WI  54952

We will also be happy to send it COD (US only!).


      *****  About Fractal MusicLab  *****


Fractal MusicLab is a unique algorithmic music composition program
that produces organized musical structure from fractals.  You 
compose original music sequences by generating a fractal structure, 
and then selecting and applying specific musical elements to that 
structure.  Creating novel and appealing music can be as simple as 
pressing a few buttons, or as complex as your time and creative 
energy allow!

Fractals are infinitely detailed mathematical objects which often 
exhibit a hierarchical organization resulting in the characteristic 
property "self-similarity".  Self-similarity implies that the fractal shapes 
we see are similar, exactly or statistically, at any arbitrary 
magnification level.  Self-similar fractal structures are musically 
interesting because they are analogous to the familiar "theme and 
variations" structure found in most music.  We have found that 
Fractal MusicLab can produce surprisingly beautiful and appealing 
compositions.

Fractal MusicLab is capable of generating an infinite number of 
self-similar fractal scores by using Iterated Function Systems and IFS 
Codes.  Iterated Function Systems are a relatively flexible and 
user-friendly means for generating and editing fractals.  However, if 
you do wish to compose music from non-IFS fractals,     Fractal 
MusicLab allows you to convert ILBM images into music sequences.  


      *****  Program Description  *****


Music composition with Fractal MusicLab consists of two basic opera
tions; rendering a musical "Score" from an IFS Code and generating 
a sequence from that Score.  Numerous options exist in the various 
windows to control each compositional step.  The program has been 
designed, however, with sufficient defaults to allow performance of all 
major program operations from almost any point in the program by 
using menu selections and Hot Keys.  You can literally load, edit, or 
create a new IFS Code, render the Score, and generate and save a 
sequence from the opening window. 

The main menu allows loading and saving of all the various data files 
types used by the program.  "Hot Keys" are defined for initiating all 
program operations.

The key to understanding Fractal MusicLab is understanding the vari
ous types of data used by the program. There are five basic data 
types: IFS Codes, Scores, Sequences, Filters, and Presets.  In addi
tion, the displayed Image can be manipulated separately from, but 
similarly to, the Score, i.e. loaded, saved, or used to generate musi
cal sequences. Each data type is described below; additional in
formation will be found in the tutorials.

IFS Codes

Iterated Function Systems produce images by iteration,  repeatedly 
calculating the value of a mathematical function using the result of 
the previous calculation as input for the current calculation.  In this 
program, the Iterated Function Systems consist of affine transforms, 
usually between 2 - 20 , each one having an associated probability.  
In two dimensions each transform in the IFS can be represented by 6 
coefficients and a probability.  All the coefficients for all the trans
forms comprise the IFS Code.  Fractal MusicLab also saves the 
probability as part of the IFS Code.  Each IFS Code compactly repre
sents a unique musical composition!

Score

The Score forms the basis of most program compositional activities 
and is actually a large underlying data array which contains the re
sults of the IFS Code iterations.  A Score array value increments 
each time the result of an iteration falls within the array's "cell limits".  
The Score "screen image" displays a color based on the ratio of that 
cell's value to the maximum cell value.  

At large numbers of iterations, above 1-2 million iterations, the Score 
converges to the attractor of the mathematical function represented 
by the IFS Code, and a unique measure representing the density of 
"hits" on the attractor. 

The overall Score Limits, which determine the values mapped into 
the Score array, can be automatically set such that the attractor fully 
fits within the Score (Screen Display), or such that the Score only 
uses a selected portion of the total attractor.  Saving Scores also 
saves these limits.  This allows you to reload a Score and its IFS 
Code at a later time and continue iteration.

The Score always spans the MIDI pitch range 0 - 119 (C0 to B9) for 
640 time units, regardless of how the display is scaled relative to the 
IFS Code.  The actual duration value of the Score time units, quarter 
note, eight note, etc., is user determined but is initially set to a 
quarter note. 

Images

The display image can be used in a manner generally similar to the 
Score except that there is no underlying data array.  Each transform 
is assigned a display color.  The principle use of generating 
sequences from ILBM images is to allow use of other non-IFS fractal 
types for composition.   

Sequence

Sequences are time-ordered lists of notes that are loaded from disk 
or generated from a score.  Fractal MusicLab supports up to 16 
instruments per sequence.  Each instrument can play over either 
MIDI or Amiga internal audio.  

Filters

Fractal MusicLab allows you to define pitch filters which control which 
note pitches can be produced when a sequence is generated.  All 
filters are defined relative to a 'C' root.

Presets

A preset is a set of pitch filters for each of the 16 separate sequence 
parts.  Presets are always applied relative to a 'root'; the default root 
of all pitch filters in a preset is 'C'.  This root can be changed in the 
Preset Window.  Fractal MusicLab allows user definition, saving, and 
loading  of Presets 1 to 32.  Preset 0 is a default preset allowing all 
note pitches; it can not be edited.  

A preset, either a user defined preset or the default preset, is in effect 
whenever a sequence is generated or the Score/image is played.  
You may toggle among presets and roots while playing the 
Score/Image to create a real-time performance.

Main Menu

The Main Menu consists of 4 menus including Project, Data_Files, 
Windows, and Undo.  This menu is attached to almost all of the pro
gram windows except the Note Editing Window.  This later window 
has its own menus.  Access these main menus by clicking and hold
ing the right mouse button.

Most of the menu selections in the Project and Data_File menus are 
self-explanatory and are primarily for loading or saving files.  When 
loading IFS Codes, Scores, or Filters from these menus, the previous 
data is first removed.  If you wish to append additional data, use the 
LOAD gadgets in the IFS Code Window (F7), Score Generation Win
dow (F6), and Filters Window (F9) respectively.

The Windows menu provides direct access to the major program win
dows and lists the "Hot Key" equivalent.  

The Undo menu is used only for undoing the last operation on a 
Score.  When working with the screen image, "Undo" has no effect.

Hot Keys

The following Hot Keys have been defined to provide single key 
stroke initiation of certain program actions.. 

Function keys
   F1 Open Sequence Manager Window
   F2 Open Orchestration Window
   F3 Open Note Editor
   F4 Open Sequence Generation Window
   F5 Open Seq. Generation Preferences Window
   F6 Open Score Generation Window
   F7 Open IFS Code Window
   F8 Open Preset Selection Window
   F9 Open Preset Editor and Filter Def. Windows
   F10   Open Player Window

Numeric Keypad
   (* )     Start/Stop IFS Code "test" mode
   (-)      Select previous transform
   (+)      Select next transform
   (Enter)  Toggle IFS Code Graphic edit mode

Keyboard
   A  Add transform to IFS Code
   D  Delete selected IFS Code transform
   E  Open Score Limits Edit Window
   L  Load Sequence
   N  Creates new sequence and opens Note Editor
   P  Open Color Palette Editor
   O  Optimize IFS Code Score Limits
   S  Set Score/Images as active sequence
   (Return) Starts/Stops Play of selected sequence
   (Space Bar) Starts/Stops rendering of IFS Code
   (Tab)    Start/Stop IFS Code "test" mode
   (Arrow Up)  Move IFS Code image up
   (Arrow Down)   Move IFS Code image down
   (Arrow Left)      Move IFS Code image left
   (Arrow Right)     Move IFS Code image right

                          
      *****  Examples  *****

MIDI examples

The MIDI examples have been "orchestrated" for General MIDI with 
the rhythm/drums on channel 10.  The drums follow a standard 
Roland GS drum preset map (Preset 0).  The General MIDI 
Preset/Patch names are shown below should you need to 
re-orchestrate the examples.

Please note that Fractal MusicLab uses patch numbers 0 to127; 
rather than 1 to 128 per General MIDI;  therefore the patch number in
Fractal MusicLab is one less than its corresponding General MIDI
patch number:  Fractal MusicLab patch  =  GM patch number - 1.

patch #                               patch #
  1   Piano 1        2   Piano 2
  3   Piano 3        4   Honkey-Tonk
  5   E. Piano 1     6   E. Piano 2
  7   Harpsichord       8   Clavinet
  9   Celesta        10   Glockenspiel
  11   Music Box     12   Vibraphone
  13   Marimba       14   Xylophone
  15   Tubular-Bell     16   Dulcimer
  17   Organ 1       18   Organ 2
  19   Organ 3       20   Church Organ
  21   Reed Organ    22   Accordian
  23   Harmonica     24   Bandeon
  25   Acoustic Gt - Nylon 26   Acoustic Gt - Steel
  27   Elec Gt.  - Jazz    28   Elec Gt - Clean
  29   Elec Gt - Muted     30   Overdrive Gt
  31   Distortion Gt    32   Gt Harmonics
  33   Acoustic Bass    34   Elec Bass - Fingered
  35   Elec Bass - Picked  36   Fretless Bass
  37   Slap Bass 1      38   Slap Bass 2
  39   Synth Bass 1     40   Synth Bass 2
  41   Violin        42   Viola
  43   Cello         44   Contrbass
  45   Tremolo Strings     46   Pizzicato Strings
  47   Harp       48   Timpani
  49   String Ensemble     50   Slow Strings
  51   Synth Strings 1     52   Synth Strings 2
  53   Choir Aahs    54   Voice Oohs
  55   Synth Voice      56   Orchestra Hit
  57   Trumpet       58   Trombone
  59   Tuba          60   Muted Trumpet
  61   French Horn      62   Brass Ensemble
  63  Synth Brass 1     64   Synth Brass 2
  65  Soprano Sax    66   Alto Sax
  67   Tenor Sax     68   Baritone Sax
  69   Oboe       70   English Horn
  71   Bassoon       72   Clarinet
  73   Piccolo       74   Flute
  75   Recorder         76   Pan Flute
  77   Bottle Blow      78   Shakuhachi
  79   Whistle       80   Ocarina
  81   Square Wave      82   Saw Wave
  83   Synth Calliope      84   Chiffer Lead
  85   Charang       86   Solo Voice
  87   Fifths        88   Bass & Lead
  89   Fantasia/New Age    90   Warm Pad
  91   Polysynth     92   Space Voice
  93   Bowed Glass      94   Metal Pad
  95   Halo Pad         96   Sweep Pad
  97   Ice Rain         98   Soundtrack
  99   Crystal       100   Atmosphere
  101   Brightness      102   Goblin
  103   Echo Drops      104   Star Theme
  105   Sitar        106   Banjo
  107   Shamisen     108   Koto
  109   Kalimba      110   Bag Pipe
  111   Fiddle       112   Shanai
  113    Twinkle Bell      114   Agogo
  115   Steel Drums     116   Woodblock
  117   Taiko        118   Melody Tom
  119   Synth Drum      120   Reverse Cymbal
  121   Gt Fret Noise      122   Breath Noise
  123   Seashore     124   Bird
  125   Telephone    126   Helicopter
  127   Applause     128   Gun Shot
 

SMUS Examples

All SMUS examples use IFF 8SVX instruments which are located in 
the Instrument (dirs) on the disk.  Of course these examples can
also be played over MIDI.


