Macros discussion page

From Audacity Wiki
Jump to: navigation, search
This page is intended for gathering together issues and discussions regarding the transition to Macros from Chains for 2.3.0

James' Notes

  • ToDo.png Make Macros on Files a proper batch process - see P1 Bug #1856
  • ToDo.png Create / Add some more built in Macros in time for the May 12th Preview version.
  • ToDo.png Implement Import and Export (can be after the Preview)
  • ToDo.png (Paul?) Drag-and-drop too, for Import.
  • ToDo.png Edit button to work for commands with no parameters, so we can see their script id and type.
  • ToDo.png (Aspirational) Find-command entry box in Select Command dialog.
  • Done.png Custom names for All None etc.
  • ToDo.png Persistent settings for export-as
  • Done.png Fix 'second invocation' bug.
  • Done.png Nicer sliders in SetTrack (finer gradations for Pan, Log scale for Gain)
    • Bill 24Mar2018: I still think this can be better. Can we make these similar to the dialogs that appear when you double-click the gain and pan sliders in the track panel?
  • Done.png Fix flags so that SplitAtLabels available even if not available at start of macro.
  • ToDo.png Label select checkbox to select the time interval as well as selecting the label itself.

Enhancement Requests

  • ToDo.png More flexibility on export formats.
    • Export as M4A(AAC) and AIFF
  • ToDo.png More flexibility on export file names
    • Prompt for output directory
    • Prefix and suffix control for file names.
  • ToDo.png Avoid file overwrite on apply-to-project or apply-to-files.
    • OPTION: Prompt with OK/NO
    • OPTION: Automatically include a number.
  • ToDo.png Ability to Stop/Cancel Macro early.
  • ToDo.png Better Undo (possibly current behaviour should be a bugzilla bug)
  • ToDo.png Warn if no export step in an export-files chain. (Or, presumably, a Save Project)
  • ToDo.png Message to gain a pause option, so can be used as breakpoint.
    • The 'real' work here is making messages appear during processing, not at the end, as they are buffered up for display.
  • ToDo.png In 'Select Command' change 'OK' to 'Insert' and 'Cancel' to 'Close' so that we can keep inserting more commands without closing the dialog.

Bugs

Bug 1856 Applying Macros to Files is no longer a batch process

When applying Macros to Files the process is no longer a proper batch-process. Instead the user is presented with a series of dialog interrupts requiring user action

Bug 1859 Macros on files - Save Project causes overwrites. thus loses data

Using "Save Project" in a Macro when applied to files causes overwriting of the projects as it progresses with the final result is that there is just one project and that is the last file processed.

Bug (untracked) - Save Project2

Macro Command "Save Project2" fails with "Directory Not Found" for any file name or path+filename. Totally unusable. In the case the that project is an existing project it should save the newly named file to that directory. If it is a newly recorded file then save to the default directory unless a path is given before the file name.

Bug (untracked) - Nested "cleaned" folders

Not only do we get the regression of interrupting the automated process with requests for user input - we also get the bug of the nested "cleaned" folders. This bug is not yet logged on Bugzilla pending discussions on desired behaviors.

Bug 1854 - Un-warned export file overwrite danger in 2.2.2 Chains

