Connected Open Source

From Audacity Wiki
Revision as of 01:23, 20 April 2008 by Galeandrews (talk | contribs) (minor tidy and more links)
Jump to: navigation, search
Applications often grow so they contain a script engine, an FTP client, a text editor, a kitchen sink.... We're fighting back against that trend. We have to. We're a small team. The idea instead is connected open source - where possible, re-use existing programs.
One of the advantages of Open Source is that this should be easier than in the commercial world. This means using open standards to streamline how programs work with each other and to build bridges to other programs. The following are current or potential bridges between Audacity and other open-source programs.

Script Engine

  • We have a built-in language, Nyquist, based on XLISP. However we made a policy decision around scripting to NOT build in LUA, Perl, Javascript or other script languages. Instead, under Windows, we have experimental code that can take commands from any script language that supports pipes.

Generic GUI Code

  • Some of our code is 'framework' code that belongs back in wxWidgets. To allow for that, certain files in the Audacity project CVS are marked as under the wxWidgets license. This is a more permissive license than the GPL. As a result, we can release Audacity as GPL and at the same time, the widget-related framework code is available to the wxWidget project under its own license.

FTP Client (for Podcasting)

  • Insert text here

Text Editor

  • We don't yet have a text editor, however there has been some talk of an XML editor to edit the project files. It will be needed as Audacity develops, for similar reasons that Inkscape needs a text-based XML editor for editing its SVG files. XCE  is one good open source XML editor, or maybe we could use a variant of Notepad++ . Maybe a DOM interface will suffice for talking between the editor and Audacity.

MIDI Processing

  • We don't want to build a MIDI sequencer into Audacity. There are good open source ones out there already. We do want to build good bridges to them.

Advanced Graphics

  • For some of our plans we need translucency and anti-aliased lines. For LV2 we need to render 'SVG Icons', so will we become an SVG editor too? Most likely we'll solve it by using Cairo  as our render library, or perhaps find a higher level SVG abstraction and use that.

Open (Audio) Standards

Where possible our bridges to other applications should be using (open) standards rather than ad-hoc interfaces.

  • For sound effects we already use LADSPA
  • For analysis we already use Vamp