LWN.net Logo

Development

Audacity gets new functionality via Google Summer of Code

By Forrest Cook
September 17, 2008
Audacity is a popular and award winning multi-track open-source and cross-platform audio editor project that is built on the wxWidgets GUI library. LWN looked at Audacity in 2006. The Audacity project announced its participation in the 2008 Google Summer of Code student code writing event on April 21, 2008. GSoC 2008 is wrapping up and the Audacity site notes the progress made this summer:

Four students participating with Audacity in Google Summer of Code successfully completed their projects, and their code will be in future versions of Audacity. The four projects were: FFmpeg support, to greatly increase the range of file formats that can be imported and exported. New GUI classes for future use in displaying audio tracks. On-demand/level-of-detail file loading, for near-instant loading and editing of uncompressed files. Sticky labels that stay with the audio through cut and paste.

The Audacity GSoC projects page details the goals and achievements made by the students, we'll examine the results.

[Audacity]

Руслан Ижбулатов worked on adding FFmpeg support to Audacity in order to allow importing and exporting of a wider variety of audio file types. From the FFmpeg site: "FFmpeg is a complete solution to record, convert and stream audio and video. It includes libavcodec, the leading audio/video codec library. FFmpeg is developed under Linux, but it can compiled under most operating systems, including Windows." Audacity natively supports the WAV AIFF, MP3, Ogg Vorbis, and FLAC formats, the FFmpeg library supports those, and adds support for the GSM WAV, MP2, M4A (AAC), AMR, WMA, and many more formats. The Project Progress page has details on how to access this new functionality. The page also includes the full list of FFmpeg supported formats. The FFmpeg library can linked and loaded dynamically at run time, this allows it to be distributed as a separate package and removes any CODEC licensing issues from Audacity.

Johannes Kulick added two new wxWidgets GUI classes and used those in Audacity to improve the display of audio tracks. His project abstract states: "Audacitys main user interface is the track panel. Its GUI architecture is written from scratch by the audacity team and as the team noticed the TrackPanel.cpp is a horrendous mess which is neither easy to maintain nor to extend. There are the wxWidgets classes wxGridSizer and wxFlexGridSizer which fit well in the requirements of the track panel. They arrange its content in a table. While in wxGridSizer all rows have the same height and all columns have the same width, in wxFlexGridSizer classes each row can have its own height and each column can have its own width. This is the way the Track panel is arranged, too, but there is one more thing which is important: the ability to drag and drop each track and drag the height of each track as well. And here is the big disadvantage of the wxWidgets classes: they lack the ability of being dragable. If there were classes which have these ability this would be a big step to get a cleaner track panel architecture for Audacity. So the project idea is that I will implement two classes wxDragGridSizer and wxDragFlexGridSizer which have the ability to do exactly these things." The Project Progress tracks the steps that were done to achieve the end results and the additional report covers extra work that was done to extend support for the wxAUI (Advanced User Interface) toolbar and window docking library.

Michael Chinen's project involved on-demand/level-of-detail file loading for near-instant loading and editing of uncompressed files. The Project Progress explains: "The QuickLoad project added near-instant loading of PCM uncompressed files without waiting for waveform calculation to complete. Playing and editing is now possible on demand at any point in the track while the waveform image is still being calculated in the background." The Description section further clarifies the new capability: "Previously, it might be necessary to wait several minutes for the file to load and be useable while the waveform computation was completed. The waveform image will draw itself automatically during computation, but users can move the point in the file from which computation takes place, thus allowing them to view and edit any point in the file instantly. " This project also allowed for further improvements to Audacity: "One of the reasons the Quickload project was approved was because the OD framework will provide a method in which other tasks, such as loading non-wav formats, processing effects, and exporting, can be made multithreaded. The current implementation of the OD framework is written generally so that this is possible, which means that future implementations of OD tasks will be done writing a minimum of code. Taking advantage of polymorphism, this kind of thing should get easier and easier as more tasks are made to support OD."

