[GSoC 2013] - MuseScore in the Browser
MuseScore in the browser (EmScripten)
I will port the core "libmscore" module of MuseScore into the browser (Emscripten). I will also write an html5 application that will use this library as a proof of concept. The goal of this application will be to display and transpose an MSCZ file in the browser.
Benefits to MuseScore
In the world of web applications, many users no longer wish to download and install local applications, or they may be on a platform where that is impossible. By bringing libmscore into the browser, it opens up the possibility for html5 applications to be written which can utilize the functionality MuseScore supplies. The html5 app I will write myself at least allows for some basic functionality, but by porting the core of MuseScore, it paves the way for future browser development. In this sense, it will be of great use to end-users and developers alike.
The second part of the project is to then create an html5 application that uses this ported module. I will target a browser in a desktop environment (Chrome, Firefox, etc.), but I will design the application in such a way that it should not be difficult to make it work on mobile platforms, as well.
The primary focus will be on porting the libmscore library, with good documentation and polish, so that others can use the ported library for their projects.
Now until May 27th
- Hang out in the various ircs related to my proposal
- follow the mailing lists
- continue fiddling with MuseScore, emscripten, emscripten-qt
May 27th until June 16th
- Continue lurking and reading
- Get to know my mentor
- Become deeply famliar with the internals of libmscore
June 17th until June 23rd
- create a build process that will work well with emscripten
June 24th until June 30th
- Make the necessary changes to libmscore and the build process so that it will use emscripten-qt instead of normal qt.
July 1st until August 18th
- Port libmscore to emscripten. NOTE: I will further granularize this section, outlining which specific libraries and modules musescore requires and which classes I will have compiled and working by when. I won't know more about these specifics until I become more familiar with the internals of libmscore, however.
August 19th until September 1st
- Create HTML5 viewing application.
September 2nd until September 15th
- Add modification functionality. First transpose, and if time permits others.
September 16th until September 23rd
- Finish final polish on code and documentation.
- Make sure everything is ready for final submission.
I'm a 23-year-old student attending Slippery Rock University pursuing a bachelor's degree in computer science. I spend most of my free time playing computer games, working on hobby software projects, or creating music. I'm a self-taught piano player. I like to create mostly electronic music, although I have composed some solo piano pieces. If you're interested, I release my stuff as creative-commons and you can find it on SoundCloud here (not all of it is serious work haha). I haven't used MuseScore until I found it on the GSoC organizations list, but I have worked in the past with NoteWorthy Composer, which appears to be at least somewhat similar. I'm a huge fan of open source software, and I wish I had heard of MuseScore back when I used NoteWorthy (as NoteWorthy is neither free in price nor code).
MuseScore is a great piece of software, and I think it has an opportunity to expand into the browser. I hope I get the opportunity to contribute to this project this summer.