For more detailed information and the current progress situation, see User:D1-1/GSoC_Progress.
Audacity is currently focused on the next stable release, so bug-fixing and tools to aid release are priorities. I intend to:
- Fix a selection of the problems from the release checklist
- Further develop the currently experimental scripting support
- Work towards completing the 'Find Notes' feature by improving the related code
These enhancements should help the project move faster towards the next release and beyond.
As stated in the abstract, the next major goal for Audacity is a stable 1.4 release. There are many issues on the release checklist, some essential and all desirable to address. I have selected certain specific items to include in the proposal, but it is possible that some of the identified issues will have been solved before the summer, or that some of them will prove much more difficult to fix than expected - perhaps because they are hard to reproduce reliably. In these cases, I will replace the task with one agreed with mentors to be of similar importance.
Scripting support in Audacity is an area which could provide useful short-term benefits as well as exciting possibilities later on. The DLL allows Audacity to be driven by a Perl script (currently via a windows named pipe), but at the moment scripts cannot safely trigger GUI actions because wxwidgets recommends that only one thread accesses the GUI.
Although there would probably not be time to implement them during GSoC, I also have some ideas about the long-term potential of scripting Audacity. Replacing or supplementing the current named pipe system with a TCP/IP socket based method would make it straightforward to make the module work on multiple platforms, and could eventually also allow remote operation of Audacity for purposes such as simultaneous testing on several platforms or dedicated audio processing.
Track View Improvements & Find Notes
While the Find Notes view is an experimental and perhaps low priority feature, it serves as an end goal to motivate more directly useful refactoring and optimisation improvements to the code around it - in particular, the TrackArtist and TrackPanel areas. As well as resulting in cleaner and faster code, these changes would make it easier to allow showing more than one view of a wave track at the same time. One way to design the interface for selecting which views to show would be to add a small button to the track panel which toggles display of an extra section, on which a checkbox for each of the available views is shown.
The Find Notes view itself is something I am enthusiastic about working on, because it would make musical transcription (for example, of jazz solos) much easier and faster. As with the scripting module, a large portion of the work has already been done, and the little extra required to bring it to the next level of usefulness seems like a worthy investment.