Early Spinoffs

From Audacity Wiki
Revision as of 22:25, 24 April 2008 by James (talk | contribs) (More text. How it works...)
Jump to: navigation, search

We regard it as vital that our Google Summer of Code projects have early spin-offs that can be completed well within the time. These early spin offs help to ensure that even when a projects runs into difficulties that the Audacity project still gets a useful result.

One significant problem with open source software development is having interesting code that is not in a state where it can actually be released.

Each project idea for Google Summer of Code with Audacity needs to specify the planned early spinoffs. Each of these is a litmus test for project progress. There will usually be additional code and related material 'under development' at the half way stage, though that part may not be in a terribly usable state.


In 2008 a number of project applications were restructured to provide an early spin off that was useful in itself. These spin offs are hard evidence of progress on the project and give us something concrete to test.

Support for the LV2 plugin architecture

This was the hardest project to find an early spin off for. It seemed at first as if a single large piece of work had to be done before anything would work at all. The solution was to make "Hierarchical plug-in Menus" the mid term spin off.

One of the advantages of LV2 is improved classification of plug-ins. Getting heirarchical menus to work for LADSPA too entails "Partial support for LRDF" - so that also became part of the mid term goal.

Importing (exporting?) files into Audacity via FFmpeg

Like LV2, FFmpreg also adds a big block of code. An easy to define mid-term-spin-off was: "Import working including metadata." To achieve this more than half of the 'integrating a library' has to be done, since having import working makes export rather close. However, getting it all working smoothly is likely take as much time as getting import working at all, so it's a good mid term spin off. Import is useful in itself.

New GUI Classes: wxDragGridSizer and wxDragFlexGridSizer

Here the overall project is a wxWidgets project done under the auspices of Audacity. We in Audacity need the end results and we doubt they would happen without us 'driving' as the customer. The "AUI Test program and Report" form a self contained subproject. Having a "Grid test App written." provides a very visual spin off for which it is easy to verify that it is in a good state.

On Demand/Level of Detail File Loading

The mid term spin off of "By-Track-Progress-Bar and poor man's on-demand loading" is useful in itself. It enables people who are prepared to reference audio without copying it to get fast load. Like the project above, it has the advantage of very visual confirmation that goals have been met

Sticky Labels & Multiple Selection of Labels

This project easily splits into parts. "Sticky Labels, basic functionality working. Support for some label-size-changes" can be done, and is useful, independently of having it work for all label size changes and independently of having multi-selection. The nature of this project is that we'd expect all of the features to be partially achieved in some form by the mid term, with the second half being used to refine and improve them. However, the mid term goal is vital to ensure that at least the specified features are actually ready to use at the mid term stage.