Scheme For Max is an open source external for Max/MSP, enabling the user to script Max and/or Ableton Live in realtime with S7 Scheme. Max/MSP is a data-flow audio visual programming platform, which has been around since the 80's and is the most widely used academic music programming platform, as well as the extension platform for Ableton Live through Live For Max.
Scheme For Max embeds the S7 Scheme interpreter, a minimal Scheme lisp created by Bill Schottstaedt at CCRMA, the Stanford computer music centre. It is also used in the Common Music algorithmic composition toolkit, and one of the goals for Scheme For Max is complete support for CM in Max.
Scheme for Max fills several important niches in Max:
- Because Scheme semantics map very well to Max semantics, it is possible to create code on the fly in Max messages and send to the interpreter in real time
- As it is open source, adding new Scheme callables in C is possible
- Unlike the JS or Node for Max objects, it runs in the high priority thread (if triggered there), and so is usable for high precision timing tasks (ie sequencers)
Scheme For Max is also my thesis project for a Master's in Music Tech and the University of Victoria, working with Dr Andrew Schloss and Dr George Tzanetakis, and will have at least one release per academic semester. The next release will be focused on sequencing tools, with direct table and buffer i/o and sample accurate scheduling of Scheme functions in the Max scheduler.
1 comment
[ 3.2 ms ] story [ 15.1 ms ] threadScheme For Max embeds the S7 Scheme interpreter, a minimal Scheme lisp created by Bill Schottstaedt at CCRMA, the Stanford computer music centre. It is also used in the Common Music algorithmic composition toolkit, and one of the goals for Scheme For Max is complete support for CM in Max.
Scheme for Max fills several important niches in Max: - Because Scheme semantics map very well to Max semantics, it is possible to create code on the fly in Max messages and send to the interpreter in real time - As it is open source, adding new Scheme callables in C is possible - Unlike the JS or Node for Max objects, it runs in the high priority thread (if triggered there), and so is usable for high precision timing tasks (ie sequencers)
Scheme For Max is also my thesis project for a Master's in Music Tech and the University of Victoria, working with Dr Andrew Schloss and Dr George Tzanetakis, and will have at least one release per academic semester. The next release will be focused on sequencing tools, with direct table and buffer i/o and sample accurate scheduling of Scheme functions in the Max scheduler.
Docs: https://iainctduncan.github.io/scheme-for-max-docs/
Github: https://github.com/iainctduncan/scheme-for-max
S7 home: https://ccrma.stanford.edu/software/snd/snd/s7.html