<div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Do you think something like <a href="https://incudine.sourceforge.net/" target="_blank">incudine</a> and/or <a href="https://github.com/ormf/cm-incudine" target="_blank">cm-incudine</a> would have fixed the problem of relying on C, even though it is too late at this point?</blockquote><div><br></div><div>No, as things have improved dramatically since then. Incudine uses SBCL to support realtime audio, and while it uses a little bit of C, it's only for low level things where C makes more sense (memory management). The main limitation with SBCL is that it has a fairly conservative stop the world garbage collector (whereas S7 has a realtime GC I believe), so you can occasionally experience pauses. There is currently some work happening on creating a RT Garbage Collector for SBCL which would be quite exciting.</div><div><br></div><div>At some point I'd like to look at getting Drew Krause's stuff working on Orm's port (and eliminating warnings, and probably modernizing it as well). But it's not a priority for me at the moment.</div></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 9, 2023 at 11:05 AM Brandon Hale <<a href="mailto:bthaleproductions@gmail.com" target="_blank">bthaleproductions@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>
<div>
<p>This is a very interesting thread that I always wondered about. </p>
<p>
</p><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://incudine.sourceforge.net/" target="_blank">incudine</a> and/or <a href="https://github.com/ormf/cm-incudine" target="_blank">cm-incudine</a> would
have fixed the problem of relying on C, even though it is too late
at this point?<p></p>
<p>Brandon Hale<br>
</p>
<div>On 11/9/23 8:33 AM,
<a href="mailto:bil@ccrma.Stanford.EDU" target="_blank">bil@ccrma.Stanford.EDU</a> wrote:<br>
</div>
<blockquote type="cite">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 href="mailto:Cmdist@ccrma.stanford.edu" target="_blank">Cmdist@ccrma.stanford.edu</a>
<br>
<a href="https://cm-mail.stanford.edu/mailman/listinfo/cmdist" target="_blank">https://cm-mail.stanford.edu/mailman/listinfo/cmdist</a>
<br>
</blockquote>
</div>
_______________________________________________<br>
Cmdist mailing list<br>
<a href="mailto:Cmdist@ccrma.stanford.edu" target="_blank">Cmdist@ccrma.stanford.edu</a><br>
<a href="https://cm-mail.stanford.edu/mailman/listinfo/cmdist" rel="noreferrer" target="_blank">https://cm-mail.stanford.edu/mailman/listinfo/cmdist</a><br>
</blockquote></div>