Scheme For Max - script and live code Max in lisp

Hi folks, just wanted to let you all know that Scheme for Max, my open source project providing an external to embed the S7 Scheme interpreter in Max/MSP, is now available as an easy to install package for Windows and OSX. S4M allows you to script and live code Max/MSP with S7 scheme-lisp, and includes fun features not found in the JS object such as hot reloading of code, a built in REPL, on the fly function definitions, running in the high priority thread and embedding runnable scheme code right in Max messages. S7 is a minimal Scheme with many common lisp features such as CL style macros, and was designed specifically for computer music by Bill Schoedstaddt at CCRMA. It’s used in the Common Music algorithmic composition toolkit, and is the language in the excellent book on algorithmic composition, “Notes from the Metalevel” by Dr Heinrich Taube.

I’m happy to answer any questions about it. Check out the demo video for an overview.
Enjoy!
Iain

3 Likes

Oh, I’m also new to this forum, so if this is the wrong section, please let me know, or move it!
iain

I don’t have much to add except to say: all the really cool Max projects I’ve ever seen have embedded code instead of using pure dataflow objects (cue my standard rant about the weaknesses of dataflows :wink: with tongue partly in cheek) – so it’s great to have another way to do that :+1:

hjh

Yeah, data flow certainly has weaknesses, but it also brings a lot. Having done entire shows years ago with only Csound, Vim, and Python, I really like the fact that in Max I get to do all the boring, commodity stuff in data flow: dealing with devices, file i/o, guis for prototyping, patch saving, etc, allowing me to focus my work on the application specific stuff better. I’ve done all that in Csound and FLTK before, and it was a pain. I prefer coding in a text language, but I’m a total convert now to working in an overall mature environment like Max as the containing environment for my code bits.

FWIW, there’s no reason from what I’ve read that Scheme for Max couldn’t be ported to Scheme for PD too, were someone motivated to do so.

I didn’t even try to do that and I’m thinking “ouch.”

Reminds me of what my PhD advisor said when SuperCollider 2 became free software: “It makes Csound look like… well, like Csound.”

“… dealing with devices, file i/o, guis for prototyping, patch saving…” I can’t speak for how those are done in Csound, but there are ways to do these in SuperCollider that are not much trouble at all. Like, after launching the SC editor, I’m 8 keystrokes away from having my live coding setup open and ready: ctrl-esc k p return (this bit uses a custom “bookmarks” thingy that I wrote in SC itself), ctrl-shift-return. Separate code window for live coding, and a control panel matching up to my Nanokontrol, loaded in one shot. That’s not particularly harder than opening a Max patch.

Agreed that Max has handy features for GUI but the benefits aren’t limited to dataflow environments.

hjh