A stopwatch for MaxMSP, written in Clojure
This is a demo of a simple stopwatch for MaxMSP. (It's so simple that it doesn't even stop: it simply reports the time in milliseconds between consecutive bangs.) It was coded as a proof-of-concept that the Clojure system's ability to compile its code into "real" Java class files allows Clojure programs to target MaxMSP directly, without any other machinery.
To get started, do a Git checkout on this project and install Leiningen according to the README.
The project is linked against
max.jar, MaxMSP's library for Java
interoperability. In order for Leiningen to find and link against
this file, it'll need to be installed into your local Maven
repository. On OS X (or Linux) you'd do something like this:
cd /Applications/Max5/Cycling\ \'74/java/lib/ mvn install:install-file \ -Dfile=max.jar \ -DgroupId=com.cycling74 \ -DartifactId=com-cycling74-max \ -Dversion=5.1.9 \ -Dpackaging=jar \ -DgeneratePom=true
This is mostly boilerplate: it creates a
5.1.9 (chosen merely to match the release of MaxMSP).
Once that's done, setup the dependencies and compile everything:
lein deps lein compile
MaxMSP needs the Clojure system: if you look in the directory
you'll see a
clojure-x.x.x.jar - copy that to Max's
Cycling '74/java/lib directory.
classes contains the compiled class files. You can edit
max.java.config.txt to place this directory into the
CLASSPATH, but it must be in the system path, not the dynamic one
(otherwise the Clojure system won't be able to find the classes
belonging to this project). If that all sounds too complicated, just do a
to make a JAR file for the project - it'll create a
maxmsp-clojure-stopwatch-1.0.0.jar - and put this into
Cycling '74/java/lib as well.
That should be it: open the enclosed patcher and push the button.
Copyright (C) 2011 Nick Rothwell, firstname.lastname@example.org
Distributed under the Eclipse Public License, the same as Clojure.