Proposal Nyquist process effects in Chains

From Audacity Wiki
Revision as of 16:53, 15 September 2011 by Stevethefiddle (talk | contribs) (Current status)
Jump to: navigation, search
Proposal pages help us get from feature requests into actual plans. This proposal page is about adding support for Nyquist effects in Chains.
Proposal pages are used on an ongoing basis by the Audacity development team and are open to edits from visitors to the wiki. They are a good way to get community feedback on a proposal.

  • Note: Proposals for Google Summer of Code projects are significantly different in structure, are submitted via Google's web app and may or may not have a corresponding proposal page.

Proposed Feature

To enable support for Nyquist Effects in Chains.

Developer/QA Backing

  • Steve
  • Edgar
  • Leland
  • Gale
  • Martyn

Motivation / Use Cases

Chains allows multiple effects to be run automatically in sequence and are the only mechanism available in Audacity for batch processing. Currently only the built-in effects shipped with Audacity (at the top of the Effect menu) can be used in Chains. The ten currently shipped Nyquist process effects can't be used in Chains.

Optional Nyquist effects added by the user further complement the built-in effects by providing functionality in Audacity that is otherwise missing. Excluding Nyquist support in Chains thus severely restricts their usefulness. It is not uncommon for Audacity users to be driven to use other software because of this restriction.

The highest rated feature request in the Automation section is "Include features dependent on selecting regions (e.g. trim, fades) (43 votes)". This becomes possible when Nyquist effects are supported by Chains.

Related Use Cases outside this proposal

  • Extend Chains support to arbitrary VST and LADSPA effect plug-ins added by the user.
  • Extend explicit Chains support to built-in items in the Audacity Generate and Analyze menus and to similar plug-ins in Nyquist and VAMP formats.
    • These are more suitable for running Chains on the current project than on files, but would be useful even if limited to the current project. Built-in Generate menu items would ideally need support for region selection.

Current status

Nyquist support in chains is fully implemented with this patch ("process" type plug-ins only): View Patch

Update: This patch is better, it uses SetXlistPath() to initialise in the appropriate place. View Patch (Martyn)

Update: Should be identical to "Nyqchains1.txt" but relative to code root. View Patch (Steve)

I have tested this on all 3 platforms and it works for me. (Martyn)

Works for me on Linux. (Steve)

To Do

Testing and committing

  • Steve: Initial testing on svn head Jul 25 2011 has been successful.
    • Retested on Linux with Audacity r11238 21st/22nd Aug 2011. Still good
  • Martyn: Testing here on 20th August 2011 HEAD also looks good
    • Martyn: I also tested the new patch on Win, Linux and Mac and it works for me. Previous one doesn't as it does not call SetXlispPath() at an appropriate time.
  • Gale: Testing with build from HEAD 1 Aug 2011 (wx 2.8.12) seemed good but shows excessive width between the columns of commands in the "Select Command" window (that window is now resizeable as at 26 Aug 2011).
    • Martyn: Is it resizable on Linux? It isn't for me, and is frustrating me trying to fix it.
      • Gale: Yes in HEAD on Ubuntu 10.10 (built with Widgets 2.8.12) the "Select Command" window is resizable on all four edges and all four corners.
    • Martyn: But column widths work for me on *nix (appropriate to content) but not win (all the same width as widest col).
  • Gale: Tested Nyqchains1 patch 13 Sep 11 on Win 7. Tested:
    • mix of Nyquist and non-Nyquist effects in chain
    • two commands in chain for the same Nyquist effect with different parameters
    • valid text-entered parameters in Nyquist effect that were outside slider range.
    Above was all OK. The only issue I really had is that running a Nyquist effect in a chain resets the parameters of the effect when run from the menu (if those were different). That's worse behaviour than with some of the built-in effects, but some do likewise, as per bug 73.


Many thanks to Edgar for providing the initial proof of concept and to Leland and Martyn for developing the current patch.