<div dir="ltr"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>I&#39;m taking the liberty to also reply to your question for Rick.<div><br></div><div>I have experience doing algorithmic composition since 1983 in (alphabetical order, * means I have compositions on streaming music services or Web sites realized using that language): Basic*, C, C++*, CMix, Csound, Common Lisp, Fortran, Java*, JavaScript*, Lua and LuaJIT*, Mathematica, Pascal, Python*, Quickbasic, Reaktor, Strudel*, Tidal Cycles, and Visual Basic.</div><br class="gmail-Apple-interchange-newline"><div>I have worked professionally as a software engineer on trading systems using C, C++, C#, Java, and Python.</div><div><br></div><div>In my opinion, there are too many systems for doing algorithmic composition in too many languages. This has fragmented the field of algorithmic composition and skilled people have wasted a great deal of their time re-inventing the wheel. You can see from my list that I, myself, have wasted a lot of that time. Currently, I use mostly JavaScript and C++, compiled to WebAssembly (WASM) to be used by JavaScript.<br></div><div><br></div><div>The choice of language is secondary. The important things are community and history. Look for the largest and most diverse community of composers that you can find, with the longest history of compositions and the biggest library of shareable code. <br></div><div><br></div><div>As far as actual programming languages go, if at all possible use industry standard languages that have proved themselves in the real world and have deep support. If we count only standard languages that feature algorithmic composition software, that&#39;s essentially just C/C++, Python, and JavaScript. </div><div><br></div><div>But I also include Common Lisp, because although it&#39;s not a standard language it does have a deep history in algorithmic composition and an important community, especially around OpenMusic. </div><div><br></div><div>And I include Scheme because the WASM implementation of s7 brings Scheme into the Web browser or NPM world where it can be used with JavaScript. </div><div><br></div><div><div>In fact, I think WASM will become increasingly important because anything compiled to WASM can be used from JavaScript, which thus serves to glue together many different systems and packages in one environment.</div><div><br></div></div><div>Good luck,<br></div><div>Mike</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div>-----------------------------------------------------</div>Michael Gogins<br>Irreducible Productions<br><a href="http://michaelgogins.tumblr.com" target="_blank">http://michaelgogins.tumblr.com</a><br>Michael dot Gogins at gmail dot com</div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Nov 10, 2023 at 7:37 AM Rochus Keller &lt;<a href="mailto:me@rochus-keller.ch">me@rochus-keller.ch</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"><div class="msg-986681168858415184"><u></u>
<div style="font-family:&quot;Droid Sans&quot;;font-size:8pt;font-weight:normal;font-style:normal">
<table border="0" style="margin:2px">
<tbody><tr>
<td style="border:none">
<p style="margin:0px;text-indent:0px"><span style="font-family:Arial;font-size:10pt">@ Rick:</span></p>
<p style="margin:0px;text-indent:0px;font-family:Arial;font-size:10pt"><br></p>
<p style="margin:0px;text-indent:0px"><span style="font-family:Arial;font-size:10pt">Thank you very much for your response. So it was mostly a technical reason to switch from CL to Scheme, not because of the language. It&#39;s also amazing to learn, that you even ported the system to Python.</span></p>
<p style="margin:0px;text-indent:0px;font-family:Arial;font-size:10pt"><br></p>
<p style="margin:0px;text-indent:0px"><span style="font-family:Arial;font-size:10pt">Since you therefore have experience in algorithmic composition in at least four languages - Common Lisp, Scheme, SAL and Python - the question arises which of these languages you consider most useful to represent compositions and musical information.</span></p>
<p style="margin:0px;text-indent:0px;font-family:Arial;font-size:10pt"><br></p>
<p style="margin:0px;text-indent:0px"><span style="font-family:Arial;font-size:10pt">I&#39;m also curious whether you think object-orientation brings added value to algorithmic composition. In your papers and book you emphasized CLOS; in the Scheme version of Common Music object-orientation doesn&#39;t seem to be of importance, and - as far as I understood - SAL doesn&#39;t support object-orientation at all. Am I right to conclude from this that algorithmic composition has little benefit from object-orientation?</span></p>
<p style="margin:0px;text-indent:0px;font-family:Arial;font-size:10pt"><br></p>
<p style="margin:0px;text-indent:0px"><span style="font-family:Arial;font-size:10pt">Thanks</span></p>
<p style="margin:0px;text-indent:0px"><span style="font-family:Arial;font-size:10pt">R.K.</span></p></td></tr></tbody></table></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>
</div></blockquote></div>