- From: Robert Patterson <robert@robertgpatterson.com>
- Date: Fri, 11 Apr 2025 13:34:04 -0500
- To: Music Notation Community Group <public-music-notation@w3.org>
- Message-ID: <CAACncesORKG__zKaejVPboWvqJ76N1SKm4u33yp3JonDNJYkTw@mail.gmail.com>
Today I released new versions of mnxvalidator <https://github.com/rpatters1/mnxvalidate/releases> and denigma <https://github.com/rpatters1/denigma/releases> (a Finale musx file exporter). These are both command-line tools compatible with macOS, Windows, and Linux. All are completely open source and released under the MIT license. ## mnxvalidate Adds a large number of new validations from version 1.0, mainly to do with sequence content. The full list is available at the link <https://github.com/rpatters1/mnxvalidate/releases>. A big architectural change is that all the validation code is now in the MNX DOM, which makes it available to any project that uses the DOM. ## denigma Denigma is an archival utility that can process Finale musx files without the need of Finale. The new version of denigma <https://github.com/rpatters1/denigma/releases> exports as complete an MNX file as is currently spec'ed. Right now it defaults to `.mnx` extensions for output despite the output being raw json. You can override the extension to `.json` if you wish. Since MNX is not a fully realized specification, the current iteration of denigma is probably mainly useful as a dev tool. If you have access to Finale and/or a cache of Finale musx files, you can quickly generate schema-compliant json for whatever scenarios you are interested in. I would be interested to know if there are any tools or websites that can render MNX, because so far I have been relying only on schema validation and my semantic validation to decide if the output is valid. ## MNX DOM for C++ With a few minor exceptions, this DOM fully implements the schema and documentation as of today (4/11/2025). It offers typed wrappers around a shared nlohmann root json object and accesses the classes with json_pointers. This obviates the need for class-level serialization. All of the data is accessed with typed methods defined with boilerplate macros. The validation code in the repo provides examples of how to use the DOM classes. The GitHub repo is here <https://github.com/rpatters1/mnxdom>. Documentation (Doxygen) is here <https://rpatters1.github.io/mnxdom/>.
Received on Friday, 11 April 2025 18:34:21 UTC