Apply Chain can silently overwrite an existing file of the same name in the "cleaned" folder - and this is done with no warning to the user (as one would normally expect with potential file over-writes.

The current behavior of 2.3.0 alpha Macros side-steps this issue with its user interrupts for file locations - and goes on to issue an overwrite warning if the user does not change the filename - but the overwrite is allowable of course. The current 2.3.0 is probably a regression (discussed elsewhere) - hence this bug stands.

Bug (untracked) - Mac: typing a command name does not cause the command-list scroller to display the command

Bill: In the “Select Command” dialog (which is invoked by the “Insert” button in the Manage Macros dialog), it is possible to type some characters and have a command show up in the “Command” text display box. It would be nice if the scroller would update to show that command in the list.

For example, if I’m looking for the “Mix and Render” command, I could type “m”, and the scroller would update to show the “MP3 Conversion” command, highlighted, in the (middle of?) the dialog. I could then see the “Mix and Render” command and click on it, or see to arrow down to it, or repeatedly type “m” to move to the next command starting with “m” (same as arrow down, except “m” goes back to “MP3 Conversion” after reaching “Move to Previous Label”).

Currently, typing “m” followed by down-arrow (or up-arrow) updates the scroller, but typing “m” twice does not.

  • James (talk) Mac only, it seems. Will have a look when I am on that platform.



Bug list

IDPStatusSummary (19 tasks) ID
1859P1RESOLVEDMacros on files - Save Project causes overwrites. thus loses data1859
1854P1RESOLVEDUn-warned export file overwrite danger in 2.2.2 Chains and 2.3.0 Macros1854
1856P1RESOLVEDApplying Macros to Files is no longer a batch process1856
1861P2RESOLVEDSplitLabels command fails in Macros1861
548P3NEWEnh: Add export format options and export sample rate to Chain parameters548
1709P3NEWIdentically-named effects cannot be differentiated in the Select Command dialog in chain editing1709
549P3NEWEnh: Add missing export formats to Chains549
876P3REOPENEDWindows: Chains: LV2 effects only save default parameters.876
901P3REOPENEDEnh: Chains: Noise Reduction and Noise Removal do not store parameters in a Chain.901
878P3RESOLVEDBuilt in Generators don't work correctly in Chains878
1855P3RESOLVEDAccelerators not removed from names in translation1855
1742P4NEWBuilt-in chain name "MP3 Conversion" does not translate1742
1237P4NEWChains: Inconsistent per-platform behaviour cancelling in-progress Chain applied to project.1237
1807P4NEWNyquist Prompt listed, but not fully supported by Chains1807
1238P4RESOLVEDChains: Non-interactive "Apply Chain" window obscured.1238
1793P4RESOLVEDAutomatic zoom to fit of imported audio does not work in Chains1793
526P4RESOLVEDWindows: Chains: Select Command sets width of all columns by width of longest command526
1745P4RESOLVEDNames of commands in Chains do not translate, and the English uses ugly CamelCase1745
628P5NEWChains: Apply Chain/progress bars dialogs are modal, so cannot minimise Audacity628

Regression testing Macros versus Chains

As outlined in recent email on Quality - germane points to be summarized here.

Macros and Chains behave differently on Export

We need to decide what is desired-behavior on Export from Macros.

This has been discussed on email by QA. Consensus here seems to be:

Applying Macros to project

Here the consensus appears to be that it is OK to halt the run of the Macro to prompt for user input, for say output folder location.

  • Bill 23Mar2018: For apply to project it doesn't matter if a file-save dialog appears before or during the macro, and similarly for metadata and overwrite warnings. I believe that other dialogs default to the user Documents folder, so to be consistent I'd do that with macros as well, but also remember the user's previous choice.
On Mac yes - but on Windows the default is ... Documents\Audacity
  • Steve and Peter agree

Applying Macros to files

Consensus here is that this should be an automated process with no need for further user input for things like file/folder locations. Basically pure "Batch Processing"

  • Bill 23Mar2018: I'm proposing a dialog the appears before the macro is run that allows the user to specify the output folder (and optionally suffix / prefix for output file name). This would not "interrupt" the macro when running. I was thinking of the apply to files case only.
    • Steve and Peter agree
Bill wrote:
  1. The users clicks Apply Macro to Files
  2. A “Save processed files to” dialog pops up - this could offer a default save location, such as Documents/Audacity/Macro Output. Or it could default to the previously-used output location (as the Export Multiple dialog does)
  3. The user fills out the dialog and clicks “OK”
  4. The macro now runs without further user “interruption”, saving/exporting the processed files to the user’s desired location.
But note that if you have not turned off the warning on importing uncompressed files - you will get the warning as a user interrupt when you for example run MP3 conversion on a WAV file. Can we assume that smart users will have turned this off anyway - or do we need to make Macros working in batch on files just bypass this message?
  • Bill wrote: Macros should ignore this setting. One is simply opening/importing the uncompressed file in order to process it then export it, then close the project (without saving changes) and move on to the next.
Bulb icon Peter 24Mar17: I have created a P1 bug (severe regression) for this based on our discussions and the consensus achieved: Bug #1856


Macros processing files should ignore setting for warning on importing uncompressed files

Since Applying Macros on files is intended to be a batch process without user interrupts (except maybe notifications of file overwrites) - this should ignore whatever setting the user has in Warnings prefs and not pop the warning message and just process the file(s).

As Bill wrote for the note above: "One is simply opening/importing the uncompressed file in order to process it then export it, then close the project (without saving changes) and move on to the next."


Macros processing files should ignore setting for metadata editor

Since Applying Macros on files is intended to be a batch process without user interrupts (except maybe notifications of file overwrites) - this should ignore whatever setting the user has in "Show Metadata Tags editor before export" in Import/Export preferences - and just process the file(s).


Wording - "Cleaned" versus "cleaned" folder name

Peter (and Connie) would prefer the "cleaned" folder to be capitalized - QA consensus would prefer it be renamed to "Macro Output" or "Macros Output" - as that gives a clearer intention of purpose.

Bill would prefer the user to be prompted for the export folder. See above Parameter setting for "Export as ..." in Macros

See P1 Bug #1856

Renaming macros

Bill: Given that a macro can be called from another macro, is it not dangerous to allow macros to be renamed?

  • James (talk) No, not dangerous.
  • Bill 23Mar2018: Thanks, James. Yes, not "dangerous" but the "calling" macro will show an error when run, will it not?
  • Currently no error is reported and the macro continues, just skipping that step. One can argue that macros/chains should report more errors than they currently do, and that they should stop on errors like this one. Whether we do or not though, renaming the macro is OK.

Should a macro be able to call itself, and what does it mean if it does?

Bill: It is possible to insert a step that is the macro you are editing. For example, edit the supplied “Fade Ends” macro by inserting the “Fade Ends” command at the end of the macro. It seems the macro prevents this infinite loop (it does “Fade Ends” twice), but perhaps insertion of the step should be disallowed.

  • James (talk) Yes, it is intended that a macro can call itself. If we barred it, we would also have to bar MacroA calls MacroB calls MacroA. Also MacroA calls NyquistB calls MacroA. It is both easy and clear to have a recursion limit instead.
  • Bill 23Mar2018: Thanks for the clarification. Yes, the recursion limit makes sense. I'll remember to document this.

Buttons to apply to project and files

David: The labels on the buttons are Project and Files... . Screen readers only read the button label, and so don't read the "Apply Macro to" text. Without changing some wxWidgets code, the accessibility name of a button can't be changed to be different from its label. I suggest that the button labels are changed to "Apply to project", and "Apply to Files...", and the static text is removed. I also think this is more readable for sighted users.

  • James (talk) Is this Bug 577 biting us again? If the static text can't be read, I would advocate patching wxWidgets to improve the button accessibility and try to get that pushed upstream. I'm not keen on long button text.
  • David. No. By default, the accessibility name of a button is just the label on the button. The problem is that even if for each button SetAccessible() is called to set a WindowAccessible, and then SetName is called to set the desired accessibility name, NVDA currently will still read the label. Robert is trying to get NVDA to fix this.

Set Track Audio command

Bill 23Mar2018: The pan and gain sliders in this dialog are strange.

  • First, the number in the middle of the slider scale (pan and gain) is not part of the scale, but the slider setting. Could we have a slider and a text box?
  • Two, the pan slider allows only full-left, centre, and full-right. Should it not mimic the track pan slider that allows 10-percent increments left and right?
  • Three, the gain slider is linear from 0 to 10. Should it not mimic the track gain slider that allows -36dB to +36dB?

Wider progress dialog when Macro processing files

In testing Macros on files I find myself agreeing with a long-standing feature request in the Wiki:

> "Wider Apply Chain dialog so you can see file names with long paths"

  • This is the white/gray progress box at the top (which now is titled either "Manage macros" or "Macros Palette" depending on whether using the maxi or mini dialogs).
  • Yes it does have a horizontal scroll bar - but it is non-interactive fo much of the time while the Macro is running.