{"id":19269332,"url":"https://github.com/atsushieno/mugene-ng","last_synced_at":"2025-08-16T16:33:59.909Z","repository":{"id":57731102,"uuid":"345730485","full_name":"atsushieno/mugene-ng","owner":"atsushieno","description":"Music Macro Language to MIDI 1.0 / 2.0 compiler","archived":false,"fork":false,"pushed_at":"2024-07-19T14:07:00.000Z","size":1954,"stargazers_count":7,"open_issues_count":9,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-07-19T17:50:07.761Z","etag":null,"topics":["kotlin","kotlin-multiplatform","midi","midi2","mml","music"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atsushieno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-08T17:00:49.000Z","updated_at":"2024-07-15T17:23:01.000Z","dependencies_parsed_at":"2024-01-04T08:24:11.020Z","dependency_job_id":"7c68c444-bc86-46ed-a913-67df94db15c0","html_url":"https://github.com/atsushieno/mugene-ng","commit_stats":null,"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushieno%2Fmugene-ng","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushieno%2Fmugene-ng/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushieno%2Fmugene-ng/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushieno%2Fmugene-ng/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atsushieno","download_url":"https://codeload.github.com/atsushieno/mugene-ng/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223877433,"owners_count":17218575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kotlin","kotlin-multiplatform","midi","midi2","mml","music"],"created_at":"2024-11-09T20:19:34.515Z","updated_at":"2024-11-09T20:19:35.288Z","avatar_url":"https://github.com/atsushieno.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mugene-ng: mugene MML compiler, next-gen\n\n![maven repo](https://img.shields.io/maven-central/v/dev.atsushieno/mugene)\n\n## What is this?\n\nThis is the successor of my [mugene](https://github.com/atsushieno/mugene/) [Music Macro Language](https://en.wikipedia.org/wiki/Music_Macro_Language) compiler to Kotlin Multiplatform (from C#), so that I can go forward and improve the entire ecosystem and toolchains. Now it can be used as a JVM library, native library, a JavaScript library, or even a WebAssembly library, as well as standalone native compiler or a JVM standalone jar.\n\nThe new version in Kotlin has preliminary support for MIDI 2.0 UMP stream format beyond the past C# version did. Any new features will be developed only in this project.\n\nEverything, including the project name, is subject to change at this moment.\n\nThe entire language is partly documented as [docs/UsersGuide.md](./docs/UsersGuide.md).\n\n## Using mugene-ng as a library\n\nmugene-ng is available at Maven Central. If you would like to use it as part of your application, add the following lines in the `dependencies` section in `build.gradle(.kts)`:\n\n```\ndependencies {\n    implementation \"dev.atsushieno:mugene:+\" // replace + with the actual version\n}\n```\n\n## Building and using command-line compiler\n\nTo use mugene-ng as command line compiler, run:\n\n```\n./gradlew mugene-console:jvmRun [args]\n```\n\nAlternatively, if you run `./gradlew build`, then there will be `mugene-console/build/bin/[platform-arch-dir]/debugExecutable/mugene-console.kexe` (or `.exe` on Windows). You can then use it like a standalone executable to compile mugene MML files like: `(the/path/to/)mugene-console.kexe samples/escape.mugene`. For the complete list of command line arguments, just run this executable without arguments.\n\n## mugene-ng VSCode extension\n\nmugene-ng is a Kotlin Multiplatform project that supports Kotlin/JS. We publish mugene-ng as an NPM package, as well as [vscode-mugene-language extension](https://marketplace.visualstudio.com/items?itemName=atsushieno.vscode-language-mugene) (the extension used to support .NET based mugene that only ran the compiler as a \"native\" executable, but now we are fully JS based).\n\nThough note that due to some flaws in publishing workflow, the vscode extension may not be always the latest.\n\n## mugene-ng applications\n\nWhile mugene-ng can be evaluated as a standalone command line MML compiler project, it is actually part of the [ktmidi](https://github.com/atsushieno/ktmidi) ecosystem. It is the core part of [augene-ng](https://github.com/atsushieno/augene-ng) project, which makes use of its MML to MIDI 2.0 compiler then to target audio plugins sequencer engine.\n\nmugene-ng is also used in a virtual MIDI 1.0/2.0 keyboard [kmmk](https://github.com/atsushieno/kmmk) project, which is also part of ktmidi ecosystem.\n\n## mugene-ng limitations\n\nWhen porting from C#, I disabled `__STORE_FORMAT` primitive operation (because it had C# `String.Format()` as its premise), which effectively killed Vocaloid2 VSQ support and around the feature. Vocaloid2 is too ancient anyways, so there wouldn't be significant drawback.\n\n## License and dependencies\n\nmugene-ng is distributed under the MIT License.\n\nmugene-ng depends on [Strumenta/antlr-kotliin](https://github.com/Strumenta/antlr-kotlin) which is distributed under the Apache 2.0 License.\n\nmugene-ng depends on [atsushieno/ktmidi](https://github.com/atsushieno/ktmidi) which is distributed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatsushieno%2Fmugene-ng","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatsushieno%2Fmugene-ng","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatsushieno%2Fmugene-ng/lists"}