Musical Notation in SC using musicXML

I would gladly do it.
First, I should analyse your code. At first glance, your approach and mine seem quite different. I cannot do it immediately. Also, I should urgently do something else by August. I think I can do it a few months later after getting some feedback from other users. I will leave another message when I do something related to this.

1 Like

The musicxml format is quite complex, I just donā€™t think it is suitable for this. But then again, music notation is also a very complex language with many edge cases. A simpler intermediate format might be better, but it would have to be a subset of normal notation to keep itā€™s simplicity. In a way, a reduced lilypond might be easiest as it makes note names and durations obvious.

Regarding sc in general, what would be really nice is red squiggles under errors before you execute the codeā€¦ but I doubt that will ever happen. Perhaps clearer error messages would be better. The current stack dump is very computer sciencey and not at all clear to understand. It would also be nice to be able to inspect there error in more detail, perhaps saving the error to a variable and asking it for more information if needed. I donā€™t know how that could work though.

1 Like

My intention is not to make users struggle with musicxml. The codes like 5 examples are what the users will deal with: the events and array of sclang.

The current messages are for debugging. They will be removed later, and the core part of the messages will remain to inform users of their errors.

My goal is as follows:

If users follow the notation instruction correctly, they only need to correct the code by comparing the code and the score in their preferred notation editor.

@smoge Have you tried my function and 5 examples?
You are one of the few people interested in this kind of music. I would appreciate your thoughts on creating musicXML using array and events and playing it via scserver.
Your opinion would be invaluable as I try to develop the implementation of this function as part of the sclang library!

1 Like

I have made a Quark libray related to this thread. It seems to work with the examples given, but needs further work.

Detailed help documents are provided for each class, as well as a Notator score guide!

2 Likes

While testing with a SC without SC3 plugins and without Quark, I found some problems and fixed them. I feel that this kind of work is not popular among SC users, but I upload it this way. I hope someone with good programming skills will take a close look at it.

@Newton_Armstrong @smoge

Hi there,
I understand that you both have implemented the LilyPond feature in sclang to enable music notation in SuperCollider.
At the moment there is a lot of discussion about SC4 or the development of the current version of SC. I think this is a good time to start implementing the music notation feature and exporting musicXML files from SuperCollider. I would have implemented this in the core library, but the main idea of the users involved in the development would make a better Quarks system for such features.

How it is done is not a big issue.

Are you interested in doing this together? Your LilyPond implementations are already great, but it would be more convenient not to use LilyPond, since learning SuperCollider is already not easy for many students, and learning another programming language at the same time is not easy. What I have done is the first draft of this, in which you can get a musicXML file for custom music notation software, and get standard rewritten sclang code to play music using scserver, simply by constructing musical content using arrays and events.

My intention is not to implement the whole engraving system, but to implement a basic feature to work seamlessly between SuperCollider and any music notation software.
I think it would provide a more convenient workflow and environment, and be practical when using SuperCollider to have a consistent and well-defined way of creating music notation.

If both of you, or either of you, and of course anyone else who reads this post is interested, please write your opinion. If you think this is not a necessary feature of SuperCollider, please let me know! Thanks for reading!

1 Like