Difference between revisions of "Macros discussion page"

From Audacity Wiki
Jump to: navigation, search
(Wording - "Cleaned" versus "cleaned" folder name: Peter (and Connie) would prefer the "cleaned" folder to be capitalized - or Peter would prefer it be renamed to "Macro Output" or "Macros Output" - as that gives a clearer intention of purpose.)
m (respond to James)
Line 74: Line 74:
 
*'''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.}}
 
*'''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.}}
 
* '''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.
 
* '''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:''' Not exactly. 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.
  
  
Line 94: Line 95:
  
 
* [[User:James|James]] ([[User talk:James|talk]]) No, not dangerous.
 
* [[User:James|James]] ([[User talk: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?
  
 
==Should a macro be able to call itself, and what does it mean if it does?==
 
==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.
 
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.
  
* [[User:James|James]] ([[User talk: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 easyand clear to have a recursion limit instead.
+
* [[User:James|James]] ([[User talk: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==
 
==Buttons to apply to project and files==

Revision as of 17:04, 23 March 2018

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 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.

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 Warn if no export step in an export-files chain.
  • 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.


Bugs

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 (15 tasks) ID
1854P1RESOLVEDUn-warned export file overwrite danger in 2.2.2 Chains and 2.3.0 Macros1854
549P3NEWEnh: Add missing export formats to Macros549
1709P3NEWIdentically-named effects cannot be differentiated in the Select Command dialog in Macro editing1709
548P3NEWEnh: Add export format options and export sample rate to Macro parameters548
901P3REOPENEDEnh: Macros: Noise Reduction and Noise Removal do not store parameters in a Macro901
876P3RESOLVEDWindows: Macros: LV2 plug-in effects only save default parameters.876
1855P3RESOLVEDAccelerators not removed from names in translation1855
878P3RESOLVEDBuilt in Generators don't work correctly in Chains878
1807P4RESOLVEDNyquist Prompt Scripting command is not functional1807
1238P4RESOLVEDChains: Non-interactive "Apply Chain" window obscured.1238
526P4RESOLVEDWindows: Chains: Select Command sets width of all columns by width of longest command526
1742P4RESOLVEDBuilt-in Macro name "MP3 Conversion" does not translate1742
1793P4RESOLVEDAutomatic zoom to fit of imported audio does not work in Chains1793
1237P4RESOLVEDMacros: Inconsistent per-platform behaviour cancelling in-progress Macro applied to project.1237
1745P4RESOLVEDNames of commands in Chains do not translate, and the English uses ugly CamelCase1745


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 files should be an automated process with no need for further user input for things like file/folder locations. Basically pure "Batch Processing"
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.
  • 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: Not exactly. 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.

  • 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.

    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."


    Wording - "Cleaned" versus "cleaned" folder name

    Peter (and Connie) would prefer the "cleaned" folder to be capitalized - or Peter 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 Peter

    • with macro>Project Macros now prompts for folder location - note that this is a regression on 2.2.2 and earlier - but I am happy with this change
    • with Macro>Files Audacity does not prompt (batc processing) but creates a "cleaned" sub-folder in the same location as the target file(s) - just as 2.2.2 and earlier Chains does

    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?

    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.