|We ask that all our Google Summer of Code projects specify early spinoffs that can be completed by half way stage. This way, even if a GSoC project runs into difficulties, the Audacity project still gets a useful result.
In 2008 a number of project applications were restructured to provide an early spinoff that was useful in itself. These spinoffs are hard evidence of progress on the project and give us something concrete to test.
Support for the LV2 plug-in architecture
This was the hardest project to find an early spinoff 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 spinoff.
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, FFmpeg also adds a big block of code. An easy to define mid-term spinoff was: "Import should be 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 spinoff. 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 the new sizers would happen without us 'driving' as the customer. The "AUI Test application and Report" form a self-contained subproject. Having a "Grid test App written" provides a very visual spinoff for which it is easy to verify that it is in a good state.
On Demand/Level of Detail File Loading
The mid term spinoff 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.