[CM] future of cm (long)

Rick Taube taube@uiuc.edu
Mon, 16 Jul 2007 11:08:08 -0500


Those using CM might be interested in learning that over the past few  
months Todd Ingalls and i have been (quietly) working away on a new C+ 
+/JUCE & Lisp environment for algorithmic composition called Grace  
(for Graphical Realtime Algorithmic Composition Environment).  
Although the app is still rough it is now a point where it can  
function as an (unstable) replacement for the current CM in Emacs 
+Slime.  I am "announcing" Grace now because -- in the best case  
scenerio -- we will use it for the ICMC workshop in August and would  
therefore welcome anyone that can build it from CVS sources to try it  
out a bit to give us feedback: bug reports, bug fixes, ideas for  
better functionality etc. Needless to say, in the not-too-distant  
future the goal is to deliver Grace as a binary drag'n drop app that  
runs exactly the same on Windows, Linux and Macos with basically no  
configuration or setup. The alpha version of Grace is up and running  
on Linux and OSX.

We are looking for someone with good C++/Windows chops to  help us  
make whatever (hopefully small) changes are required to get Grace up  
and running on XP. If you comfortable in C++ and know about Window's  
compilers and would like to help out, PLEASE send us a note!

The really great audio/graphics capabilities of JUCE will allow Grace  
to focus on integrating text-based algorithmic composition with  
graphics and realtime sound generation, rather than on pure  
programming as in the current Emacs/Slime environment. over time i  
will slowly be moving as much of CM's underlying tools (including  
SAL) as makes sense into C++ so that the same features are available  
outside of Lisp. CM's existing lisp code will always remain and i  
will continue to fix and improve lisp CM sources. But -- since that  
code is quite stable now --  most of my energy/time will be spent  
working on new tools that, for whatever reason, cant be provided in  
crossplatform lisp.

Athough Grace is not ready for prime time a lot of essential features  
are there, at least in some capacity.  RIght now the app contains:

   o A very cool splash screen (hey no point without one of these!)

   o An Editor with good support for SAL and Lisp hacking: syntax  
highlighting, Emacs emulation including Tab key syntactic  
indentation, word/sexpr motion (C-M-f  etc), eval services and symbol  
help lookup in Sal buffers, errr..Editor Windows

   o Menu based loading of ASDF defined lisp system.

   o Ready-to-use algocomp tutorials available from the Help menu.

   o A Plotter window for data visualization, sequencing, and  
envelope design.  plotter is only at the very beginning stage,  
bascially you can add some points, admire them and then use the  
Export command to turn the data into text (code) inside an editor  
window via paste. [Plotter development will be the main focus of the  
next (second stage) of work along with RTS sound output. any ideas  
you have on what a good visualization tool would include will be  
seriouly considered. for sure there will SAL mouse-hooks for  
algorithmicaly genereating material on mouse down clicks, also  
computing point layers from sal code, realtime plotter playback etc.]

On osx or linux you can build Grace from cvs sources if you have an  
existing libjuce.a (version 4.3) and recent versions of gnu autoconf  
tools:

	cvs checkout grace
	cd grace
	./configure --with-jucedir=/path/to/my/jucedir
	make
	make install
	cd /path/to/Grace/resourcedir
	cvs checkout cm

PLEASE read the grace/INSTALL file before you attempt to build. if  
the sources dont build on your machine then please help us fix it by  
sending us the changes that get it working. otherwise wait till the  
dust settles and we can release binary drag'n drops.

The file TODO has the current list of known bugs and a list of things  
that remain to be done.

many many thanks to David Psenicka for adding the ./configure &  
automake magic!

--rick