I'm John Andrews, currently a freshman computer science major at Rensselaer Polytechnic Institute. I heard of GSoC this past Friday and have been spending a few days lurking since then. I am a pianist in my spare time, and I use Musescore frequently to assist with transcribing songs, or with copying and modifying sheet music that I already have, and very occasionally to write original compositions, generally of no more than one instrument (piano solos).
I am very comfortable programming in C++; I am currently a mentor at RPI for Data Structures, our local CS 2 course, a very rigorous and programming-intensive course taught in C++. I have never worked with Qt, but I feel confident that I have both the ability and the time to learn what I need to well before the start of the GSoC work season.
I am primarily interested in the halving/doubling of note durations project from the ideas page, for a few reasons. First among them is that it is a feature I would really like to see in Musescore, and that would have saved me a lot of very tedious work in one of my sheet music copying/modification projects a while back. Another is that it looks to be an interesting programming challenge, and one that is within my current ability to solve. (OMR was another idea that caught my eye, but as I have done next to no computer imaging work I am concerned that I might need to spend too much time learning and not enough time coding.)
For the next few days, though, my intention is to get Musescore compiled on my machine and to start familiarizing myself with the code base, perhaps by working on some bugs. To that end, I have some questions.
I use Windows for general use, but I prefer a more Unix-like environment for development. Typically, I use the MSYS2 shell with MinGW. There are no instructions for compilation using MSYS on the compilation instructions page, so I did some tinkering with Makefile (not Makefile.mingw) to see if I could figure it out; added flags to the cmake commands to generate MSYS makefiles, recognize my compilers, and added quotes around the PATH variables to get bash to accept a Windows PATH filled with spaces and parentheses. These edits got the build through the configuration, but a little later it started hanging on very strange compiler errors in areas of the code that, as far as I can tell, have nothing wrong with them.
Is there a better way to go about building Musescore on MSYS, or perhaps Cygwin? Or is such a goal just too much trouble? It would be very nice to be able to use something Unix-esque without having to dual boot Linux or use a VM, but if the build system is not set up to support it then I suppose it can't be helped.
Alternatively, if it's not already a solved problem, could adding MSYS support to the build system be a viable GSoC project?