[CM] What motivated the change from CL to Scheme?

Michael Gogins michael.gogins at gmail.com
Thu Nov 9 05:41:02 PST 2023


I have never discussed these questions with Rick Taube, but having watched
his work for decades and even worked with him a tiny bit, I am willing
to speculate.

I can't answer your question about a formal specification of SAL. But I
will speculate about Common Music.

First, Taube is a teacher as well as a musician and programmer. He has used
the software that he writes in classes and to support music education.

In this context, Scheme is a somewhat easier language to learn and use.
It's clear to me that a motive for SAL was to simplify programming.

Taube also wrote an all-in-one computer music system, Grace, that embeds
Scheme. Again, I think the motivation was to simplify teaching computer
music.

Taube has also ported much of Common Music to Python as musx (
https://github.com/musx-admin/musx) and, indeed, he is still continuing to
develop this system. I myself have contributed to musx by enabling musx to
render pieces using Csound in a somewhat more direct way than the original
design. Taube continues actively to develop musx.

For what it's worth, if you are looking to use specifically Common Lisp for
computer-based composition, Common Music in Lisp continues to be maintained
(sort of). I myself have a repository that includes many impressive
extensions to Common Music by Drew Krause at
https://github.com/gogins/csound-extended-nudruz. It's a bit of a mess that
spits out lots of warnings and takes its time loading, but it does
definitely work and it does much more (thanks to Drew) than the original
Common Music in Lisp. The Lisp version of Common Music is also hosted at
https://github.com/andersvi/cm2.

I myself do not normally compose with Lisp. I write my compositional
algorithms mostly in C++ with JavaScript or WebAssembly interfaces, and do
my actual composition in JavaScript/HTML, as JavaScript provides a kind of
"glue" for using many different software packages in the same context. You
can see some examples of that here: https://gogins.github.io/.

I keep looking to see if Common Lisp will ever compile as WebAssembly and
run in a JavaScript context. I would love to use some of what Drew has
added to Common Music in my HTML5 pieces.

Regards,
Mike

-----------------------------------------------------
Michael Gogins
Irreducible Productions
http://michaelgogins.tumblr.com
Michael dot Gogins at gmail dot com


On Thu, Nov 9, 2023 at 7:36 AM Rochus Keller <me at rochus-keller.ch> wrote:

> I'm looking for articles, design rationales or comments explaining why
> Common Music switched from the Common Lisp to the Scheme based
> implementation.
>
>
> As far as I've read the past publications, object-orientation (i.e. CLOS)
> has been an important aspect of the Common Music composition approach.
> Scheme is quite different from Common Lisp, so apparently Common Music made
> quite a paradigm shift from version 2 to 3.
>
>
> What was the motivation for this? Have the expectations associated with
> this change been fulfilled in retrospective?
>
>
> Another question: is there a formal specification of SAL somewhere (EBNF,
> language report, or the like)?
>
>
> Thanks
>
> R.K.
> _______________________________________________
> Cmdist mailing list
> Cmdist at ccrma.stanford.edu
> https://cm-mail.stanford.edu/mailman/listinfo/cmdist
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cm-mail.stanford.edu/pipermail/cmdist/attachments/20231109/081cad20/attachment.html>


More information about the Cmdist mailing list