These files are examples of the RTcmix/GCL interface.  To get this
working, look at the files in gcl-hacks/ and make the appropriate
modifications to your local GCL.

The modified GCL will have the following functions available for use:


(rtcmix-socket-open "hostname" sockno)
  opens a TCP/IP connection to an RTcmix process and returns a token that
  represents the socket, used by the other lisp-rtcmix functions
	hostname -- name of the host with the RTcmix instrument running
	sockno -- TCP/IP socket number for RTcmix (usually 1102)

(rtcmix-print "COMMAND" '(p1 p2 p3 p4) ss)
  sends a command through the socket
	COMMAND -- the RTcmix directive to send (i.e. "WAVETABLE")
	(p1 p2 p3 p4) -- the p-fields for that directive
	ss -- the socket token returned from (rtcmix-socket-open)

(rtcmix-timer slp)
  pauses (sleeps) the lisp execution for timing
	slp -- the time (in seconds) to pause, i.e. 1.49 or 3.5

(rtcmix-socket-setnblock d1)
  sets a socket for non-blocking i/o.  This is usually used as a way
  to read data into the lisp environment, not as a socket connecting
  to an RTcmix instrument
	d1 -- the socket token returned from (rtcmix-socket-open)

(rtcmix-setifvals d1)
  sets (reads) a number of pending values through socket d1, listed
  by key-values and retrieved by (rtcmix-getifval)
	d1 -- the socket token returned from (rtcmix-socket-open)

(rtcmix-getifval key)
  retrieves values after an (rtcmix-setifvals) call, will return the
  value associated with a given key
	key -- the index to the value desired



The above is probably rather confusing, I'm hoping that the two sample
programs I've included will help show how these functions can be used.

-- loochlisp.lsp

is a basic WAVETABLE application, generating long, droney and awfully
darned soothing tones a' la' the good old "looching" application.

-- metalooch.lsp

has the basic "looching" stuff happening, but also sends data to the
STRUM and METAFLUTE instruments.  The sending of data is controlled by
sliders create by the "mlslides" program, and shows how lisp can receive
data using the (rtcmix-setifvals) and (rtcmix-getifval) functions.

	xrdb < Mlslides

will set up some nicer app-defaults for the "mlslides" program.


These programs are invoked by saying:

	gcl < loochlisp.lsp

or

	gcl < metalooch.lsp

Unfortunately, they do not always shut down cleanly, so that after running
them you should use the "killem" shell script (also here) to terminate
any leftover RTcmix processes.

Send me e-mail if you have questions or comments about these --

brad
