{"id":19625119,"url":"https://github.com/audiveris/proxymusic","last_synced_at":"2025-07-09T13:35:40.323Z","repository":{"id":10948997,"uuid":"67612206","full_name":"Audiveris/proxymusic","owner":"Audiveris","description":"Java mapping library for MusicXML","archived":false,"fork":false,"pushed_at":"2024-09-20T10:29:06.000Z","size":3381,"stargazers_count":30,"open_issues_count":2,"forks_count":18,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-12T20:53:27.096Z","etag":null,"topics":["java","marshal","music","musicxml","xml-serialization"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Audiveris.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":"2016-09-07T14:05:26.000Z","updated_at":"2025-01-16T17:45:04.000Z","dependencies_parsed_at":"2025-01-09T15:47:30.690Z","dependency_job_id":"37d1511f-baf7-495a-b3d3-4c0e4717efb0","html_url":"https://github.com/Audiveris/proxymusic","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Audiveris%2Fproxymusic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Audiveris%2Fproxymusic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Audiveris%2Fproxymusic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Audiveris%2Fproxymusic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Audiveris","download_url":"https://codeload.github.com/Audiveris/proxymusic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631725,"owners_count":21136560,"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":["java","marshal","music","musicxml","xml-serialization"],"created_at":"2024-11-11T11:40:03.609Z","updated_at":"2025-04-12T20:53:30.525Z","avatar_url":"https://github.com/Audiveris.png","language":"Java","readme":"[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.audiveris/proxymusic/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.audiveris/proxymusic)\n\n# ProxyMusic\n\nProxyMusic allows to marshal/unmarshal Java objects in memory to/from MusicXML 4.0\ndata in a Document, a stream or a file.\n\nThis binding provides an easy way for Java programs dealing with music symbolic\ninformation (such as score scanners, music editors, music sequencers, etc) to read\nor write files in MusicXML.\n\nProxyMusic supports the following MusicXML features:\n\n* Marshalling/unmarshalling of **ScorePartwise**\n* Marshalling/unmarshalling of **Opus**\n* Handling of standard (uncompressed) `.xml` files\n* Handling of compressed `.mxl` files\n\n## Implementation\n\nAll MusicXML elements and attributes are implemented as about 325 Java classes that are\nautomatically generated from the MusicXML defining schema as found on\n[its vendor site][musicxml-developers].\n\nThe main advantage of this automated approach is to result in an efficient and error-free implementation.\n\n## Building\n\n\nBuilding ProxyMusic is easily achieved with the following terminal command:\n\n```\n$\u003e mvn clean package\n```\n\nThis command will (re)build the ProxyMusic Maven artifacts (binary, source and doc),\ntaking as input the schema definition files `src/main/xsd/musicxml.xsd` and `src/main/xsd/opus.xsd`.\n\n## Usage\n\nThe latest ProxyMusic release is available on [Maven Central][maven-central-proxymusic]\nand thus can be easily integrated in a Gradle or Maven build.\nAlternatively, it is possible to [build a local artifact](#building).\n\nA utility Java class, named `proxymusic.util.Marshalling`, is available to ease the handling\nof both marshalling and unmarshalling of *ScorePartwise* and *Opus* entities.\n\nA few examples of use:\n\n* A small example is available in the `proxymusic.util` package located in the test branch,\n  its name is `proxymusic.util.HelloWorldTest.java`.   \n  This example performs marshalling and unmarshalling of the classical HelloWorld as available in\n  the MusicXML tutorial.\n* Another small example, focused on the marshalling and the unmarshalling of a part-list element,\n  is available as `proxymusic.util.ScorePartTest.java`.\n* For marshalling and unmarshalling Opus entities, see `proxymusic.opus.OpusTest.java` simple\n  example or `proxymusic.opus.MxlOpusTest.java` more realistic example.\n* For dealing with compressed `.mxl` files, see `proxymusic.mxl.MxlTest.java`\n  or `proxymusic.opus.MxlOpusTest.java` examples.\n* A real size example is provided by the companion [Audiveris project][audiveris-project].   \n  Audiveris is an Optical Music Recognition software (OMR) which uses ProxyMusic to handle\n  the marshalling layer.   \n  For detailed information, refer to Audiveris [ScoreExporter][score-exporter]\n  and  [PartwiseBuilder][partwise-builder] Java classes.\n\n---\n[musicxml-developers]:      http://www.musicxml.com/for-developers/\n[maven-central-proxymusic]: https://mvnrepository.com/artifact/org.audiveris/proxymusic/4.0.1\n[audiveris-project]:        https://github.com/Audiveris/audiveris\n[score-exporter]:           https://github.com/Audiveris/audiveris/blob/master/src/main/org/audiveris/omr/score/ScoreExporter.java\n[partwise-builder]:         https://github.com/Audiveris/audiveris/blob/master/src/main/org/audiveris/omr/score/PartwiseBuilder.java\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faudiveris%2Fproxymusic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faudiveris%2Fproxymusic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faudiveris%2Fproxymusic/lists"}