Scheme for Pure Data 0.1 - live-code Pd with Lisp

Hi everyone, I’m excited to announce that Scheme for Pd (aka s4pd) is now code complete for version 0.1 and ready for people to use, though it does still require building from source at the moment. This should “just work” with the Makefile, let me know if not.

Scheme for Pd is an open-source external for live-coding and scripting Pd with an embedded s7 Scheme Lisp interpreter. It is a port of most of Scheme for Max, also by me, for Max/MSP. s7 is an embeddable minimal Scheme implementation by Bill Schottstaedt at CCRMA, with many nice features for algorithmic composition and embedding. It’s the Scheme engine used in the Common Music algorithmic composition toolkit and the Snd audio editor, and has keywords, Common Lisp style macros, first-class environments, thread safety, applicative syntax, and a very straight forward FFI (foreign function interface).

Features in beta 0.1:

  • run code from files, and hot reload files during playback
  • evaluate scheme code from Pd messages live with a REPL
  • keeps on playing fine when you go into edit mode
  • output numbers, symbols, lists, vectors (as Pd lists)
  • basic array i/o
  • send messages to named receivers
  • schedule functions with delay, using the Pd scheduler

The GitHub project page is here. Please file issues there if you find bugs or the help is unclear. I’m sure there are still some issues!

If you’ve not used Scheme before, I’ve written a beginner friendly crash course for Scheme for Max which all applies and is linked in the above.

There are various videos on the youtube channel demoing things you can do with the Max version, which might be of interest, as they should mostly port over without issue. I will be making Pd specific ones in the future.