File Release Notes and Changelog
Release Name: 2.1b1
Notes:
<html>
<head>
<title>compo : Release</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<p align="center"><font size="+2">Welcome to <i>compo 2</i></font></p>
<p align="center">© 2001 Bruno Lartillot</p>
<table width="100%" border="0" bgcolor="#FFFF99" cellspacing="0">
<tr>
<td><img src="doc/img/pixel.gif" width="1" height="1"></td>
</tr>
</table>
<p><i>compo</i> is a musical composition system in the form of a computer language
derived from Common Lisp.</p>
<p> For the musician, the main interest in <i>compo</i> resides in the conciseness
of text allowing to describe complex musical structures, their reusability and
their variation by derivation. In order to achieve this purpose, one takes an
interest in height intervals rather than in absolute heights. It is the same
for durations, dynamics...</p>
<p> For the computer enginer, the open nature of the system and its object orientation,
allowing its extension and its interfacing with any Lisp-based system, make
it an ideal protocol for the underlying representation of musical structures
generated by such systems, either they intend to the analysis of existing structures
or to the automatic generation of new original structures.</p>
<p> An extension of <i>compo</i> for Open Music, the musical representation environment
edited by <a href="http://www.ircam.fr">IRCAM</a>, is proposed. It allows the
manipulation of <i>compo</i> structures from Open Music patches, or their combination
with the Open Music midi objects.</p>
<p><i> compo</i> is provided for free, in the frame of the Free Software Fundation
GPL license.</p>
<p> Keywords : musical computing, computer languages for music, musical representation,
computer systems for musical analysis. </p>
</body>
</html>
Changes:
<html>
<head>
<title>compo 2.1 : Change Log</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<p align="center"><font size="+2"><i>compo 2.1</i> - Change Log</font></p>
<h3>Interface changes</h3>
<p>From now on, the error checking mechanism checks the validity of names in declarations
and references, and that a referenced name has already been declared.</p>
<p>The localization file is at root and is dynamically loaded (can be changed
without the need of a recompilation).</p>
<p>The <font face="Courier New, Courier, mono">note</font> constructor accept
two new keyword parameters :</p>
<ul>
<li><font face="Courier New, Courier, mono">:chord</font> for a given note specifies
that all its subnotes will be superposed in a chord style;</li>
<li><font face="Courier New, Courier, mono">:rest</font> is a shortcut to <font face="Courier New, Courier, mono">:hei
nil</font> to specify a rest.</li>
</ul>
<p>The <font face="Courier New, Courier, mono">lyrics</font> new note class specifies
substructures defining lyrics to figure under any staff in the produced cmn
scores.</p>
<p></p>
<p>The <font face="Courier New, Courier, mono">repeat-end</font> and <font face="Courier New, Courier, mono">fermata-repeat-end</font>
new note classes come in complement with <font face="Courier New, Courier, mono">fermata</font>
for the classification of notes (for future use).</p>
<p>The <font face="Courier New, Courier, mono">score</font> command accept several
new keyword parameters :</p>
<ul>
<li><font face="Courier New, Courier, mono">:initial-onset</font> to specifies
at which musical position the score starts (to allow score starting with an
uncomplete measure);</li>
<li><font face="Courier New, Courier, mono">:staff-separation</font> specifies
the space between staves in a score system;</li>
<li><font face="Courier New, Courier, mono">:line-separation</font> specifies
the space between lines of score;</li>
<li><font face="Courier New, Courier, mono">:tied-voices</font> specifies whether
or not each voice belonging to a same given voice class should be tied in
the same staff.</li>
</ul>
<p></p>
<p>The <font face="Courier New, Courier, mono">cleave-change</font> new function
allows to affect different cleaves than the default to each voice class (for
example a treble cleave to the soprano voice class rather than the soprano cleave).</p>
<p>The <font face="Courier New, Courier, mono">init-cleaves</font> new function
comes along with <font face="Courier New, Courier, mono">cleave-change</font>.
It resets each voice class to its default cleave.</p>
<p>The <font face="Courier New, Courier, mono">cleave-change-help</font> new help
function gives the entire list of keywords allowed as a cleave to <font face="Courier New, Courier, mono">cleave-change</font>.</p>
<p>The new function <font face="Courier New, Courier, mono">test-programs</font>
sends one midi note to each midi chanel in order to actually activate program
changes.</p>
<p> The <font face="Courier New, Courier, mono">program-change</font> and <font face="Courier New, Courier, mono">init-programs</font>
functions do not send midi events anymore.</p>
<h3>Implementation changes</h3>
<p>A bug has been corrected in the <font face="Courier New, Courier, mono">cmnize</font>
function : the notes of height cf, cff, bs or bss where not drawned at the right
octave in the score.</p>
<p>The new function <font face="Courier New, Courier, mono">ntoev</font> returns
the voice class of a given voice.</p>
<p></p>
<p>From now on, the <font face="Courier New, Courier, mono">cton</font> function
returns its argument rather than nil if it is not a cleave;</p>
<p>The ordering of voices has been changed in the <font face="Courier New, Courier, mono">sorting</font>
context item in order to group voices of the same class. The same change has
been made in the <font face="Courier New, Courier, mono">cmnize</font> function
which performs a similar sorting.</p>
</body>
</html>