Mark Deutsch worked on adding sticky labels that stay with the audio through cut and paste operations. The Project Progress explains: "Label Track Enhancements removed a long-standing limitation that Audacity's labels did not stick to the audio track and move and edit with them." Further: "The biggest single addition from this project was the concept of linking tracks. Two or more linked tracks form a group. When an action is performed in one track, the other tracks in the group mirror that action. For example, if a group consists of one audio track and one label track, deleting part of the audio track will also delete that part of the label track. This linking is done implicitly, and depends on the layout of the tracks. A group is defined as a set of contiguous audio tracks followed by a contiguous set of label tracks." The sticky labels addition also improves the way Audacity handles insertions and other operations: "This functionality doesn't only handle deletes, though. Inserting audio, whether through pasting or using the "Generate" functions also shifts the grouped tracks correspondingly. The "Change" functions (Change Speed/Tempo/Pitch) are also supported. Slowing down a track will insert silence into linked tracks to keep all the tracks sync'd. Similarly, speeding up a track inserts silence into that track to achieve the same result."

Lars Luthman was unable to finish the fifth project, Support for the LV2 plugin architecture, but he did organize the problem space and produce some code that should be useful for future work. The Project Progress report shows what was accomplished, and the main Audacity projects document explains how it ended: "The project which did not pass still had plenty of good coding work and skill behind it, indeed believed to be fully working on the linux platform. It was communication, possibly to modify the goals shortly after mid term, that really let it down."

The 2008 GSoC projects added a number of useful new capabilities to Audacity. The wxWidgets project also benefited from the work with some enhancements that can be used by other projects. Once again, GSoC proves itself as a program that can focus in on areas of open-source applications that need improvements, and produce useful results in a short time span. GSoC is successful in bringing the guidance of experienced mentors together with the coding muscle of inspired students.

Comments (4 posted)

System Applications

Database Software

MySQL 5.1.28-rc has been released

A release candidate for the MySQL version 5.1.28 DBMS has been announced. "Bear in mind that this is still a "candidate" release, and as with any other pre-production release, caution should be taken when installing on production level systems or systems with critical data."

Full Story (comments: none)

phpMyAdmin 2.11.9.1 is released (SourceForge)

Version 2.11.9.1 of phpMyAdmin has been announced. "phpMyAdmin is a tool written in PHP intended to handle the administration of MySQL over the Web. Currently it can create and drop databases, create/drop/alter tables, delete/edit/add fields, execute any SQL statement, manage keys on fields. Welcome to this security update for phpMyAdmin 2.11.9."

Comments (none posted)

PostgreSQL Weekly News

The September 14, 2008 edition of the PostgreSQL Weekly News is online with the latest PostgreSQL DBMS articles and resources.

Full Story (comments: none)

Mail Software

The Python Replybot 5.0 announced

Version 5.0 of The Python Replybot has been announced. "This is the latest incarnation of my software to send auto-replies to email messages based on various criteria, with whitelisting and grace periods. It responds in the most RFC and de-facto standards friendly way possible, conforming to email best practices."

Full Story (comments: none)

Networking Tools

lutz: 0.6 released (SourceForge)

Version 0.6 of lutz has been announced. "lutz is a small but full-featured Portscanner for Linux. Currently it supports only SYN Scanning, but ist very stable. Scanning of multiple host in cdir/subnet/ranges combination is also supported. Today i have released Version 0.6 of lutz. I've named that release lutz-ng becouse its a complete code redesign."

Comments (none posted)

Package Management

Adding a signing key to RPM

Over at "orc_orc's sharp edge" blog, there is a good description of RPM signing keys, including how to verify keys before importing them. "The RPM package manager has long had the ability (similar to GnuPG) to receive GPG public keys into its trusted store, and then to test assertions about the presence, absence, and validity of a given signing. It can retrieve a remote key with the usual RPM network retrieval capabilities, or perhaps better to avoid MitM ('Man in the Middle') compromises across a network, from the local filesystem, or a local piece of immutable media, such as a CD which has had its md5sum verified."

