[CM] cvs and new features
Rick Taube
taube@uiuc.edu
Fri, 8 Jul 2005 06:48:42 -0500
CVS will be very unstable for the next 1-2 weeks as we try to get some
new features going. I've saved a snapshot from yesterday on pinhead
that should work:
http:/pinhead.music.uiuc.edu/~hkt/cm-snapshot-070705.tar.gz
The snapshot does contain one unannounced new feature: Portmidi. This
is a light-weight midi lib that can be used in place of midishare. its
essentially a thin portability layer on top of a host midi system:
CoreMidi in the case of OSX, Alsa on Linux and whatever on Windows. I
have CM<->Portmidi working now in sbcl, cmucl and openmcl on OSX (my 5
year old pounded away on the keybord for 5 minutes driving
supercollider FM synthesis via the midi input without us ending up in
the kernel debugger so I think its basically working..) It should also
be working on Linux but I have no access to a local linux machine. I
can load the lib and read the time but I cant test sound output since
the ccrma machine I'm using is 2000 miles away...
If you are on linux and have some awareness of Alsa, and an external
keyboard for input it would be great if you could help me out. If it
doesnt work ootb my guess is it is not hard to get it working since it
runs in sbcl and cmu already on osx .
Here is a url to the portmidi tarball to install:
http:/pinhead.music.uiuc.edu/~hkt/portmidi.tar.gz
This is the regular portmidi source install but with its Makefile
hacked for saving shared libraries (thank you tobias and david
psenicka) and with an added Xcode target to make shared libs on OSX
(project is under pm_mac/). To install on Linux: untar, cd portmidi,
make, then move libportmidi.so and libportime.so to /usr/local/lib and
build cm from scratch (delete any cmu or sbcl subdirectories of cm/)
If you are on OSX and you want to try it out, you should just download
this (binary) tarball and install as per the readme.
http:/pinhead.music.uiuc.edu/~hkt/osx-portmidi.tar.gz
When the dust settles ill send the Makefile modifications to the
portmidi list, hopefully they will include the shared library stuff.
To read about the new portmidi support see:
http:/pinhead.music.uiuc.edu/~hkt/cm/doc/dict/portmidi-topic.html
For now you can pretty much treat portmidi like a midishare or a midi
file, ie write midi objects to it (set :latency > 0) Hopefully if
things work out in some days I will post another note list explaining
some more interesting things that can be done with portmidi (and with
supercollider) that we are attempting to add.