var fDesc=new Array(); fDesc[0] = "The Palette program is a tool for the creation of 'theoretically correct' melodies.


The program is based on composition theory and the theory of harmony. The
strong theoretical base makes the melody composing process easier.


The program contains seventeen lessons. Each lesson has one or two
demo-scripts. The lessons sequentially describe all process of melody
creation.


The program represents the melody in a structure that is analogue to
the structure of common speech. There are words (motives), phrases,
sentences, commas (caesuras), question marks and points (cadences). Such
an approach allows a simple and effective algorithm to be applied to the
composition of melodies.


The program implements twenty four methods of motive development.
Some of them are listed here: variation; inversion; repetition; new rhythm; sequence and so on.
These methods similar to the visual effects in graphical editors.
The program suggests the 'theoretically correct' algorithm for the melody creation.
The main advantage of the algorithm is: we take some existing part of a melody
(motive or phrase) and apply the methods of motive development (for example,
variation) to this motive of phrase to create a new motive or phrase of the
melody.


The program keeps the music within the limits of harmony and composition
theory. It guarantees a properly constructed melody and backing.


The full version of the program can export the created melody to a *.mid
(midi) file consisting of three tracks: melody, chords and bass part. Any midi
sequencer or style arranger can import these files to create a complete tune."; function tShowHide(id, show) { var s = document.getElementById("desc"); if ((s.innerHTML.length<=212 || show==1) && show!=2) { s.innerHTML = fDesc[id]; if (document.getElementById('m1')) document.getElementById('m1').style.display='none'; if (document.getElementById('m2')) document.getElementById('m2').style.display='none'; if (document.getElementById('more_txt')) document.getElementById('more_txt').style.display='inline'; } else { s.innerHTML = ''; } }