Best book/resource re: coding for composition etc


Could anyone advise on a good book or resource to begin coding for algorithmic composition, or code based composition in general, please?

I used LISP for this purpose 20+ years ago, and then Scheme, a LISP variant, for cognitive modeling about 10 years ago. So, while I’ve had my hands dirty with code in the past and learned some basic concepts around lists, recursion etc, it’s fair to say I’ve forgotten everything I learned.

I want to buy Teletype (if at least one of the two sound production modules I want ever becomes readily available) and/or maybe Crow.

I know Teletype has its own language, syntax, limits etc (something I like) and I know Crow uses Lua which is a regular environment.

What I see when I read related posts is that people here have a good handle on general concepts - nesting, recursion, dealing with arrays etc - and how these concepts can be put to work for compositional purposes and this seems more important than the choice of language/environment.

So, can anyone help me regain some of my old code skills and learn some new ones?

Thanks, all!

Check out Scheme for Max by @iainduncan !


well hello, and thanks for the tag! I can definitely help here. :slight_smile:

If you can find it, the book “Notes from the Metalevel” is wonderful. It’s sadly out of print, but used copies are available and I’ve heard there are pdfs floating around. This is a fantastic intro to s7 scheme and algorithmic composition in general by Heinrich Taube, the author of Common Music. I’m writing something similar but slowly, the beginning of which are here:

The most established platforms for Scheme related algo comp, IMHO are Common Music (Taube), Nyquist (Dannenburg), and Extempore (Sorenson), though there are others. I am presenting on Scheme for Max at the ICFP on Saturday and have written an accessible paper that sounds like it would be helpful for you, and it’s here: Scheduling Musical Events in Max/MSP with Scheme For Max (Scheme 2021 - Scheme and Functional Programming Workshop 2021) - ICFP 2021

Scheme for Max and Scheme for Pd are open source Max/Pd externals platforms that I wrote because the other ones I mentioned are all very much their own standalone things. S4M and S4Pd are younger (Pd version still needs building from source actually), but very capable already. The main difference (and purpose of making them) is that the others “need to be the boss” so to speak, so they don’t play well with other more commercial tools. Scheme for Max/PD uses the same Scheme interpreter as Common Music (and some versions of Nyquist I think are compatible too?) but embeds it in the Max or Pd host so that you can use your scheme code not only to do in-scheme stuff, but anything you do in Max/Pd, and you can drive it off the Max or Pd schedulers. One of the goals is to port all of Common Music to Max/Pd too. So you can use it very easily with Max for Live, or VST instruments, or any other Pd libraries, and you very easily adapt common music code. I’m using it to do “normal” things like writing step sequencers and live coding tools as well as “academic” things like algorithmic composition tools. I’m currently working on a framework for making integrated live-coding and sequencing environments with them, which I will likely release by the end of the year.

I’ve got some ebook material and demo videos I’ve made on the main page here: GitHub - iainctduncan/scheme-for-max: Max/MSP external for scripting and live coding Max with s7 S

There is also a good book by Danenburg on Nyquist, and the Oxford Handbook of Algorithmic Music is a good overview read.

Also, looking at the OP, if you used Lisp for algo comp 20 years ago, you were quite likely using Common Lisp Music, or a related project. The author of CLM is Bill Schottstaedt, from CCRMA, who is also the author of s7 scheme, used in the Snd editor, Common Music, Scheme for Max and other projects. I think you would have a hard time finding anyone more knowledgeable about computer music and Lisp than Bill (and maybe Roger Danenburg). So s7 is designed around optimal features for a computer musician, it’s really wonderful!

I’m happy to answer any further questions!


Wow, @iainduncan incredible reply, thank you! Thank you also @lua for letting me know about Scheme for Max and tagging Iain.

You’re exactly right, Iain, it was Common Lisp Music. I took a module for a few months as part of my studies at Trinity College, Dublin under Dermot Furlong and Donnacha Dennehy. In fact, I returned there a few years later to teach Max.

I got a bit deeper into Scheme as part of the Cognitive Science program at University College, Dublin. I used it for producing and testing cognitive models. I quite liked it but I don’t remember too much by now. Hopefully much of it will come back to me.

So with these things in my background, it’s Incredible to hear that I can do Scheme in Max and I can immediately grasp the value of the integration - exciting!

Thanks for the pointers to resources, too.
I will definitely read your papers. Looking forward to getting started.

Thanks, again!


1 Like

Fantastic, I am happy to help out. It would be great to have more users on it such as yourself, with lots of experience. There is a very low traffic google group too on which I post release announcements of documentation or releases.

take care!