Comments (10 posted)

Web Site Development

TurboGears 1.0.7 stable released

Version 1.0.7 stable of TurboGears, a rapid web development platform, has been announced. "This version brings some more bug fixes that could not but included in the last 1.0.6 release, and also fixes a bug which was introduced in the previous release when backporting some identity stuff from the 1.1 branch. All 1.0 users who want to stay in 1.0 before trying out our new 1.1 beta should upgrade to this 1.0.7 release directly without using 1.0.6."

Comments (none posted)

Desktop Applications

Animation Software

Synfig Irregular News

The September 15, 2008 edition of the Synfig Irregular News covers the latest news from the Synfig 2D vector animation studio project.

Comments (none posted)

Audio Applications

jack_capture 0.9.30 and Rollendurcmesserzeitsammler 0.0.7 released

Version 0.9.30 of jack_capture has been announced, many new features have been added. "jack_capture is a program for recording soundfiles with jack. Its default operation is to capture whatever sound is going out to your speakers into a file. (But it can do a number of other operations as well...)" Also, a new version of the Audio Rollendurchmesserzeitsammler, a conservative garbage collector, is out with some code improvements.

Full Story (comments: none)

Business Applications

Chandler Server 1.1.0 released

Version 1.1.0 of Chandler Server has been announced. "Chandler Server is a server and Ajax web UI for managing and sharing calendars, events, and tasks. It implements open data standards including CalDAV, WebDAV, Atom, and Atompub. This release contains two significant features and four bug fixes. Any user can now delete their own account and data by using the settings dialog. Interoperability with some CalDAV implementations including iCal 3 should be improved by support for the CTAG draft standard."

Full Story (comments: none)

opentaps 1.0.2 released (SourceForge)

Version 1.0.2 of opentaps has been announced. "This version contains a number of bug fixes compared to opentaps 1.0.1 and is recommended both as an incremental upgrade for users of opentaps 1.0.1 and for new deployments. opentaps is an open source ERP and CRM system which includes a full suite of business applications, mobility integration, and business intelligence."

Comments (none posted)

Desktop Environments

GNOME 2.24.0 Release Candidate (2.23.92) released

Version 2.23.92 of the GNOME desktop has been announced. "It's the final countdown. Tadada da, tadada da da, tadada da, tadadadadada! Hrm. I might be missing a da or two. You're lucky that you can't hear me sing -- you'd be quite scared ;-) So here we are, with the release candidate for 2.24.0. It's this time of the development cycle, where we all look at what we achieved and start crying because it's so beautiful!"

Full Story (comments: none)

GARNOME 2.23.92 announced

Version 2.23.92 of GARNOME, the bleeding edge GNOME distribution, has been announced. "We are pleased to announce the release of GARNOME 2.23.92 Desktop and Developer Platform. This is the GNOME 2.24 *cough* Release Candidate *cough*. Yes, indeed. This release is for everyone! Or, well, close to that. Build it, test it. And watch out for SVN."

Full Story (comments: none)

GNOME Software Announcements

The following new GNOME software has been announced this week: You can find more new GNOME software releases at gnomefiles.org.

Comments (none posted)

KDE Commit-Digest (KDE.News)

The September 7, 2008 edition of the KDE Commit-Digest has been announced. The content summary says: "A KPhotoAlbum developer sprint leads to various developments, including a new viewer and support for image "stacks". Initial lyrics support and a new "Albums" applet in Amarok 2.0. Support for export to OpenDocument text and HTML formats for certain file types in Okular. More functionality in the Plasma "Engine Explorer", an application for data engine development..."

Comments (none posted)

KDE Software Announcements

