Difference between revisions of "Audacity-Extra"

From Audacity Wiki
Jump to: navigation, search
(Link to CLAM talk page.)
(Slight re-ordering to use an Intro, plus some links; added to Category:Plug-ins Category:For Developers)
Line 1: Line 1:
==What is 'Audacity-Extra'==
+
{{Intro|1={{external|[http://sourceforge.net/projects/audacity-extra/ Audacity-Extra]}} is a project on Sourceforge.  It has code for Audacity that is not yet "ready for prime time". Techniques and tricks used in it can be "mined" for later use in Audacity.  Audacity-extra is where the first modular Windows build of Audacity was developed.|2=There is an {{external|[http://audacity-extra.wiki.sourceforge.net/ Audacity-Extra Wiki]}}, but the mailing list and forums are not used. Anyone interested in contributing to this project are welcome to post to our {{external|[http://lists.sourceforge.net/lists/listinfo/audacity-devel audacity-devel mailing list]}} (or on the [[Talk:Audacity-Extra|discussion tab]]) to ask questions.}}
  
Audacity-Extra is a project on sourceforge.  It has code for Audacity that is not yet 'ready for prime time'.    Techniques and tricks used in it can be 'mined' for later use in Audacity.  Audacity-extra is where the first modular windows build of Audacity was developed.
 
  
As of 20th April 2008 the sourceforge description of Audacity-Extra is given as:
+
==What does it Contain?==
  
Audacity-extra provides diverse GUI plug ins to customize the open source  
+
From the Sourceforge description of Audacity-Extra as at 20 April 2008, "Audacity-extra provides diverse GUI plug-ins to customize the open source sound editor Audacity. It includes a vowel-sound target-practice display for language learners and an analog waveform data logger for embedded systems." Rather than use CVS, Audacity-Extra exists as source tarballs.
sound editor Audacity. It includes a vowel-sound target-practice display  
 
for language learners and an analog waveform data logger for embedded systems.
 
  
Rather than use CVS, Audacity-Extra exists as source tarballs.  There is a [http://audacity-extra.wiki.sourceforge.net/ wiki], but the mailing list and forums are not used.  Anyone interested in contributing to it can post to Audacity devel (or here) to ask questions.
+
'''Detailed contents:'''
 
 
==What does it Contain?==
 
  
 
* First modular build of Audacity.
 
* First modular build of Audacity.
 
** Allows GUI code to exist in a DLL sharing the same copy of wxWidgets and other libraries.
 
** Allows GUI code to exist in a DLL sharing the same copy of wxWidgets and other libraries.
** DLL code can now have GUI elements, i.e make wxWidgets calls.  Can also manipulate Audacity GUI elements, e.g. Wave controls.
+
** DLL code can now have GUI elements, that is, make wxWidgets calls.  Can also manipulate Audacity GUI elements, such as Wave controls.
** (Some) framework moved into a lib-widget-extra dll.  That library includes the ShuttleGui class.  Everything in it is licensed wxWidgets, which means it can migrate to wxWidgets in time.  wxWidgets license is more permissive than GPL, so everything that we release wxWidgets licensed is automatically also available GPL licensed.
+
** (Some) framework moved into a lib-widget-extra dll.  That library includes the ShuttleGui class.  Everything in it is licensed under wxWidgets, which means it can migrate to wxWidgets in time.  The wxWidgets license is more permissive than GPL, so everything that we release as wxWidgets-licensed is automatically also available as GPL-licensed.
** A registration scheme for registering and taking up resources.  For example modules can add new menu items and new pages.
+
** A registration scheme for registering and taking up resources.  For example, modules can add new menu items and new pages.
 
* Our first experiments with (external) scripting.
 
* Our first experiments with (external) scripting.
 
** Windows only.
 
** Windows only.
** [http://audacity-extra.wiki.sourceforge.net/mod-script-pipe Code on the wiki] for the Perl side of this, using a named pipe.  Example shows 'Amplify' and 'Echo' being used.
+
** {{external|[http://audacity-extra.wiki.sourceforge.net/mod-script-pipe Code on the wiki]}} for the Perl side of this, using a named pipe.  Example shows 'Amplify' and 'Echo' being used.
* Audacity Graphs that exist as wxControls, and don't live in a TrackPanel (Very preliminary!)
+
* Audacity Graphs that exist as wxControls, and don't live in a TrackPanel (very preliminary!)
 
** A modified sizer that proves cell size sizer dragging is possible.  It works OK on a simple dialog with a single column and is, shall we say, 'somewhat broken' when used ''within'' a wxScroller.  This is apparently due to some bugs-or-omissions in wxWidgets sizing mechanism.  It is vertical resizing only.  No cell rearrangement allowed.  No notification or veto functions attempted.  See also the modified BoxSizer in wxRL and the 2008 wxDragGridSizer GSoC proposal.
 
** A modified sizer that proves cell size sizer dragging is possible.  It works OK on a simple dialog with a single column and is, shall we say, 'somewhat broken' when used ''within'' a wxScroller.  This is apparently due to some bugs-or-omissions in wxWidgets sizing mechanism.  It is vertical resizing only.  No cell rearrangement allowed.  No notification or veto functions attempted.  See also the modified BoxSizer in wxRL and the 2008 wxDragGridSizer GSoC proposal.
 
** Slider for use alongside a graph to set threshold.  Thresholds are shown on the graph as horizontal lines.
 
** Slider for use alongside a graph to set threshold.  Thresholds are shown on the graph as horizontal lines.
Line 32: Line 27:
 
** Self-Test feature that allows one Audacity instance to 'drive' another's data over serial comms (a good test of the serial link).
 
** Self-Test feature that allows one Audacity instance to 'drive' another's data over serial comms (a good test of the serial link).
  
* Screenshots
+
* {{external|1=[http://sourceforge.net/project/screenshots.php?group_id=191299 Screenshots]}}
 
** Screenshot of Audacity with Greg Hardesty's (dark field) theme enabled.
 
** Screenshot of Audacity with Greg Hardesty's (dark field) theme enabled.
 
** Screenshot of the 'hijacked' Audacity in action.
 
** Screenshot of the 'hijacked' Audacity in action.
** Screenshot of a Vowel Quadrilateral panel for Audacity.  See "[http://clam.iua.upf.edu/wikis/clam/index.php/SoC_ideas Educational Vowel Synthesiser]" GSoC idea and "[http://clam.iua.upf.edu/wikis/clam/index.php/Talk:SoC_ideas language learners]" at CLAM.  The display has been improved since this screenshot to use translucency and anti-aliased lines using anti-grain.  Also some preliminary discussion with Inkscape about migrating the Voronoi code to their Libgeom and using SVG.   
+
** Screenshot of a Vowel Quadrilateral panel for Audacity.  See the {{external|[http://clam.iua.upf.edu/wikis/clam/index.php/SoC_ideas#Educational_vowel_synthesizer Educational Vowel Synthesiser]}} GSoC idea and {{external|[http://clam.iua.upf.edu/wikis/clam/index.php/Talk:SoC_ideas Language Learning Tools]}} at CLAM.  The display has been improved since this screenshot to use translucency and anti-aliased lines using anti-grain.  There's also been some preliminary discussion with Inkscape about migrating the Voronoi code to their Libgeom and using SVG.   
  
* Future
+
* The Future...
 
** The Audacity simplifier .po file (the one that reduces the menu items shown) may get added to audacity-extra in time.
 
** The Audacity simplifier .po file (the one that reduces the menu items shown) may get added to audacity-extra in time.
 
** Alternative themes may be posted at audacity-extra whilst they (and the theming feature) are still under development.
 
** Alternative themes may be posted at audacity-extra whilst they (and the theming feature) are still under development.
 
** Some work on wxFormbuilder to enable easy creation of Audacity themes may be added to audacity-extra, but at the moment it's in too ropey a state even for that.
 
** Some work on wxFormbuilder to enable easy creation of Audacity themes may be added to audacity-extra, but at the moment it's in too ropey a state even for that.
 
** Experiments with new build system ''might'' start in Audacity-extra (safer).
 
** Experiments with new build system ''might'' start in Audacity-extra (safer).
 +
 +
 +
==Download==
 +
 +
There is a first release of 
 +
{{external|1=[http://downloads.sourceforge.net/audacity-extra/plugin-audacity-00-00-01.zip?modtime=1181932292&big_mirror=0  plugin-audacity]}} available for download. This is a DLL-based build of Audacity which accepts plug-ins. It contains mod_script_pipe, mod_actel_fusion and lib_widget_extra (required for using plugin-audacity).
 +
  
 
==Modular Plans==
 
==Modular Plans==
  
We want modules for all kinds of reasons.  One intention is that in the preferences panel you can choose which modules to load and enable.  You'll be able to have special pages for Audio comparison, or for an audio clips organiser in addition to the main editor page.
+
We want modules for all kinds of reasons.  One intention is that in the preferences panel you can choose which modules to load and enable.  You'll be able to have special pages for audio comparison, or for an audio clips organiser in addition to the main editor page.
  
 
* Security: Dangerous features like FTP bridge can be left out entirely.  
 
* Security: Dangerous features like FTP bridge can be left out entirely.  
 
* Size: Portable Audacity need only ship the modules it wants.
 
* Size: Portable Audacity need only ship the modules it wants.
* Releases: Code that is 'not ready' can be dropped more easily.  People who want to use bleeding edge code can choose just the relevant modules.
+
* Releases: Code that is 'not ready' can be dropped more easily.  People who want to use bleeding-edge code can choose just the relevant modules.
* ReUse: Some of the modules, such as lib-widget-extra and the scripting module, could be used unchanged in other wxWidgets projects.  Win-win for everyone.  If other groups use our code, we benefit form improvements that they make.
+
* Re-use: Some of the modules, such as lib-widget-extra and the scripting module, could be used unchanged in other wxWidgets projects.  Win-win for everyone.  If other groups use our code, we benefit form improvements that they make.
  
  
 
==Why not a branch within Audacity Project?==
 
==Why not a branch within Audacity Project?==
  
Audacity-extra is in effect a branch within Audacity already.  This way of doing things, i.e. using a separate project, keeps the baroque code under development out of the way of main-development.  We're not using CVS.  For these features it's too early for CVS.  Posting tarballs of audacity-extra stuff on audacity downloads page would surely confuse our very large number of existing users.
+
Audacity-extra is in effect a branch within Audacity already.  This way of doing things, using a separate project, keeps the baroque code under development out of the way of main-development.  We're not using CVS.  For these features it's too early for CVS.  Posting tarballs of audacity-extra stuff on the Audacity downloads page would surely confuse our very large number of existing users.
 +
 
 +
 
 +
[[Category:Plug-ins]] [[Category:For Developers]]

Revision as of 19:53, 20 April 2008

Audacity-Extra  is a project on Sourceforge. It has code for Audacity that is not yet "ready for prime time". Techniques and tricks used in it can be "mined" for later use in Audacity. Audacity-extra is where the first modular Windows build of Audacity was developed.
There is an Audacity-Extra Wiki , but the mailing list and forums are not used. Anyone interested in contributing to this project are welcome to post to our audacity-devel mailing list  (or on the discussion tab) to ask questions.


What does it Contain?

From the Sourceforge description of Audacity-Extra as at 20 April 2008, "Audacity-extra provides diverse GUI plug-ins to customize the open source sound editor Audacity. It includes a vowel-sound target-practice display for language learners and an analog waveform data logger for embedded systems." Rather than use CVS, Audacity-Extra exists as source tarballs.

Detailed contents:

  • First modular build of Audacity.
    • Allows GUI code to exist in a DLL sharing the same copy of wxWidgets and other libraries.
    • DLL code can now have GUI elements, that is, make wxWidgets calls. Can also manipulate Audacity GUI elements, such as Wave controls.
    • (Some) framework moved into a lib-widget-extra dll. That library includes the ShuttleGui class. Everything in it is licensed under wxWidgets, which means it can migrate to wxWidgets in time. The wxWidgets license is more permissive than GPL, so everything that we release as wxWidgets-licensed is automatically also available as GPL-licensed.
    • A registration scheme for registering and taking up resources. For example, modules can add new menu items and new pages.
  • Our first experiments with (external) scripting.
    • Windows only.
    • Code on the wiki  for the Perl side of this, using a named pipe. Example shows 'Amplify' and 'Echo' being used.
  • Audacity Graphs that exist as wxControls, and don't live in a TrackPanel (very preliminary!)
    • A modified sizer that proves cell size sizer dragging is possible. It works OK on a simple dialog with a single column and is, shall we say, 'somewhat broken' when used within a wxScroller. This is apparently due to some bugs-or-omissions in wxWidgets sizing mechanism. It is vertical resizing only. No cell rearrangement allowed. No notification or veto functions attempted. See also the modified BoxSizer in wxRL and the 2008 wxDragGridSizer GSoC proposal.
    • Slider for use alongside a graph to set threshold. Thresholds are shown on the graph as horizontal lines.
    • Sliders with more than one 'pip' on them.
  • Audacity 'Hijacker' plug-in that repurposes Audacity to use as a data logger.
    • wxSerial communications used to get data values - used here in place of portaudio.
    • Under/over threshold indicators on data values.
    • Partial implementation of IPMI protocol, encode/decode.
    • Display of 'Event Log' data.
    • Self-Test feature that allows one Audacity instance to 'drive' another's data over serial comms (a good test of the serial link).
  • Screenshots 
    • Screenshot of Audacity with Greg Hardesty's (dark field) theme enabled.
    • Screenshot of the 'hijacked' Audacity in action.
    • Screenshot of a Vowel Quadrilateral panel for Audacity. See the Educational Vowel Synthesiser  GSoC idea and Language Learning Tools  at CLAM. The display has been improved since this screenshot to use translucency and anti-aliased lines using anti-grain. There's also been some preliminary discussion with Inkscape about migrating the Voronoi code to their Libgeom and using SVG.
  • The Future...
    • The Audacity simplifier .po file (the one that reduces the menu items shown) may get added to audacity-extra in time.
    • Alternative themes may be posted at audacity-extra whilst they (and the theming feature) are still under development.
    • Some work on wxFormbuilder to enable easy creation of Audacity themes may be added to audacity-extra, but at the moment it's in too ropey a state even for that.
    • Experiments with new build system might start in Audacity-extra (safer).


Download

There is a first release of plugin-audacity  available for download. This is a DLL-based build of Audacity which accepts plug-ins. It contains mod_script_pipe, mod_actel_fusion and lib_widget_extra (required for using plugin-audacity).


Modular Plans

We want modules for all kinds of reasons. One intention is that in the preferences panel you can choose which modules to load and enable. You'll be able to have special pages for audio comparison, or for an audio clips organiser in addition to the main editor page.

  • Security: Dangerous features like FTP bridge can be left out entirely.
  • Size: Portable Audacity need only ship the modules it wants.
  • Releases: Code that is 'not ready' can be dropped more easily. People who want to use bleeding-edge code can choose just the relevant modules.
  • Re-use: Some of the modules, such as lib-widget-extra and the scripting module, could be used unchanged in other wxWidgets projects. Win-win for everyone. If other groups use our code, we benefit form improvements that they make.


Why not a branch within Audacity Project?

Audacity-extra is in effect a branch within Audacity already. This way of doing things, using a separate project, keeps the baroque code under development out of the way of main-development. We're not using CVS. For these features it's too early for CVS. Posting tarballs of audacity-extra stuff on the Audacity downloads page would surely confuse our very large number of existing users.