ToDo: mod-script-pipe

From Audacity Wiki
Jump to: navigation, search
Automation Progress: mod-script-pipe

Backlinks:


  • Done.png Get working again and in Python (earlier demos were in Perl mostly)
    • The python scripts are currently OK both on 2.7 and 3.6, as they are not using 3.x features.
  • Done.png Bring Perl script up to date so that it is usable again.
  • Done.png Make python equivalent of Perl script.
  • Done.png Done.png Done.png Compiles / loads / runs, with python on Windows.
  • Done.png Done.png Done.png Compiles / loads / runs, with python on Linux.
  • Done.png ToDo.png ToDo.png Compiles / loads / runs, with python on Mac.
    • The remaining issue on Mac is believed to be about placing the module in the right place where Audacity will find and load it.
  • Done.png Complete implementation of the SetProjectInfo and SetTrackInfo command per wiki, now allowing optional parameters in a command.
    • Done.png Document the extended GetProjectInfo, GetTrackInfo, SetProjectInfo, SetTrackInfo in the alphamanual.
  • Done.png Diagnose and fix unicode issue leading to early termination.
  • Done.png Allow spaces in parameter values using 'string' or "string".
    • This was needed for filenames.
    • It will be needed for labels.
  • Done.png Start of recording-test script.
  • Done.png Remove need for the '+' in 'w+' when running on linux.
  • Auto-Documentation system for commands:
    • Done.png Update Audacity so that a single definition of parameters suffices for get / set / defaults / validation / type info.
    • Done.png Update Audacity to provide a GetAllCommands command, that lists commands with detailed JSON specs.
    • Done.png Update WIT to reformat the JSON command spec for the manual.
    • Done.png Produce automatic Automation Reference Page
  • New Audacity commands (for test scripts)
    • Done.png Design/refine commands and parameters
    • Write
      • Done.png GetMenuItems command
      • Done.png GetCommands command
        • Done.png GetCommands+ command (also gets solo-menu-items)
      • Done.png GetBoxes command
      • Done.png GetTracks command
      • Done.png GetClips command.
      • Done.png GetLabels command.
      • Done.png Get preference parameter command.
      • Done.png Select commands.
        • Done.png Also select-from-end option.
        • Done.png Also spectral selection.
      • Done.png SetTrack command.
        • Done.png Also colour, height
        • Done.png Also grayscale, spectral-edit-enabled.
      • Done.png SetClip command. (colour, T0)
      • Done.png SetLabel command. (text, t0, t1)
      • Done.png SetProject command part I. (window size, title, position)
      • Done.png Set preference parameter command.
        • Done.png Reload-Prefs checkbox working.
    • Done.png Do the manual part of documenting them.
    • Done.png Run the automated part of documenting them.
  • Done.png Move commands to AudacityCommand so that they have prompting dialogs and can participate in chains.
    • Done.png Move DemoCommand
    • Done.png Move ScreenshotCommand
    • Done.png Move CompareAudioCommand
    • Done.png Move SetTrackInfoCommand
    • Done.png Move SelectTimeCommand
    • Done.png Move SelectTracksCommand
    • Done.png Move SelectCommand
    • Done.png Move GetPreferenceCommand
    • Done.png Move SetPreferenceCommand
    • Done.png Move GetInfoCommand
    • Done.png Move HelpCommand
    • Done.png Move ImportCommand
    • Done.png Move ExportCommand
    • Done.png Move OpenProjectCommand
    • Done.png Move SaveProjectCommand
  • Done.png Fix extra commas in JSON.
  • Done.png Allow optional parameters to NOT be defaulted.
  • Done.png Fix CommandHolder destructor.

Optional

  • Done.png Increase separation between AudacityCommand and Effect classes.
  • Done.png System for returning responses to user, even when outside batch-mode.
    • Done.png Response supporting JSON format
    • Done.png Response supporting LISP format
    • Done.png Response supporting Brief format
  • Done.png AudacityCommand and Effect hierarchy to be made more an equal footing.
    • I'm using mixins, which both hierarchies use, rather than making one derive from the other.
  • ToDo.png GetInfo: Boxes to include Track Control Panel buttons.
    • It's a nice to have, but not essential to the automated images created by WIT.
  • Done.png Enhancements to the JSON
    • Done.png Use the internal description strings, where available, in the JSON
    • Done.png Include indication of 'optional' for fields which are optional.
  • Done.png Enhancements to the Nyquist format
    • Done.png "(list" and rearranged label format much closer to label production format.
  • Done.png DefineParams() for existing Nyquist effects.
  • ToDo.png DefineParams() for existing LADSPA effects
    • Without this, effects don't advertise their parameters.
  • Done.png Fix crazy automation IDs for Tracks->Align-Tracks, which contain colons and & making them unusable for scripting.
  • Done.png Screenshot Command extensions, for first 2, 3 and 4 tracks.
  • Done.png Screenshot Command extensions, for tracks with ruler.
  • Done.png Screenshot Command extensions, for all-tracks, with and without ruler.
  • Done.png GetInfo: Type=Preferences
  • Done.png GetInfo: Type=Envelopes
  • Done.png SetEnvelopes:
  • Done.png Help button on Automation dialogs.
  • Done.png Cancel button on Automation dialogs (and X to behave as Cancel rather than as Apply).
  • Done.png Fix Bug: Tone currently running as Chirp from batch. No derived-parameters support.
  • Done.png Case insensitive command name matching.
  • Done.png Count by channels or by Tracks, when doing SetTrack, SetClip or SetEnvelope.

Super Optional

These are even more optional, because they can already be done some other way.

  • ToDo.png GetInfo: Keycodes command.
    • Optional, because the information is already available from GetInfo: Menus.
  • ToDo.png SetClip to be able to move a clip to a new track.
    • Optional, because we can use cut and paste to get the same result.
  • ToDo.png SetProject command part II. (set zoom, hscroll, vscroll)
    • Zoom and hscroll can already be set by making a selection and then zoom-to-selection.
    • vscroll can be done using DragCommand - though it's a very fiddly workaround.
  • Extend use of DefineParams() function.
    • Optional. It just makes for shorter cleaner code.
    • Done.png Discussion with Paul about code vs data approaches. Also consistency across menus and dialogs.
    • ToDo.png Generate default vanilla config dialogs from the DefineParams functions.
    • ToDo.png Auto-generate validators that are picked up automatically by ShuttleGui.


Future

  • ToDo.png (hard) Modify ResponseQueueTarget to provide intermediate results as we progress.
  • ToDo.png Fix crazy thread-loop instantiation of the ExecCommand function. That loop only needs to execute once.
  • ToDo.png Done.png Move BatchEvalCommand and MessageCommand to AudacityCommand.
    • These two are used to transfer data and responses, so converting them means dismantling more code
  • Improved error handling and reporting.
    • ToDo.png Design the strategy
    • ToDo.png Write
    • ToDo.png Document