<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&#39;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&#39;d like to look at getting Drew Krause&#39;s stuff working on Orm&#39;s port (and eliminating warnings, and probably modernizing it as well). But it&#39;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 &lt;<a href="mailto:bthaleproductions@gmail.com" target="_blank">bthaleproductions@gmail.com</a>&gt; 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&#39;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 &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).  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&#39;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&#39;s and 80&#39;s.  I wanted to
      add an
      <br>
      extension language, but at the time (say mid-to-late 90&#39;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&#39;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
      &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).  Guile filled the bill for awhile,
      so both
      <br>
      Snd and CLM used it.
      <br>
      <br>
      Guile became comatose in the 2000&#39;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>