Collaborative Music Composition Module

Events happening in the community are now at Drupal community events on www.drupal.org.
Casey D's picture

Overview: A Drupal module for musicians to collaboratively compose music online. Features include an interface for scoring music, sequencing audio samples, mixing tracks, and playback, all in the browser. Also features wiki-like version control and control over which users may create, access and edit individual projects.

Description: Web 2.0 has brought us some amazing advances in online collaboration with projects like Wikipedia, Google Docs, and countless open-source applications we use everyday. Recent history has shown an increased interest in online musical collaboration, and advancing web technology is making it all the more possible. In the last year, for instance, Rivers Cuomo of the rock band Weezer started the Let's Write a Sawng project (http://www.youtube.com/view_play_list?p=03CF563D3E82A1AA), creating a pop song with insight from YouTube users via video responses. Similiarly, YouTube launched hosted their own YouTube Symphony Orchestra (http://www.youtube.com/symphony), allowing musicians to contribute instrumental pieces to a large online orchestra, also via video responses. While those are all very cool ideas, what would be absolutely awesome is if there was a way for musicians and composers to take a more hands on approach to musical composition collaboration online, much in the way a user may edit an article on Wikipedia or share a spreadsheet with Google Docs.

Drupal already provides the framework for making any kind of creative collaboration a possiblity, such as user management and community creation tools. All that is needed for collaborative online music composition in Drupal is a module that would provide an interface and backend to allow users to compose music directly via their web browser, or to download the project in a popular file format like MIDI to edit with their software of choice, then upload the results.

The editor will include an AJAX-powered mixer, step sequencer (http://en.wikipedia.org/wiki/Music_sequencer) and virtual piano roll (http://en.wikipedia.org/wiki/Piano_roll), similar to those offered in commercial applications like Cubase, Cakewalk or Fruity Loops, and will support playback right in the browser. Playback will be accomplished with user uploaded samples played in a lightweight Flash player (here's an especially good article on how this is done with GWT: http://googlewebtoolkit.blogspot.com/2009/03/giving-your-gwt-application... it can be done with jQuery as well).

The server will most likely store the data using the MIDI standard, but will also support downloading the data in alternate formats, particularly open ones that support having audio samples embedded in the file, like FMOD (http://www.fmod.org/). Features will also include version control, forking, branching and access permissions. Project creators can invite friends to collaborate with them or even allow anyone to contribute anonymously.

There are, of course, limitations to how music can be created on the web. The goal of this project, however, is not to create professional quality audio in the browser, but to provide a simple and elegant way for people to share musical ideas over the web and have a lot of fun.

About me: My name is Casey. I'm a second year computer science major and my experience relevant to this proposal includes:

* 18 months using and hacking Drupal
* 1 year of AJAX development with Google Web Toolkit, jQuery and Dojo
* 4 years of web development with Apache, PHP and MySQL
* 6 years of basic programming in C/C++ and web development with Perl
* 10 years studying music theory and composing music

Anything else you want to know, just ask! Mentors may find my official proposal and contact information here:

http://socghop.appspot.com/student_proposal/show/google/gsoc2009/casey/t...

Mentors:

* Not yet applicable

Difficulty: Medium/Hard

Thank you for reviewing this proposal and have a fun, happy, productive and successful summer.

Comments

related works

manara's picture

Hi. This topic is quite interesting.

I have worked with something similar in the last 5 years, but mine is novice-oriented. It implies some especific requirements to allow ordinary users to create their own music.
There are some papers availabe on the Web. Take a look at "CODES, a Web-based environment for cooperative music prototyping".

Best regards.

Noteflight

joeberkovitz's picture

You may be interested in looking at Noteflight (http://noteflight.com). It is a full-featured online music notation editor that supports collaboration, sharing, versioning, embedding and so forth. It makes use of the Flash Player.

Anyone with a website (Drupal-based or otherwise) can create musical compositions online and link/embed them via the same techniques used by YouTube and other widget-based applications. Compositions can have multiple authors, permissions can be set, and so forth.

You seem more interested in MIDI and step sequencing. There are some efforts taking place to create collaborative web apps along these lines too, although I think MIDI/piano roll is rather limited as a way to communicate with other musicians -- it is more geared to a single author creating a performance by themselves.

TeamComposer

eightfold's picture

TeamComposer might be more what you're looking for. It's got real-time collaboration, similar to Google Docs, and the resulting piece can then be downloaded as MIDI and sampled in Garage Band / Logic / etc.

http://www.teamcomposer.com

It's very AJAX-y, although it's got a limited sample set (e.g. no user uploads). There's a repository of all changes, but there's no SVN fanciness like branching yet, although you can easily create 'variations' or remixes of existing works.

I'm the main programmer for TC, and a fairly recent Drupal convert. If there's interest in making it into a module, or if you'd like to work with me on creating one, I'd be happy to give it a go (just use the Contact page at TC). It'd be a way cool mini-app to integrate into new music sites -- "share your musical ideas here!"

I really like this idea, I'm

binaryreleases's picture

I really like this idea, I'm doing this kind of thing on my site using organic groups, cck and filefield but a dedicated module would really help.

Track'n Stack

pbergeron's picture

Track'n Stack (http://drupal.org/project/tracknstack) may be the module you need if you just need a simple interface to collaborate with other music freaks. This module handles downloads, uploads, file locking and you're stay free to use your favorite software to compose.

SoC 2009

Group categories

Admin Tags

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week