Share

compo

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">&copy; 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>