Difference between revisions of "Connected Open Source"

From Audacity Wiki
Jump to: navigation, search
(Slightly less ponderous text.)
(minor tidy and more links)
Line 1: Line 1:
Applications often grow so that 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.
+
{{Intro|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.}}
  
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 '''streamlining the way that programs work with each other'''.  We should be able to build '''bridges to other programs'''.  Open standards are the key to this.
 
  
 
==Script Engine==
 
==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 or Perl or Javascript or some other script language too.  Instead, under Windows, we have experimental code that can take commands from any script language that supports pipes.
+
* We have a built-in language, [[:Category:Nyquist|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 [[Scripting|experimental code]] that can take commands from any script language that supports pipes.
 +
 
 +
 
 +
==Generic GUI Code==
 +
 
 +
* Some of our code is '[[Application Framework|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)==
 
==FTP Client (for Podcasting)==
  
 
* ''Insert text here''
 
* ''Insert text here''
 +
  
 
==Text Editor==
 
==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 editor and Audacity.
+
* 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. {{external|[http://sourceforge.net/projects/xml-copy-editor/XCE XCE]}} is one good open source XML editor, or maybe we could use a variant of {{external|[http://notepad-plus.sourceforge.net/ Notepad++]}}.  Maybe a DOM interface will suffice for talking between the editor and Audacity.
 +
 
  
 
==MIDI Processing==
 
==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.
 
* 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==
 
==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.
+
* 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 {{external|[http://cairographics.org/ Cairo]}} as our render library, or perhaps find a higher level SVG abstraction and use that.
 
 
==Generic GUI Code==
 
  
* Some of our code is '[[Application Framework|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 that license.
 
  
 
==Open (Audio) Standards==
 
==Open (Audio) Standards==
  
 
Where possible our bridges to other applications should be using (open) standards rather than ad-hoc interfaces.
 
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 sound effects we already use [[Ladspa Plug-ins|LADSPA]]
* For analysis we already use VAMP
+
* For analysis we already use [[Vamp Plug-ins|Vamp]]
 +
 
 +
 
  
 
[[Category:GSoC]][[Category:For Developers]]
 
[[Category:GSoC]][[Category:For Developers]]

Revision as of 01:23, 20 April 2008

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