The following new KDE software has been announced this week: You can find more new KDE software releases at kde-apps.org.

Comments (none posted)

Xfce 4.6 alpha released

Version 4.6 alpha of the Xfce lightweight desktop environment has been announced. "After about 18 months of development, we are pleased to announce the release of Xfce 4.6 ALPHA, codename 'Pinkie'. Xfce 4.6 is going to be the next major release of the Xfce desktop environment. The previous release was 4.4 with the last bugfix release being 4.4.2 released in December 2007."

Comments (none posted)

DRI2 Protocol Spec Draft v2 released

The DRI2 Protocol Spec Draft v2 has been announced. "I've added some discussion points with ISSUE: in the spec. The new stuff here is the XChangeWindowAttributes inspired DRI2CopyRegion, that'll let us better extend it in the future. I clarified and simplified the auth stuff, dropping the group concept. Also I'm still not convinced that the swap pipe stuff can't just be an xorg.conf option, or maybe an randr property on the display (preferred swap pipe or whatever). And most of all, I'd like to keep the first version simple, considering that we have a lot of options for extending this as we go."

Full Story (comments: none)

Xorg Software Announcements

The following new Xorg software has been announced this week: More information can be found on the X.Org Foundation wiki.

Comments (none posted)

Electronics

CQRLOG: 0.5.1 (SourceForge)

Version 0.5.1 of CQRLOG has been announced. The software is: "An advanced ham radio logger based on Firebird database. Provides radio control based on hamlib libraries (currently support of 140+ radio types and models), DX cluster connection, QRZ callbook (web version), a grayliner, ON6DP QSL manager database etc. This is bugfix release, no new features added. ADIF import/export fixed."

Comments (none posted)

Financial Applications

boox: version 0.4 beta released (SourceForge)

Version 0.4 beta of boox has been announced. "boox is a very simple Java API for double-entry book-keeping. Data is stored in a SQL database - boox has been developed and tested with postgresql, but should work with any other SQL database for which a jdbc driver is available."

Comments (none posted)

Games

Ember 0.5.4 released

The WorldForge virtual world project has announced the release of Ember 0.5.4. "Ember is a 3d client for the WorldForge project. It uses the Ogre 3d graphics library for presentation and CEGUI for its GUI system. This release incorporates the results from the three Google Summer of Code projects. The entity creator is greatly expanded, with scripting functionality, there’s now proper support for terrain modifiers and there’s a working sound system in place."

Comments (none posted)

Multimedia

Elisa Media Center 0.5.10 released

Version 0.5.10 of Elisa Media Center has been announced. "A very important and long awaited improvement of this release is the rewrite from scratch of the video, audio and slideshow players user interface. The team is proud to present a brand new look with a strong focus on aesthetics and extensibility; it is fully pluggable and new controls can easily be added via plugins. A fair number of bugs were also fixed during this cycle (14 bugs)."

Full Story (comments: none)

Music Applications

Patchage 0.4.2 announced

Version 0.4.2 of Patchage has been announced. "Patchage is a graphical modular patch bay for audio/MIDI systems based on JACK, LASH, and ALSA. This release adds: - Support for the new LASH D-BUS interface (currently LASH SVN only) - Improved LASH GUI (from Nedko Arnaudov's ladi-patchage branch) - Quick/easy connection of groups of ports in one action (select all the ports and press enter) Also released in parallel are the two libraries Patchage depends on, raul 0.5.1 and flowcanvas 0.5.1."

Full Story (comments: none)

Renoise 2.0 Beta 1 is available

Version 2.0 Beta 1 of Renoise has been announced. "Renoise 2.0 provides unprecedented granular control over audio, now with a range of new features targeting traditional recording artists and composers. A unique approach when compared with mainstream music sequencers, Renoise's streamlined workflow delivers professional results on Windows, Macintosh, or Linux. Why spend hours cobbling beats together with a mouse when you can do it in seconds with a few keystrokes?"

