AaronEpstein

Aaron Epstein

Contact information

  • Your Name: Aaron Epstein

  • Email Address: aepstein824 gmail com

  • Launchpad ID: aepstein824-

  • Skype username: aepstein824

  • Webpage/blog:

  • College-University: Massachusetts Institute of Technology

  • Majors: Computer Science

Project

  • Project Name:

  • Project Description:

    • MuseScore (mscore) is a WYSIWYG music notation software with playback capabilities included in Ubuntu. The aim of the project will be to add more musical qualities to playback, including progressive tempo and dynamic changes (crescendo, accelerando, etc...). In addition to automatic rendition of musical terms, the project will involve a GUI to allow direct control of the timing and volume functions to allow any range of expression. This effect and more will be made possible by separating the effect code, possibly into plugins, so that adding and modifying effects is much easier. The end goal is to make Musescore's playback functions extend to all aspects of musical technique.

  • If you would be willing and able to do other projects instead, which ones?

    • The projects relating to Wubi and USB creator interest me, as I believe the installation process is very important to gaining the love of a new user.
  • Why did you like this idea?

    • Being involved in the music program at my school, I know personally the demand for affordable music composition and playback software. I want to assist musescore so that musician's can experience open source software as a powerful tool. A key component of this is the ability of musescore to playback scores in a way that accounts for more musicality, so that composers can experience everything they can imagine.
  • Please describe a tentative project architecture or an approach to it:

    • I will approach this problem by abstracting the effects processing abilities of Musescore so that it is easier to change their behaviour and easier to extend them via plugin. Once Musescore can process gradual tempo changes, it will have achieved the possibility of playing any musical effect, but it will not have implementations for every effect. I will make these implementations easy to develop and then proceed to develop them. I will also create an example of an advanced plugin to control gradual tempo changes.
  • Give us details about the milestones for this project:

Week 1

I will begin by implementing the ability to playback progressive tempo and dynamic changes. This will complete the foundation that Musescore has for playback. I will submit immediately a version that can play versions of ritenuto and accelerando that can only have one shape, configurable via file to allow users the chance to experiment and provide feed back.

Weeks 2 - 3

I will then begin to examine the playback structure and address any issues relevant to generalization, including performance limitations of the current architecture. I will prototype by attempting creating different solutions to the simplest effect, changing the duration or dynamic of a single note.

Weeks 4 - 6

I will move outward toward more complicated effects, moving existing effect code into the new system. I will maintain the already existing tier of processing, modifying each layer in turn so that each layer can be tested and submitted working with and not breaking the existing code.

Week 7

For as many layers as the new architecture is completed, I will begin addressing the goal of having an effect for every symbol. I will use a gui capable of advanced control of progressive tempo changes as a demonstration of the extensibility of the new system and to address the feedback of the version released in Wk 1. I will then create default effects for as many effects as possible.

Week 8

Clean up code, fight bugs, and continue implementing effects if possible.

  • Why will your proposal benefit Ubuntu?

    • This would make ubuntu a pliable option for composers. Commercial alternatives like Finale and Sibelius aren't available for linux, and non-WYSIWYG editors like Lilypond may not be appropriate for all users. Of course, by composers, I also mean music students, teachers, or anyone who would need to produce a good looking arrangement (anyone in the music industry).

Open Source

  • Please describe any previous Open Source development experience:

    • I have fixed submitted one patch to Audacity and one to Musescore. I have also done some commercial work with ffmpeg, wrapping its functionality in a dll to be used by a proprietary security system.
  • Why are you interested in Open Source?

    • Open source has given me access to a variety of capabilities I would not be able to afford otherwise. I want both to give back to open source a part of what it has given me and to expand its usefulness to more people.

Availability

  • How long will the project take? When can you begin?

    • This project can be completed in less than two months. I will have a relatively open schedule beginning May 20th.
  • How much time do you expect to dedicate to this project?

    • I can commit to GSoC as a full time job (30 - 40) hours.
  • Where will you based during the summer?

    • I will be at home.
  • Do you have any commitments for the summer?

    • At some point during the summer, it I hope to be able to reduce my workload for a week for a trip to visit my family out of town.
  • Please designate a back up student (in case you need to withdraw your application)

Other

  • Have you applied for any other 2010 Summer of Code projects? If yes, which ones?

    • No, I have not applied for any previous Google Summer of Code programs.
  • Why did you apply for the Google Summer of Code?

    • Google Summer of Code will be my opportunity to enter open source development with a strong footing by allowing me to work without worrying about other obligations and under the guidance of a mentor.
  • Why did you choose Ubuntu as a mentoring organisation?

    • Ubuntu made possible my use of linux. It is the open source project that I use most.
  • Why do you want to participate and why should Ubuntu choose you?

    • While I have used programming greatly for my own purposes, I feel that I am ready to give back my skills through Ubuntu. I believe that with the passion I have for solving programs and the experience I've gained by learning on my own, I believe that both me and Ubuntu could benefit greatly by choosing me to work with a mentor.

GSoC/2010/AaronEpstein (last edited 2010-04-09 14:06:59 by 18)