Difference between revisions of "Completed Proposal Import/Export Eq Curves"

From Audacity Wiki
Jump to: navigation, search
(In response to previous discussion on the forum and recent suggestions on audacity-devel)
 
 
(14 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Proposal_Header|This page is a proposal for automatically removing DC bias.  }}
+
{{Proposal_Header|This page is a proposal for importable and exportable preset curves for the Equalization effect.  }}
  
__NOTOC__
+
== Feature Implemented ==
  
== Proposed Feature ==
+
The 1.3.13 release provided a simple method to import/export curves for the Equalization effect. This allows a "library" of curves to be made available for simple download and installation by any user.
  
To provide a simple method to import/export curves for the Equalizer effect.
+
See the <span class="plainlinks">[https://wiki.audacityteam.org/w/index.php?title=Proposal_Import/Export_Eq_Curves&oldid=15111 History]</span> of this page and the [[Talk:Proposal_Import/Export_Eq_Curves|discussion tab]] for previous background and discussion.
This would allow a "library" of curves to be made available for simple download and installation by any user.
 
  
  
== Developer Backing ==
+
== Developer/QA Backing ==
  
* Martyn Shaw?
+
* Martyn Shaw
 +
* GA
  
  
== Use Cases ==
 
  
* The Equalizer effect is a versatile multi-purpose tool used by most users:
+
== Use Cases and problems addressed ==
:* The current Preset list is dominated by "vinyl equalization" curves. 
 
:* Many other curves that would be useful to many users are excluded.
 
:* What may be a useful set of curves for some users will be irrelevant to other users. A simple method to import "preset" curves will allow users to load the Equalizer effect with the curves that are most useful for them.
 
:* A simple method to export curves will allow users to easily share their custom curves with others and quickly build a library of Equalizer settings.
 
  
 +
Equalization is a popular effect but did not encourage the widest usage.
  
== Background ==
+
* The Preset list was over-dominated by "gramophone record equalization" curves to exclusion of others.  
It has occurred many times on the forum that a user has asked how to achieve a result using the Equalizer, for example how to simulate the sound of a walkie-talkie, or remove the harshness from a vocal recording. While it is simple to produce suitable Eq settings, passing that information on to the user either requires that they try to copy a screen-capture or manually edit the EQCurves.xml file. Neither of these solutions are convenient or user friendly.
+
* A simple method was needed to export curves so allowing users to share their custom curves with others and quickly build a library of Equalization settings such as "50s Radio", "soften vocals". This previously required the cumbersome solution of copying a screen-capture or manually editing the EQCurves.xml file.
 +
* Exportable curves could have "educational value" for people that are new to audio processing.
  
There has recently been a revised RIAA curve produced. The facility for easily importing curves would allow users to immediately make use of this and similar resources.
 
  
A selection of "general purpose" settings such as "bass boost/bass cut/treble boost/treble cut/telephone/loudness/rumble filter" would not only be useful to a wide
+
== Implementation ==
audience but could have "educational value" for people that are new to audio processing.
 
  
 +
* Clicking the "Save/Manage Curves..." button brings up a dialog allowing export of the current curve settings to an XML file and import of a curve in correct .xml formatting. This button replaces the previous "Save As" and "Delete" buttons. "Custom" curves are now called "unnamed".
 +
* You can also save unnamed curves to the list of curves, rename, re-order or delete individual or multiple curves.
 +
* When you change the curves list, an automatic backup is made to EQBackup.xml, so if you make a mistake you can import that backup file. You can also restore the presets to the default set, which removes any customised curves you saved.
  
== Proposal ==
+
=== Ideas rejected in current implementation ===
From a user perspective, a simple way to implement import/export of Eq curves would be the addition of 2 buttons on the Equalizer interface.
 
Clicking the "Export" button would bring up a browser window allowing the '''current curve settings''' to be exported as an XML file.
 
Clicking the "Import" button would bring up a browser window allowing a correctly formatted XML file to be imported and becoming the current '''Custom curve'''.
 
  
The name of the curve ''could'' be included in the XML file but this poses potential issues of duplicate curve names. Alternatively the curve could unnamed and simply become the "Custom" curve that the user can Save into their preset list in the normal way.
+
* Retaining the "Save As" and "Delete" buttons with new Import/Export buttons to right of these.  This would have been more intuitive in many ways but meant more clutter on the interface for anyone only wanting the installed presets. Also the "Grid" checkbox would have to be moved down a line and other ways would be needed to do things like reorder the presets list.   
 +
* Building the default curves into the application as before, to avoid users deleting or corrupting the defaults. Not building in means you can have easy developer updates to the defaults, without re-compile. Also you don't have to have the same frequency spacing for each curve. You could still have this flexibility with a built-in default if you turned the XML into a string and included it in an .h file, but it's more work.
  
'''Position of the buttons:'''
 
: There are various options but at present I would favour placing the Import/Export buttons after the Save/Delete buttons. The "Grid" checkbox could be moved lower down to the same line as "Preview" button.
 
  
 +
== Possible future improvements ==
  
== Discussion ==
+
=== Content of default curves ===
 +
 
 +
There is still some concern that a single RIAA curve in the defaults does not reflect the amount of interest in "gramophone record equalization" and will mean extra hunting around for 78 RPM curves. A possible counter argument is that advanced users might get better results by hunting around for a curve that matched the record exactly.
 +
 
 +
=== Reset original presets only ===
 +
 +
There is no direct way to reset the originally supplied presets without losing custom curves that you saved or imported.

Latest revision as of 11:46, 26 January 2019

Proposal pages help us get from feature requests into actual plans. This page is a proposal for importable and exportable preset curves for the Equalization effect.
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.

Feature Implemented

The 1.3.13 release provided a simple method to import/export curves for the Equalization effect. This allows a "library" of curves to be made available for simple download and installation by any user.

See the History of this page and the discussion tab for previous background and discussion.


Developer/QA Backing

  • Martyn Shaw
  • GA


Use Cases and problems addressed

Equalization is a popular effect but did not encourage the widest usage.

  • The Preset list was over-dominated by "gramophone record equalization" curves to exclusion of others.
  • A simple method was needed to export curves so allowing users to share their custom curves with others and quickly build a library of Equalization settings such as "50s Radio", "soften vocals". This previously required the cumbersome solution of copying a screen-capture or manually editing the EQCurves.xml file.
  • Exportable curves could have "educational value" for people that are new to audio processing.


Implementation

  • Clicking the "Save/Manage Curves..." button brings up a dialog allowing export of the current curve settings to an XML file and import of a curve in correct .xml formatting. This button replaces the previous "Save As" and "Delete" buttons. "Custom" curves are now called "unnamed".
  • You can also save unnamed curves to the list of curves, rename, re-order or delete individual or multiple curves.
  • When you change the curves list, an automatic backup is made to EQBackup.xml, so if you make a mistake you can import that backup file. You can also restore the presets to the default set, which removes any customised curves you saved.

Ideas rejected in current implementation

  • Retaining the "Save As" and "Delete" buttons with new Import/Export buttons to right of these. This would have been more intuitive in many ways but meant more clutter on the interface for anyone only wanting the installed presets. Also the "Grid" checkbox would have to be moved down a line and other ways would be needed to do things like reorder the presets list.
  • Building the default curves into the application as before, to avoid users deleting or corrupting the defaults. Not building in means you can have easy developer updates to the defaults, without re-compile. Also you don't have to have the same frequency spacing for each curve. You could still have this flexibility with a built-in default if you turned the XML into a string and included it in an .h file, but it's more work.


Possible future improvements

Content of default curves

There is still some concern that a single RIAA curve in the defaults does not reflect the amount of interest in "gramophone record equalization" and will mean extra hunting around for 78 RPM curves. A possible counter argument is that advanced users might get better results by hunting around for a curve that matched the record exactly.

Reset original presets only

There is no direct way to reset the originally supplied presets without losing custom curves that you saved or imported.