<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
<div dir="auto" style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
I originally switched from CL to Scheme because I wanted to embed common music in a graphical environment. I managed to do it using swig, but it was a nightmare and clunky. Bill's s7 scheme, on the other hand, was embeddable by design, and built to support
music systems, so it was a no-brainer to move the Common Lisp code to s7 scheme (easy) and embedded it in JUCE (pretty easy) and that worked out really well. Todd Ingalls came along and started working on a real-time scheduler, and that took the software
to a new level. Sadly for me, when I started the CS+Music curriculum at UIUC, the agreement was for my classes to use 'standard' programming languages. So looking around I decided to port as much as possible to Python, which is fairly lisp-y (it's brain-dead
lambda expression not-withstanding...), has almost no learning curve, and 80% of my student coming into the curriculum already using. I also liked being able to leverage excellent tools like pip, Jupyter notebooks and matplotlib for teaching and now I cant
live without them. I just started working with Todd's new cython wrapper around sndlib (type 'pip install pysndlib' and you have it) and -- as a first experiment yesterday -- I mostly have bill's wonderful old 'birds.scm' file chirping away in python.
It made me laugh!!</div>
<div dir="auto" style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
<br>
</div>
<div dir="auto" style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">--Rick </span></div>
<div dir="auto" style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
<font color="#000000"><span style="caret-color: rgb(0, 0, 0);"><br>
</span></font>
<div>
<div>
<blockquote type="cite">
<div>On Nov 9, 2023, at 8:01 AM, Brandon Hale <bthaleproductions@gmail.com> wrote:</div>
<br class="Apple-interchange-newline">
<div>
<div>
<p>This is a very interesting thread that I always wondered about. </p>
<div><br class="webkit-block-placeholder">
</div>
<blockquote type="cite">The Common Lisp Music system which grew out of Mus10 <br>
at SAIL, had become unmanageable because (despite the insistent hype) the only <br>
way to get any performance was to write the generators in C and tie them into <br>
Lisp via the clumsy FFI's of the day. Even that was too slow, so CLM ended <br>
up writing C code on-the-fly for entire instruments (or rather the "run loop" portion),
<br>
compiling that and loading it into CL, sort of like Chicken Scheme. <br>
This was a nightmare to debug, and it was obvious to me that my sanity depended <br>
on finding a simpler way (while staying in the lisp family of course -- Cmix and <br>
CSound had the C-side covered). Guile filled the bill for awhile, so both <br>
Snd and CLM used it. </blockquote>
Do you think something like <a href="https://urldefense.com/v3/__https://incudine.sourceforge.net/__;!!DZ3fjg!6hhQlBvqxRF_zJnBWxvV0dh8Z9y4ny0s4svnNFwY9bwQUh4Uf-gkHekdUWQPeC_zr0TJ-1KT8WCTIeb4055G9ezS$">
incudine</a> and/or <a href="https://urldefense.com/v3/__https://github.com/ormf/cm-incudine__;!!DZ3fjg!6hhQlBvqxRF_zJnBWxvV0dh8Z9y4ny0s4svnNFwY9bwQUh4Uf-gkHekdUWQPeC_zr0TJ-1KT8WCTIeb406AYbkdD$">
cm-incudine</a> would have fixed the problem of relying on C, even though it is too late at this point?
<div><br class="webkit-block-placeholder">
</div>
<p>Brandon Hale<br>
</p>
<div class="moz-cite-prefix">On 11/9/23 8:33 AM, <a class="moz-txt-link-abbreviated" href="mailto:bil@ccrma.Stanford.EDU">
bil@ccrma.Stanford.EDU</a> wrote:<br>
</div>
<blockquote type="cite" cite="mid:63615289540e3a9e2e32a65e92f1235f@ccrma.stanford.edu">
I can speak to the CLM/Snd side of this which was closely associated with Common Music.
<br>
I followed Rick's lead, but I was already searching for an alternative to <br>
Common Lisp. The sound editor, Snd, was a C version of an earlier editor named <br>
Dpysnd, written in SAIL at SAIL in the 70's and 80's. I wanted to add an <br>
extension language, but at the time (say mid-to-late 90's), this was all but <br>
impossible in Common Lisp (like later Schemes, CL wanted to be the "main program").
<br>
I looked at elisp (emacs), then someone mentioned Guile, so I started using it. <br>
<br>
The Common Lisp Music system which grew out of Mus10 <br>
at SAIL, had become unmanageable because (despite the insistent hype) the only <br>
way to get any performance was to write the generators in C and tie them into <br>
Lisp via the clumsy FFI's of the day. Even that was too slow, so CLM ended <br>
up writing C code on-the-fly for entire instruments (or rather the "run loop" portion),
<br>
compiling that and loading it into CL, sort of like Chicken Scheme. <br>
This was a nightmare to debug, and it was obvious to me that my sanity depended <br>
on finding a simpler way (while staying in the lisp family of course -- Cmix and <br>
CSound had the C-side covered). Guile filled the bill for awhile, so both <br>
Snd and CLM used it. <br>
<br>
Guile became comatose in the 2000's, then came back to life as a compiler. <br>
The new Guile was not compatible with my code, so I wrote s7, starting with <br>
TinyScheme. At this point I am very happy with s7+C in both programs. <br>
If I need something from s7, I can just implement it. If I were using <br>
CL, nothing would happen because that community is hyper-conservative, <br>
and if using any other Scheme than my own, nothing would happen because <br>
Schemers love to bicker until everyone is exhausted. With s7 I can just <br>
sit and type and hum a happy tune. <br>
<br>
_______________________________________________ <br>
Cmdist mailing list <br>
<a class="moz-txt-link-abbreviated" href="mailto:Cmdist@ccrma.stanford.edu">Cmdist@ccrma.stanford.edu</a>
<br>
<a class="moz-txt-link-freetext" href="https://urldefense.com/v3/__https://cm-mail.stanford.edu/mailman/listinfo/cmdist__;!!DZ3fjg!6hhQlBvqxRF_zJnBWxvV0dh8Z9y4ny0s4svnNFwY9bwQUh4Uf-gkHekdUWQPeC_zr0TJ-1KT8WCTIeb40_g8D_JW$">https://cm-mail.stanford.edu/mailman/listinfo/cmdist</a>
<br>
</blockquote>
</div>
_______________________________________________<br>
Cmdist mailing list<br>
Cmdist@ccrma.stanford.edu<br>
https://urldefense.com/v3/__https://cm-mail.stanford.edu/mailman/listinfo/cmdist__;!!DZ3fjg!6hhQlBvqxRF_zJnBWxvV0dh8Z9y4ny0s4svnNFwY9bwQUh4Uf-gkHekdUWQPeC_zr0TJ-1KT8WCTIeb40_g8D_JW$
<br>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</body>
</html>