Skip to content
/ wmn4j Public

Java library for handling western music notation with a focus on computational music analysis.

License

Notifications You must be signed in to change notification settings

otsob/wmn4j

Repository files navigation

Western Music Notation for Java (wmn4j)

pull_request License: MIT Maven Central

wmn4j is a Java library for handling western music notation. The main purpose of wmn4j is to enable easy and efficient analysis of scores and wmn4j is intended to also provide functionality for algorithmic composition by generating scores.

The structure of wmn4j

The structure of scores in wmn4j is described in a separate document. The API Documentation provides the Javadoc for the latest release of wmn4j. There are a few architectural design principles in wmn4j:

  • All notation classes are immutable
  • Builder classes are used for creating objects
  • Scores can be read using different types of iterators

See the examples directory for simple examples of how to use wmn4j.

Building wmn4j

wmn4j is developed and built with OpenJDK 17. wmn4j uses Gradle and can be built by running Gradle build. With the current configuration the build consists of compilation, unit tests, and static analysis. It is recommended to delegate the building of the project to Gradle using the provided Gradle wrapper in the IDE to ensure all dependencies etc. are handled correctly. To build locally, run

./gradlew build

Contributing

Contributions to wmn4j are very welcome. If you are interested, feel free to message me (otsob) through Github. Contributing to wmn4j happens throught pull requests. For commits we try to follow basic practices (for example, see the ones by Painsi or Beams).

As wmn4j is a library, the testing happens through unit tests and it is preferred that changes come accompanied by corresponding unit tests.

The coding style of wmn4j is not very strict, but there are some basic guidelines.

Contributing to this project is supposed to be enjoyable, so behaving nicely and respectfully is appreciated. For a general guideline on code-of-conduct we follow the one outlined by Contributor Covenant.

For pull requests target the development branch. The main branch is reserved for releases.

If you find a bug in wmn4j or want to propose a feature, please open an issue with the corresponding template.

Built With

Versioning

Wmn4j is still in the alpha phase. The released versions of wmn4j are available on Maven central.

Authors

  • Otso Björklund - otsob
  • Matias Wargelin

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.txt file for details

Citation

If you use wmn4j for research, or need a reference to cite for other reasons, please use:

@inproceedings{wmn4j2022,
   author = {Björklund, Otso},
   title = {{Western Music Notation for Java: A library for music notation on the JVM}},
   booktitle={Extended Abstracts for the Late-Breaking Demo Session of the 23rd International Society for Music Information Retrieval Conference},
   year = {2022},
}

About

Java library for handling western music notation with a focus on computational music analysis.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages