For the music enthusiasts among us, you may be familiar with the various pains and trials of dealing with sheet music. Finding the correct piece can be painful and even when you do, it’s often for the wrong instrument or in the wrong key. You might even have your own sheet music and you wish to adjust a minor thing. Now you find yourself typing note-by-note into musescore taking hours of your time.
Transpologist lets you upload sheet music in multiple file formats, including images, for transposition, playback, and export in a standardised file, such as MusicXML, which is compatible with other editors such as MuseScore and Sibelius. Though not a full music editor, it focuses on key and clef changes. You can also choose to contribute your sheet music to a public library for others to browse or use.
Name: Ella Berglas
Student number: 47425381
For uploading a file:
For browsing the library:
The MVP should be able to:
There are both many oppotunities for adding new features over time and changing existing features. It is very likley that some existing featuers will be updated to be more reliable or have better performance. This includes reading in the sheet music from an image. There are also a few applications of ML and AI that may be used within the software. As this is a continuously evolving feild, it is important that changes and updates can be made to this without drastically effecting the existing system.
Extra features that the project would likely expand to could include: adding an interactive music note editor, use of specific instruments for the synthesizer, implement ML and AI music suggestions, allowing for audio input as well as being able to change the font size and page layout.
Due to the numerous and various ways this software can be used, it is important to have the software be modular. Someone may only want to read in the file from an image, or upload an existing MusicXML file and just transpose it or listen to it etc. It is therefor important that each feature can be used independently from the others. Furthermore, this is important for improving existing features such as the service that reads the music from a pdf or the music player. It is important to have a modular system so that any changes or upgrades to these services do not disrupt the existing features. Modularity is importact as it helps with extensibility and testability and can keep the system simply and potentially minimise security risks.
Interoperability ensures that all features/ services can exchange and share data easily. This is crucial as majority of the features need access to the music data and any updates to it. This may present a slight tradeoff between modularity and interopability. It is important that we allow for all the features to work reliably and appropriately while keeping the systems as modular as possible. There are also oppotunities for caching data to make a faster user experience that may need to be considered.
Security should be considered throughout the entire process of the architecural design for every system. It is crucial for Transpologist to consider security from the very beginning and throughout implementation. As we are taking input files from the user, there needs to be many checks and validation of these files. Furthermore, if implementing without an account system, there should be some sort of human authentication system which provides resilience from overloading attacks.
The following criteria is used to determine if you have achieved implementing the key quality attributes for the project: