I'm taking the liberty to also reply to your question for Rick. 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.
I have worked professionally as a software engineer on trading systems using C, C++, C#, Java, and Python. 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. 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. 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's essentially just C/C++, Python, and JavaScript. But I also include Common Lisp, because although it's not a standard language it does have a deep history in algorithmic composition and an important community, especially around OpenMusic. 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. 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. Good luck, Mike ----------------------------------------------------- Michael Gogins Irreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com On Fri, Nov 10, 2023 at 7:37 AM Rochus Keller <[email protected]> wrote: > @ Rick: > > > 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's also amazing > to learn, that you even ported the system to Python. > > > 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. > > > I'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't seem to be of > importance, and - as far as I understood - SAL doesn't support > object-orientation at all. Am I right to conclude from this that > algorithmic composition has little benefit from object-orientation? > > > Thanks > > R.K. > _______________________________________________ > Cmdist mailing list > [email protected] > https://cm-mail.stanford.edu/mailman/listinfo/cmdist >
_______________________________________________ Cmdist mailing list [email protected] https://cm-mail.stanford.edu/mailman/listinfo/cmdist
