<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. &nbsp;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. &nbsp;Todd Ingalls came along and started working on a real-time scheduler, and that took the software
 to a new level. &nbsp;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...), &nbsp;has almost no learning curve, and 80% of my student coming into the curriculum already using. &nbsp;I also liked being able to leverage excellent tools &nbsp;like pip, Jupyter notebooks and matplotlib for teaching and now I cant
 live without them. &nbsp; I just started working with Todd's new cython &nbsp;wrapper around sndlib (type 'pip install pysndlib' &nbsp;and you have it) and -- &nbsp;as a first experiment yesterday -- I mostly have &nbsp;bill's wonderful old &nbsp;'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&nbsp;</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 &lt;bthaleproductions@gmail.com&gt; wrote:</div>
<br class="Apple-interchange-newline">
<div>
<div>
<p>This is a very interesting thread that I always wondered about.&nbsp;</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.&nbsp; Even that was too slow, so CLM ended <br>
up writing C code on-the-fly for entire instruments (or rather the &quot;run loop&quot; 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).&nbsp; 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.&nbsp; 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.&nbsp; 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 &quot;main program&quot;).
<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.&nbsp; Even that was too slow, so CLM ended <br>
up writing C code on-the-fly for entire instruments (or rather the &quot;run loop&quot; 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).&nbsp; 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.&nbsp; 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.&nbsp; 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.&nbsp; 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>