Full Story (comments: none)

Video Applications

Dirac 1.0.0 released.

The Dirac video codec has released version 1.0. Dirac is a free software, royalty-free codec developed by the BBC. "The initial implementation of Dirac at resulted in a research implementation which is referred to as the Dirac codebase. It is now called dirac-research. It is a reference implementation and also a codebase for future algorithmic developments. Dirac 1.0.0 is the release of this codebase." Click below for the full announcement.

Full Story (comments: 12)

Miscellaneous

The GNU PDF project's new blog

The first edition of the GNU PDF developer blog has been launched. "This is the first weekly report about the development of the GNU PDF project. We plan to release this kind of report so that people can be aware of the progress and on-goings of the project."

Comments (none posted)

Languages and Tools

C

Building the Debian archive with GCC 4.4

Martin Michlmayr reports on his efforts to build roughly 8000 packages from the Debian archive using GCC 4.4. His intent is to find any problems in GCC 4.4 before the release. "In total, I filed 28 new bugs and ran into 7 known issues. 64% of the bugs I filed have already been fixed and many of those that are still open have already received some attention. I'd like to thank the GCC community for such an outstanding job dealing with incoming bug reports and fixing compiler regressions." Click below for the full report.

Full Story (comments: 11)

GCC adds support for Picochip

The GCC project has announced support for the Picochip platform. "Picochip is a 16-bit processor. A typical picoChip contains over 250 small cores, each with small amounts of memory. There are three processor variants (STAN, MEM and CTRL) with different instruction sets and memory configurations and they can be chosen using the -mae option. This port is intended to be a "C" only port."

Comments (none posted)

Caml

Caml Weekly News

The September 9-16, 2008 edition of the Caml Weekly News is out with new articles about the Caml language.

Full Story (comments: none)

Java

OpenSwing: 1.7.4 released (SourceForge)

Version 1.7.4 of OpenSwing has been announced, it includes new capabilities and bug fixes. "OpenSwing is a component library that provides a rich set of advanced graphics components and a framework for developing java applications based on Swing front-end. It can be applied both to rich client applications and Rich Internet Applications."

Comments (none posted)

Python

Jython 2.5 Alpha3 released

Version 2.5 Alpha3 of Jython, a Java implementation of Python, has been announced. "Jython 2.5 Alpha3 fixes a bug that caused installation problems for many Windows users, so Oti Humbel and Leo Soto came to the rescue with an assist by Geoffrey French. Oti also fixed standalone mode while he was there."

Full Story (comments: none)

Python 2.6rc1 released

The first release candidate for Python 2.6 is out. The final release is still on track for October 1st. "You might notice that unlike earlier releases, we are /not/ releasing Python 3.0rc1 at this time. It was decided that 3.0 still needs time to resolve open issues and that we would not hold up the 2.6 release for this. We feel that Python 2.6 is nearly ready for its final release." Click below for the full release announcement.

Full Story (comments: none)

Python-URL! - weekly Python news and links

The September 16, 2008 edition of the Python-URL! is online with a new collection of Python article links.

Full Story (comments: none)

Tcl/Tk

Tcl-URL! - weekly Tcl news and links

The September 16, 2008 edition of the Tcl-URL! is online with new Tcl/Tk articles and resources.

Full Story (comments: none)

Version Control

GIT 1.6.0.2 released

Version 1.6.0.2 of the GIT distributed version control system has been announced. Changes include numerous bug fixes and documentation updates.

Full Story (comments: none)

Miscellaneous

OpenOpt 0.19 announced

Version 0.19 of OpenOpt has been announced, it includes new capabilities and bug fixes. The description states: "OpenOpt v 0.19, free (license: BSD) optimization framework (written in Python language) with connections to lots of solvers (some are C- or Fortran-written) is released."

Full Story (comments: none)

Page editor: Forrest Cook
Next page: Linux in the news>>

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds