# About kernpy

## The Project

kernpy is a Python toolkit for processing symbolic music notation in **Humdrum **kern format**. It enables researchers, musicians, and developers to work with digital music scores programmatically.

The project bridges the gap between the rich Humdrum ecosystem and modern Python development, making it easy to parse, analyze, transform, and export musical data.

## The Team

kernpy is developed and maintained by the **Pattern Recognition and Artificial Intelligence Group (PRAIG)** at the **University of Alicante**, Spain.

### Affiliations

- [Pattern Recognition and Artificial Intelligence Group (PRAIG)](https://praig.ua.es/)
- [University of Alicante](https://www.ua.es/), Spain

## License

kernpy is distributed under the **AGPL-3.0-only** license. This means:

See the [full license](https://github.com/OMR-PRAIG-UA-ES/kernpy/blob/main/License) for details.

## Citation

If you use kernpy in academic research, please cite it:

```bibtex
@inproceedings{kernpy_cerveto_mec_2025,
  title        = {kernpy: a Humdrum **Kern Oriented Python Package for Optical Music Recognition Tasks},
  author       = {Cerveto-Serrano, Joan and Rizo, David and Calvo-Zaragoza, Jorge},
  editor       = {Lewis, David and Plaksin, Anna and Stremel, Sophie},
  booktitle    = {Proceedings of the Music Encoding Conference 2025},
  year         = {2025},
  address      = {London, United Kingdom},
  publisher    = {Knowledge Commons},
  doi          = {10.17613/qhvtd-hkv52},
}
```

See [Citation](citation.md) for more citation formats.

## Contributing

We welcome contributions from the community! You can:

- Report bugs and request features on [GitHub Issues](https://github.com/OMR-PRAIG-UA-ES/kernpy/issues)
- Contribute code via [pull requests](https://github.com/OMR-PRAIG-UA-ES/kernpy/pulls)
- Improve documentation
- Share use cases and examples

See [Contributing Guide](contributing.md) for detailed instructions on setting up your development environment and submitting contributions.

## Funding and Support

kernpy development is supported by:

- **University of Alicante** — Infrastructure, research time
- **Pattern Recognition and Artificial Intelligence Group (PRAIG)** — Active development and maintenance

If your organization uses kernpy and would like to sponsor development, please reach out to the team at PRAIG.

## Related Projects

kernpy builds on the foundation of the **Humdrum Toolkit**:

- [Humdrum Toolkit](http://www.humdrum.org/) — Original **kern format specification and tools
- [Humdrum Online](http://www.humdrum.org/Humdrum/) — Interactive Humdrum tutorials

Other music notation libraries:

- [music21](https://web.mit.edu/music21/) — Python music analysis library
- [MuseScore](https://musescore.org/) — Music notation software
- [Lilypond](https://lilypond.org/) — Music notation system

## Research

PRAIG conducts research in:

- Music information retrieval
- Pattern recognition in music
- Machine learning for music analysis
- Digital humanities

Find publications and research at [PRAIG website](https://praig.ua.es/).

## Contact

- **GitHub:** [OMR-PRAIG-UA-ES/kernpy](https://github.com/OMR-PRAIG-UA-ES/kernpy)
- **Issues:** [Report bugs or request features](https://github.com/OMR-PRAIG-UA-ES/kernpy/issues)
- **PRAIG Website:** [https://praig.ua.es/](https://praig.ua.es/)
- **University of Alicante:** [https://www.ua.es/](https://www.ua.es/)

## Acknowledgments

We thank:

- The **Humdrum community** for the **kern specification and tools
- **Contributors** who have reported issues and submitted improvements
- **Users** who have provided feedback and use cases
- The **open source community** for tools and libraries that kernpy depends on

## Version History

- **1.6.0** (current) — Modernized API, enhanced documentation
- [See all releases](https://github.com/OMR-PRAIG-UA-ES/kernpy/releases) on GitHub
