<div dir="ltr"><div>I agree that now is a great time to make some improvements to the language! Right now I am pretty busy trying to get Chunity to compile on the last few major platforms (hopefully more on that soon), but I&#39;d be happy to help point people in the right direction if they want to try making a pull request. It&#39;s a pretty massive codebase and so sometimes a little help explaining where to get started is all that&#39;s necessary to help someone make some changes!</div><div><br></div><div>~Jack<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, May 12, 2020 at 2:07 AM Ge Wang &lt;<a href="mailto:ge@ccrma.stanford.edu">ge@ccrma.stanford.edu</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">Dear Michael, Mario, and all,<br>
<br>
Thanks for tuning in!  For those who missed it, the recording of Artful <br>
Design TV Episode #7: &quot;Coding Music with ChucK&quot; with guest co-hosts <br>
Perry Cook and Spencer Salazar is now posted in the Archive.  It was a <br>
fun one!<br>
<br>
     <a href="https://artful.design/tv/archive/" rel="noreferrer" target="_blank">https://artful.design/tv/archive/</a><br>
<br>
I agree with Michael and Mario -- this seems like an appropriate moment <br>
for us and the community to take stock and redouble ChucK development <br>
efforts.  Michael&#39;s list is a great jumping-off point.  Spencer and I <br>
have started merging and closing outstanding pull-requests on github and <br>
would encourage others to contribute new PRs.  On a personal note, even <br>
after 18 years I still find coding on ChucK a strangely restorative <br>
activity, perhaps extra so in quarantine.<br>
<br>
Regarding ChucK as a library: indeed since 1.4.0.0, ChucK has been fully <br>
refactored into &quot;core&quot; and &quot;host&quot;, where &quot;core&quot; is the ChucK VM and <br>
synthesis engine, encapsulated in a single &quot;ChucK&quot; class.  This refactor <br>
was mainly the efforts of Jack Atherton, who also used it to create <br>
Chunity (ChucK in Unity; <a href="http://chuck.stanford.edu/chunity" rel="noreferrer" target="_blank">http://chuck.stanford.edu/chunity</a>). The broader <br>
implication is that it&#39;s now straightforward to embed ChucK as library <br>
or component into other systems and plugins.<br>
<br>
To demonstrate how this works in practice, Jack has created an example <br>
of embedding ChucK into any host. The zip file can be found here:<br>
<br>
     <a href="http://chuck.stanford.edu/release/files/examples/chuck-embed.zip" rel="noreferrer" target="_blank">http://chuck.stanford.edu/release/files/examples/chuck-embed.zip</a><br>
<br>
So far this example builds only for MacOS and Linux, but should be <br>
easily adaptable to build for Windows.  In particular, we draw your <br>
attention to the simple host c++ file that 1) sets up a ChucK instance, <br>
2) compiles ChucK code using two approaches, and 3) handles the <br>
real-time audio callback from ChucK.<br>
<br>
<br>
<a href="http://chuck.stanford.edu/release/files/examples/chuck-embed/host/chuck-embed.cpp" rel="noreferrer" target="_blank">http://chuck.stanford.edu/release/files/examples/chuck-embed/host/chuck-embed.cpp</a><br>
<br>
Well, that&#39;s it for now.  Thank you all and keep on ChucKin!<br>
<br>
Ge!<br>
<br>
~~~<br>
Ge Wang<br>
Associate Professor<br>
Center for Computer Research in Music and Acoustics (CCRMA)<br>
Department of Music (also Computer Science, by Courtesy)<br>
Stanford University<br>
<a href="https://ccrma.stanford.edu/~ge/" rel="noreferrer" target="_blank">https://ccrma.stanford.edu/~ge/</a><br>
~<br>
Artful Design: Technology in Search of the Sublime!<br>
-- a book for the engineer with a soul --<br>
<a href="https://artful.design/" rel="noreferrer" target="_blank">https://artful.design/</a><br>
~~~<br>
<br>
On 5/11/20 12:30 PM, Mario Buoninfante wrote:<br>
&gt; Hi,<br>
&gt; <br>
&gt; I second what Michael said, the streaming was really cool and interesting!<br>
&gt; <br>
&gt; About the new features and &quot;libchuck&quot;, I am more than happy to help out <br>
&gt; as much as I can.<br>
&gt; I am not a C/C++ programmer, but I&#39;m currently studying it.<br>
&gt; Recently I have done few little things in ChucK (mainly Chugins and easy <br>
&gt; bug fixes documented on github) and am getting more and more familiar <br>
&gt; with ChucK&#39;s source code, that is always useful.<br>
&gt; I suppose I could be of some help in some way.<br>
&gt; What I can do for sure though, is support with testing, mainly on Linux <br>
&gt; but also MacOS and Windows.<br>
&gt; <br>
&gt; Also, about the github repo, it seems like there are still old issues <br>
&gt; open even if they have been fixed.<br>
&gt; In case it can be useful I&#39;d be happy to double check them so that we <br>
&gt; can then maybe close the cases.<br>
&gt; <br>
&gt; Cheers,<br>
&gt; Mario<br>
&gt; <br>
&gt; <br>
&gt; -- <br>
&gt; electronic musician, sound artist, creative coder, QA engineer<br>
&gt; <a href="https://vimeo.com/creativecodingsalerno" rel="noreferrer" target="_blank">https://vimeo.com/creativecodingsalerno</a> <a href="http://mbuoninfante.tumblr.com" rel="noreferrer" target="_blank">http://mbuoninfante.tumblr.com</a> <br>
&gt; <a href="https://github.com/mariobuoninfante" rel="noreferrer" target="_blank">https://github.com/mariobuoninfante</a> <a href="https://bitbucket.org/mariobuoninfante" rel="noreferrer" target="_blank">https://bitbucket.org/mariobuoninfante</a><br>
&gt; <br>
&gt; On 11 May 2020 17:04, Michael Heuer &lt;<a href="mailto:heuermh@gmail.com" target="_blank">heuermh@gmail.com</a>&gt; wrote:<br>
&gt; <br>
&gt;     Hello Ge, Spencer, Perry<br>
&gt; <br>
&gt;     It was very nice to meet you virtually in the recent Artful Design<br>
&gt;     TV meetup!<br>
&gt; <br>
&gt;     With that event and the recent ChucK version 1.4.0.1<br>
&gt;     &lt;<a href="http://1.4.0.1" rel="noreferrer" target="_blank">http://1.4.0.1</a>&gt; release I have been inspired to ask a bunch of<br>
&gt;     questions.  Hope you don&#39;t mind.<br>
&gt; <br>
&gt;     Is there much interest in implementing new ChucK language features?<br>
&gt;       There are some suggestions in GitHub issues<br>
&gt; <br>
&gt;     Add abstract and final class and method modifiers<br>
&gt;     &lt;<a href="https://github.com/ccrma/chuck/issues/105" rel="noreferrer" target="_blank">https://github.com/ccrma/chuck/issues/105</a>&gt;<br>
&gt;     Allow a class to implement more than one interface or extend more<br>
&gt;     than one class &lt;<a href="https://github.com/ccrma/chuck/issues/106" rel="noreferrer" target="_blank">https://github.com/ccrma/chuck/issues/106</a>&gt;<br>
&gt;     Order of class definitions in a file matters sometimes<br>
&gt;     &lt;<a href="https://github.com/ccrma/chuck/issues/107" rel="noreferrer" target="_blank">https://github.com/ccrma/chuck/issues/107</a>&gt;<br>
&gt;     Add constructors to class definitions<br>
&gt;     &lt;<a href="https://github.com/ccrma/chuck/issues/108" rel="noreferrer" target="_blank">https://github.com/ccrma/chuck/issues/108</a>&gt;<br>
&gt;     Add namespaces and import statements<br>
&gt;     &lt;<a href="https://github.com/ccrma/chuck/issues/109" rel="noreferrer" target="_blank">https://github.com/ccrma/chuck/issues/109</a>&gt;<br>
&gt;     Allow =&gt; from a UGen into a field/parameter<br>
&gt;     &lt;<a href="https://github.com/ccrma/chuck/issues/110" rel="noreferrer" target="_blank">https://github.com/ccrma/chuck/issues/110</a>&gt;<br>
&gt; <br>
&gt; <br>
&gt;     Then outside of the new language features, my most desired feature<br>
&gt;     request would be<br>
&gt; <br>
&gt;     Chubgraphs and ChuGens don&#39;t support stereo operation<br>
&gt;     &lt;<a href="https://github.com/ccrma/chuck/issues/111" rel="noreferrer" target="_blank">https://github.com/ccrma/chuck/issues/111</a>&gt;<br>
&gt; <br>
&gt; <br>
&gt;     Next, it sounds like the new ChucK version will be easier to use as<br>
&gt;     a library.  Is there interest from the community in helping wrap<br>
&gt;     this library into plugins?  Despite occasional attempts with<br>
&gt;     libchuck &lt;<a href="https://github.com/mgyucht/libchuck" rel="noreferrer" target="_blank">https://github.com/mgyucht/libchuck</a>&gt; (which I assume may<br>
&gt;     be deprecated now?), I am not much of a C/C++ developer and often<br>
&gt;     find myself lost in build issues.<br>
&gt; <br>
&gt;     LV2 plugin &lt;<a href="http://lv2plug.in/" rel="noreferrer" target="_blank">http://lv2plug.in/</a>&gt; for Linux, this would allow running<br>
&gt;     ChucK on the MOD Devices pedals<br>
&gt;     <a href="https://wiki.moddevices.com/wiki/Creating_Audio_Plugins" rel="noreferrer" target="_blank">https://wiki.moddevices.com/wiki/Creating_Audio_Plugins</a><br>
&gt; <br>
&gt;     AudioUnit v3 for OSX and iOS,<br>
&gt;     <a href="https://forum.juce.com/t/ios-audiounit-wait-what/17224" rel="noreferrer" target="_blank">https://forum.juce.com/t/ios-audiounit-wait-what/17224</a><br>
&gt; <br>
&gt;     VCV Rack &lt;<a href="https://vcvrack.com/" rel="noreferrer" target="_blank">https://vcvrack.com/</a>&gt; plugin, custom API<br>
&gt;     <a href="https://vcvrack.com/manual/PluginDevelopmentTutorial" rel="noreferrer" target="_blank">https://vcvrack.com/manual/PluginDevelopmentTutorial</a><br>
&gt; <br>
&gt; <br>
&gt;     Then on a somewhat related note, what the hell?  These are header files!<br>
&gt; <br>
&gt;     This repository is currently disabled due to a DMCA takedown notice.<br>
&gt;     <a href="https://github.com/spencersalazar/libchuck" rel="noreferrer" target="_blank">https://github.com/spencersalazar/libchuck</a><br>
&gt;     <a href="https://github.com/github/dmca/blob/master/2018/2018-06-13-Steinberg.md" rel="noreferrer" target="_blank">https://github.com/github/dmca/blob/master/2018/2018-06-13-Steinberg.md</a><br>
&gt; <br>
&gt;     This breaks the <a href="https://github.com/mtiid/chuck-racks" rel="noreferrer" target="_blank">https://github.com/mtiid/chuck-racks</a> build.<br>
&gt; <br>
&gt;     Cheers,<br>
&gt; <br>
&gt;         michael<br>
&gt; <br>
&gt; <br>
&gt; _______________________________________________<br>
&gt; chuck-users mailing list<br>
&gt; <a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br>
&gt; <a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
<br>
_______________________________________________<br>
chuck-users mailing list<br>
<a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br>
<a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
<br>
<br>
</blockquote></div>