Skip to content

Gsoc2013Ideas

RJ Skerry-Ryan edited this page Mar 29, 2013 · 47 revisions

Student Project Ideas for Google Summer of Code 2013

This page lists the suggested projects for students working on Mixxx as part of Google Summer of Code 2013. Each of these projects represents something that we think would make a really big difference to our users and that we as a development team are really excited about. For advice on how to get in touch and how to apply, you should read GSoC Advice.

A GSoC application that simply repeats the project description will NOT be accepted. We expect you to think about the feature and how it aligns with Mixxx's goals, outline potential use-cases and propose a plan for implementing a solution.

Cover Art Support

Over the years a highly requested feature has been for Mixxx to support displaying cover art. This is a great project that combines both aesthetics/design and engineering. Can you think of awesome, playful ways to display cover art?

Some topics your proposal should cover:

  • Supporting loading cover art (from metadata tags, from cover images in album directories, etc.)
  • Deciding where and how to display the cover art in the GUI.
  • Downloading cover art from metadata sources on the Internet if it is not available locally.

Your proposal should at the very least include details of how you will accomplish each of these parts of the project but the project is by no means limited to these topics. Make sure to think through the whole design and implementation and be sure to include details of anything you think may be relevant.

Since this project is small in scope, we expect that you will have plenty of time to polish it and make it shine.

Plug and Play MIDI Mode / Community MIDI Mappings

Mixxx currently supports a wide-range of hardware MIDI controllers that DJs can use to perform with. Each supported MIDI controller has a "mapping" file that is bundled with Mixxx, but this mapping must be manually selected by the user before their controller works. The aim of this project is to increase the usability for new users by automatically selecting the correct MIDI mapping and to provide an intelligent workflow for when an unsupported MIDI device is connected.

When a mapping for a MIDI device is not present, the user should not be left out in the cold. She should have the option of connecting to mixxx.org to see if there are any official or user-contributed mappings available for download. It's easy to imagine the various interesting turns this could take.

Since there is a server-side component to this project we ask that applicants be familiar with a web development framework that would be suitable for writing an API for mixxx.org. We suggest Django.

This project will involve a lot of time thinking about use cases, dealing with users and understanding their requirements. It would be a great opportunity for a student to get involved with the Mixxx community. The student will also have the opportunity to borrow a MIDI controller from the development team for the duration of the project.

Library GUI Layout Redesign

The current library GUI needs to be polished and needs to give room for new features.

Further links can be found here:

https://blueprints.launchpad.net/mixxx/+spec/three-column-library-layout

Advanced Tagging

Currently Mixxx does not write metatdata back to the tracks. The tagging capability of mixxx is low compared to current media players. It is a good idea to catch up.

Non-Blocking Database Access

Currently some database transactions are stalilng the GUI. This is because som database actions are preformed from the GUI thread. This project would make Mixxx more relyable by defining and implementing a new concept how to deal with database actions.

D-Bus Interface

This Project aims to integrate Mixxx into the Linux desktop. Mixxx should be able to communicate with other Mediaplayers for exchanging playlists and it should be able to control Mixxx by the audio controls of the desktop environment.

http://specifications.freedesktop.org/mpris-spec/latest/

Include Streaming services or webapps like Soundcloud/Last.fm/...

There are a lot of good online sites available to organize your library or get new music, like soundcloud, last.fm and musicbrainz. Support for tags correction with musicbrainz was implemented in last years GSOC and will be integrated in 1.12. You can pick one service that you like and implement it in GSOC 2013

Further Information can be found here:

Enhanced Platform Integration

Thanks in large part to Qt and a number of other cross-platform libraries, Mixxx runs on Windows, Mac OS X, and Linux. Although we're able to provide a consistent user experience on Windows and Mac OS X, we'd like to provide a better integrated experience on each of these platforms. We want to take advantage of the unique features that each platform provides, like the new fullscreen mode in OS X Lion or the new jump list in Windows 7, so that Mixxx feels as native as possible.

Qt already provides a small number of platform integration features, but to take advantage of other newer features that Qt doesn't have, platform-specific code for Windows and Mac OS X must be added to Mixxx. This project will involve figuring out which platform-specific features in Windows 7, Windows 8, Mac OS X Lion, and Mac OS X Mountain Lion would be the most useful for Mixxx users, and implementing several of those. (We don't expect students to have access to both Windows and Mac OS X, so a proposal focusing on one particular OS is OK, but an awareness of both platforms is a plus.)

This project could also include more basic polishing tasks, so if there's some little inconsistencies about Mixxx that have been bugging you, here's your chance to fix them.

For ideas, check out:

Mixxx Remote

There are many different options to achieve remote control of Mixxx for different use cases.

It is up to you to propose a remote scenario that will be the scope of your GSoC Project.

Hiere are some links:

Something Else!

As always with Summer of Code, you aren't limited to the suggestions we've made here. If you've got a great idea for a project involving Mixxx then we're looking forward to hearing about it. Our bug tracker is full of wishlist bugs and other ideas scattered throughout, so if you browse through it, you may find many more ideas for GSoC projects.

IMPORTANT: You should contact us first to get feedback if you're going to submit a proposal for your own project idea!

Clone this wiki locally