cmdist first contact

GeoDanCor@aol.com GeoDanCor@aol.com
Tue, 18 Feb 1997 07:35:46 -0500 (EST)


Hello

Thank you very much for the first sending of cmdist!

I have in CM und CLISP under WINDOWS 95 just few experience (some 2 month)
but a lot of enthusiasm. Here is my way to CM under WIN95 put together -
please excuse the length of my exposing, but I think, it may help to somebody
newer than I am... There are also some questions in my text. 

1. My first try: XLisp is OK, and the WIN95 XLISPWIN version 2.1G
(ftp://ftp.uni-kl.de/pub3/pc/win/developement/xlisp) - is really nice, but
do'nt accept CM building. 

2. ACL 3.0 light (downloaded as free ware from http://www.franz.com/) is very
elegant, but the compiler is disabled in this light version and the heap
limited, so, CM building is impossible. I tried to install an allready
builded CM to ACL, but it did'nt work. (Q.: Could anybody install CM under
ACL light version?)

3. I could never install correct WIN32.ZIP
(http://sayre.sysc.pdx.edu:8001/clisp/ win32.zip). I became always an error
message (from UNIX world?): "cannot find /bin/sh.exe, copy /user/bin/bash.exe
to it!". I could'nt find this files. (Q.: Have anybody already resolved this
problem?)

4. CM under CLISP in DOS exclusive modus was my first success (after I
manually ran lispini.fas und renamed comptools to comptool - may be, because
I unziped it under WIN95, which, unlike DOS or WIN3.1, accepts longer names),
but without a parallel editor and sequencer to hear the results, it's not a
serious solution. 

5. Thanks to some indirectly information from cmdist, I installed CLISP in a
DOS windows under WIN95, then ported the old CM from DOS. This DOS window
must be prepared (e.g. 520 RAM, no EMS, 4096 XMS; also activate Doskey). Here
is the batch file cm.bat (better than in autoexec.bat!), to load CM together
with the DOS windows:

@Echo off
set TERM=ANSI
set TERMCAP=C:\LISP\CLISP\TERMCAP.DAT
set rsx=C:\LISP\CLISP\rsx.exe
set emx=C:\LISP\CLISP\rsx.exe
C:\LISP\CLISP\RSX.EXE -Ra C:\LISP\CLISP\LISP.EXE -M C:\CM\CM.MEM

(Q: I don't know why the list of variables %1 %2 ... are not accepted  - may
be also not really needed?) 
(Q: There is always an error message: "Warning: emx 0.9b or later requiered",
but everything looks OK. Can somebody tell me please, what mean this, where
is emx 0.9b to find or how is this message to disable?)
(Q: How can I let automatically execute <STELLA> with CM start?)

I load/write/save the CM file in a Text Editor in WIN95, then load/open/seq
or mix in CM into a MIDI file in the DOS window, then load/play in Cakewalk
Pro Audio in WIN95, to hear and see the result. With 64MB RAM on a Pentium
133 MHz and all programms actives in RAM it goes all very quickly. Till now,
this is my best solution. 

6. I hope to have soon ACL 3.0.1 or 3.0.2, the complete version. (ACL
standard costs $595 + shipping, but there were also a discount price of
$446.25; the professional version costs $1250). I knew, that's the best for
CM in WIN95, but - as I read in cmdist - MIDI real time 'must be
theoretically OK', but nobody has this already proved...

7. I informed myself about LINUX on Pentium: there are problems with most
MIDI (only MPU standard is OK, but I have Voyetra MIDI), some Graphic and
Sound cards, even with some CDs. So is LINUX - sorry! - conceptually 'older'
than WINDOWS, which handles e.g. all MIDIs, cards etc. through one and well
documented API and DLL.

Actually I am interested 'to put musical material (i.e. algorithms) in time',
so I tried 2 methods: 
(1) to give to ALGs absolute start and end times values as variables from a
table and to places them on a time scale, controlled through a globale
counter
(2) to add simply the ALGs times: the end of an ALG will be start for the
next

Surely the ALGs must be therefor renamed with the function (name 'nx- T). For
a more complex project, I wish put ALGs in different MERGEs (m1, m2 ...),
which I work separately, evtl. on different channels, then only set them in a
finale MERGE (m). The start times are already fixed in each ALG, so the
partial or finale MERGEs need only couple them, have also time slot unset.
Now came the surprise: The times of ALGs in MERGE m1, m2... are not correctly
worked, so the result is unforeseeable. It seems, this times interact free
between different MERGEs. Here the simplest example to prove that: 

 (merge m ()
	(merge m1 ()		  
		(algorithm a1 midi-note (start 0 end 8 amplitude .5 channel 0)			
            (setf note (item (steps 1 -1 2 -2 in random initially-from 'a4)))
			(setf rhythm (item (rhythms 16 32)))   	))		 				 
	(merge m2 ()
 			(algorithm a2 midi-note (start 13 end 21 amplitude .2 channel 1)
				(setf note (item (notes bf3 gf ef in random)))
				(setf rhythm (item (rhythms 16 8)))  ))   )

This is my most actually and the last question: is it here something false?
Is MERGE not maked to be nested? I tried also other possibilities to insert
different containers in other (super)containers, but MERGEs and ALGORITHMs
are the most flexible combination. 

Thank you in advance for any help or comment.

Regards, 

Corneliu Dan Georgescu
Freie Universitaet Berlin, Institut fuer vergleichende Musikwissenschaft