2021 Google Summer of Code ideas #941
Locked
musicEnfanthen
started this conversation in
Ideas
Replies: 1 comment 1 reply
-
We can probably delete this, as it is no longer relevant. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
*** Transferred from (removed) WIKI for documentation purpose ***
2021 Google Summer of Code ideas
MEI Support for MuseScore
A proof of concept was done earlier: https://github.com/ahankinson/musescore/tree/export-mei.
This project will be to develop import and export of MEI from MuseScore. We have support and interest from the MuseScore developers to add this functionality, but we'll be developing it as a MEI community project.
The first step will be to look at the current state of the MuseScore code and propose an approach for adding MEI support. Ultimately we are looking to 'round-trip' a notation file; first save as an MEI-encoded file, then load an MEI-encoded file, into the application. This will mean digging deep into the data structures within MuseScore, and working with the MEI community to come up with the most appropriate method of representing them.
Technology requirements: C++ and XML a must. Ability to read music notation is strongly desired. Familiarity with git and GitHub-based workflows (pull requests, code reviews, etc.) is also strongly desired.
Other requirements: Good communication, ability to effectively plan work, not afraid to reach out if you get into a difficult spot.
Difficulty: Medium to hard, depending on your familiarity with the respective technologies.
Mentors (all have different expertise, and can help you out):
Fabian Moss, Johannes Hentschel, Andrew Hankinson, Laurent Pugin;
In addition, we can put you in touch the development team from MuseScore, who have been supportive of our application.
Register an MEI Mimetype
The IANA Media Types (aka "MIME types") are a registry of common file formats, with the function of allowing computer communication to identify the nature of the data inside of a file that is sent through a communication channel. In particular, MIME types are essential for identifying and negotiating responses in a Linked Data context, such that clients and servers can ensure that each are sending and receiving data that they both can understand.
Following the example of the Text Encoding Initiative we would like to register a MIME type for the MEI:
application/mei+xml
. We can use the TEI application as a template. The student will become familiar with writing (and having their writing technically reviewed) in an industry-standard process.Difficulty: Easy
Requirements: Solid technical writing; patience with the review process; ability to plan work and to see it through to completion
Mentors: Andrew Hankinson (Can also put you in touch with colleagues who have gone through this process previously).
Automated Schema Testing
The MEI Schema would benefit from having automated unit tests for testing changes to the schema, and ensure that there are no unintended changes. Several datasets of small unit tests exist for other MEI-related tools (The Sibelius plugin; Verovio). The task would be to develop the GitHub Actions CI infrastructure, integrate these unit tests into the commit workflow, and ensure changes to the schema can identify areas where the tests will break.
Difficulty: Medium
Requirements: XML validation and schema development; Understanding of CI workflows; Good communication skills
Mentors: Andrew Hankinson, Laurent Pugin
Improvements and updates to the music21 MEI support
music21 is one of the most valuable tools available for computational musicology. Initial work on the music21 toolkit to support MEI was done a few years ago, but it is now in need of maintenance and updates. The project is to look at the existing state of the code, and suggest any updates or improvements to MEI support in music21.
Difficulty: Easy to Medium
Requirements: Python; MEI; understanding common computational musicology tasks; Good communication skills
Mentors: Andrew Hankinson; We can put you in touch with the main music21 developers as well.
Beta Was this translation helpful? Give feedback.
All reactions