@semiquaver
I am glad you responded positively.
The reason I wrote it as a function is due to the following reasons:
-
Writing and evaluating it does not require recompiling, so I think it can save time.
-
I do not think the code structure is optimised in managing CPU peaks and memory usage, nor is it perfect in its logic. I think it is better to start writing it as a class when I have confidence in its functionality from all of those perspectives.
-
Besides writing the function as a class, one or more methods should be added to existing classes. At least the following function extracted the function above in this thread should be implemented as a method
.midispn
(MIDI number to scientific ptch notation) for simple numbers and arrays, even though both MIDI and SPN basically only support integer and twelve-tone equal temperament (I can’t think of a better name than.midispn
):
A class or method to convert integer and float to scientific pitch notation? -
Moreover, there should be a common convention for notating music notation using sclang, at least agreed upon by developers before writing a musicXML class.
-
One of the core developers @josh has already written some classes for musicXML. Wouldn’t it be better if @josh updated his classes with references to the code components of my function? There are already a lot of quarks, and releasing more quarks is messy.
I think musicxml support is very important and should be included in future versions of the official SuperCollider releases, not as a quark or anything else, for the following reasons
-
using SuperCollider in the classroom is tedious for students without pre-experience in coding and having to install extra packages for them takes time and energy. Until a few years ago I installed all available quarks and class libraries if sc did not crash when compiling the libraries. At the moment I use the classes as little as possible outside the SuperCollider primitives to avoid conflict with my students who start with only official releases of SC. (I think many useful classes should be included in the sc primitives.)
-
approaching computer-aided composition or digital sound production from the interfacing music notation with the computer science is easy to explain the related theory and fun to practice.
I do not know how other developers and users feel about this. The long-term users of SC, apart from myself, are very professional in programming. However, most beginners and many musicians interested in digital sound or computer-aided composition are not so professional in programming. Wouldn’t it be great if sclang could provide an easy way for people interested in this area to get started?
In the hope that many users will take a look at my function and leave feedback.