No internet connection
  1. Home
  2. How to

How to run an AudioSuite plug-in on a series of clips retaining their mute state?

By Christopher Barnett @Christopher_Barnett
    2020-07-01 02:32:43.568Z2020-07-01 04:09:19.428Z

    Soundflow challenge 2: Since the last one was so successful, next problem is in ProTools to audiosuite a range of clips, crossfaded with some muted some not, but leave the muted ones muted after the render, it's ok if they are all audiosuited as long as the retain there previous mute state afterwards. The plugin is not important, Ill swap in a specific one later.

    Possible ?, this might be a tough one.

    Solved in post #10, click to view
    • 37 replies

    There are 37 replies. Estimated reading time: 14 minutes

    1. Answering my own question here:

      In an Audiosuite render across multiple clips, some muted and some not, using clip list instead of play list will not unmute the muted clip but still perform the render. It’s been there for ages but I just realized how it worked. (edited)

      1. Kitch Membery @Kitch2020-07-09 21:20:32.176Z

        Nice! I did not realise that either.

        1. Im tryting to set this parameter via a string, my syntax wrong for sure, is it an argument ?

        2. Dustin Harris @Dustin_Harris
            2020-07-09 21:44:41.610Z

            wait...so... it still processes the clips on the timeline?

            1. Yes, this is quite a big deal, as long as Use in Playlist is active

              1. Kitch Membery @Kitch2020-07-09 22:15:12.850Z

                You beat me to it!

              2. In reply toDustin_Harris:
                Kitch Membery @Kitch2020-07-09 22:14:38.253Z

                And leves them muted, without messing with the fades!

                Select "clip list" amd "USE IN PLAYLIST" like this;

            2. Kitch, are clip list and play list scriptable arguments ?

              // Set processing options
              asWin.audioSuiteSetOptions({
              selectionreference: "cliplist" ,
              processingInputMode: "ClipByClip",
              processingOutputMode: "CreateIndividualFiles"

              ReplySolution
              1. Dustin Harris @Dustin_Harris
                  2020-07-09 22:22:34.921Z2020-07-09 23:14:51.033Z

                  try these:

                  EDIT: This throws an error sometimes but I'm not sure why. (the selection reference popup menu)

                  EDIT 2: Changed the logic a little. Note 'Use Processed Output In Playlist' toggles regardless of being set as 'enable'

                  sf.ui.proTools.firstAudioSuiteWindow.buttons.whoseTitle.is('Use Processed Output In Playlist').first.checkboxSet({
                      targetValue: "Enable",
                  });
                  
                  
                  if (sf.ui.proTools.firstAudioSuiteWindow.popupButtons.whoseTitle.is('Selection Reference').first.value.value != 'clip list') {
                  sf.ui.proTools.firstAudioSuiteWindow.popupButtons.whoseTitle.is('Selection Reference').first.popupMenuSelect({
                      menuPath: ["clip list"],
                  });
                  }
                  
                  1. Christopher Barnett @Christopher_Barnett
                      2020-07-09 23:15:28.214Z2020-07-09 23:24:16.264Z

                      Thank you, this toggles, so it turns on if it's off and vice versa, needs to check I think

                      1. Kitch Membery @Kitch2020-07-10 03:06:35.740Z2020-07-10 19:37:46.804Z

                        This should set the "USE IN PLAYLIST" one way, off => on.

                        Edited: Added "invalidate()" to if statement.

                        let win = sf.ui.proTools.firstAudioSuiteWindow;
                        
                        if (win.buttons.whoseTitle.is('Use Processed Output In Playlist').first.value.invalidate().value !== 'Selected') {
                            win.buttons.whoseTitle.is('Use Processed Output In Playlist').first.elementClick();
                        }
                        
                        1. Kitch Membery @Kitch2020-07-10 03:22:22.506Z

                          @Dustin_Harris & @Christopher_Barnett,

                          Are you legends getting an error from the following code if an Audiosuite window is open?;

                          sf.ui.proTools.firstAudioSuiteWindow.popupButtons.whoseTitle.is('Selection Reference').first.popupMenuSelect({
                              menuPath: ["clip list"],
                          });
                          
                          1. Dustin Harris @Dustin_Harris
                              2020-07-10 03:25:20.564Z

                              I am, but only after the first time I run it. I amended my code to made it conditional, and that seemed to get rid of the error, but I haven’t tested it extensively...

                              1. Kitch Membery @Kitch2020-07-10 03:26:52.043Z

                                Thanks Dustin,

                                I'll test it a bit more later :-)

                              2. In reply toKitch:

                                I'm not, it is opening a new window every time though I deselect the little red cube, but that's ok, I'd ideally like to leave all the windows open and just call them, but thats for another day. Great progress so far, thanks guys

                                1. Kitch Membery @Kitch2020-07-10 21:23:47.713Z

                                  What audiosuite plugin are you trying to automate? I have an idea that might fix this.

                                  1. its going to be multiple plugins, and it looks like this will work across almost all of them, just swapping them in.

                                    1. Kitch Membery @Kitch2020-07-10 22:10:47.791Z

                                      The following script should check to see if there is already an instance of the plugin open and if there is it will raise that instance of the plugin (focus it). Otherwise it will open the audiosuite plugin you want.

                                      function checkForAudiosuitePlugin(catogory, name) {
                                          if (sf.ui.proTools.windows.whoseTitle.is('Audio Suite: ' + name).first.exists) {
                                              sf.ui.proTools.windows.whoseTitle.is('Audio Suite: ' + name).first.elementRaise();
                                          } else {
                                              sf.ui.proTools.audioSuiteOpenPlugin({
                                                  category: catogory,
                                                  name: name,
                                              });
                                          }
                                      }
                                      
                                      checkForAudiosuitePlugin('EQ', 'EQ3 1-Band');
                                      

                                      Just change the last line checkForAudiosuitePlugin('catogory name here', 'plugin name here');

                                      K

                                      1. Yes I figured that out a few days ago, still learning this thing

                                        1. Kitch Membery @Kitch2020-07-10 22:56:13.947Z

                                          Nice!!

                                2. In reply toKitch:
                                  Kitch Membery @Kitch2020-07-10 21:22:05.910Z

                                  Heres a revision, champions!... I worked out that the order of operations for this script is important because switching the "Selection Reference" popup from "playlist" to "clip list" changes the "Use Processed Output In Playlist" to disabled;

                                  New order would be as follows;

                                  1. Set "Selection Reference" popup to "clip list"
                                  2. Then enable "Use Processed Output In Playlist"

                                  Like this; :-)

                                  let win = sf.ui.proTools.firstAudioSuiteWindow;
                                  
                                  if (win.popupButtons.whoseTitle.is('Selection Reference').first.value.invalidate().value != 'clip list') {
                                      win.popupButtons.whoseTitle.is('Selection Reference').first.popupMenuSelect({
                                          menuPath: ["clip list"],
                                      });
                                  }
                                  
                                  if (win.buttons.whoseTitle.is('Use Processed Output In Playlist').first.value.invalidate().value !== 'Selected') {
                                      win.buttons.whoseTitle.is('Use Processed Output In Playlist').first.elementClick();
                                  }
                                  
                                  1. Super stuff, I gotta say I have being asking Avid to fix this for YEARS !

                                    Finally a relief from clicking

                                    thank you

                                    Kitch, how do you know all these arguments, is it part of the PT SDK you signed up for ?

                                    1. Kitch Membery @Kitch2020-07-10 21:34:57.620Z

                                      Rock on!

                                      1. Kitch Membery @Kitch2020-07-11 03:15:14.804Z

                                        @Christopher_Barnett

                                        How do I know... Well I do have access to the SoundFlow API, but most of the arguments / properties etc I just get from the code editor by using "F2". Like this;

                                        That and I am obsessed with this stuff! :-)

                                        Do you have any programing experience before soundflow? If not, be sure to watch some of the videos in the help section of the editor. (by clicking the question mark in the right hand corner)

                                        Christian and I created a couple of video's recently on "How to edit shortcuts & triggers." and "How to create your first macro." but if you feel you are past that be sure to check out the "How to automate UI across apps" videos that Christian made. :-)

                                        1. Dustin Harris @Dustin_Harris
                                            2020-07-11 03:44:42.075Z

                                            Kitch you absolute legend!
                                            And did I catch that right, F2 brings up a list of applicable arguments?

                                            1. Kitch Membery @Kitch2020-07-11 03:48:49.552Z

                                              You are!

                                              And yes that is correct about F2. Another hot tip is press F1 in the editor and you can see all the Keyboard shortcuts for the the SoundFlow editor :-)

                                              Rock on!

                                              1. Dustin Harris @Dustin_Harris
                                                  2020-07-11 03:50:30.840Z

                                                  Whaaaaaaattt. Now I need to go write code just for the sake of it.

                                                  1. Kitch Membery @Kitch2020-07-11 03:54:46.589Z

                                                    Hahahaaaa you are as obsessed as me. :-)

                                                    1. Dustin Harris @Dustin_Harris
                                                        2020-07-11 04:00:56.306Z

                                                        It's true! I came to SoundFlow for the workflow improvements, but I never expected to learn Javascript as a side-effect. I use it for random stuff now too. Like tonight I wanted to average some benchmarks but didn't want to type it into a calculator so I just did this: ;)

                                                        let numbers = [
                                                        
                                                        60508,
                                                        58899,
                                                        55060,
                                                        72314,
                                                        50284,
                                                        ]
                                                        
                                                        var result = 0;
                                                        for (let i = 0; i < numbers.length; i++) {
                                                        result += numbers[i]
                                                        }
                                                        
                                                        alert(String(result / numbers.length))
                                                        
                                                        1. Kitch Membery @Kitch2020-07-11 04:11:10.516Z

                                                          Heheheee! Yep I wrote some scripts for entering in my tax info last year. I’m right with you. Btw what benchmarks are they?

                                                          1. Dustin Harris @Dustin_Harris
                                                              2020-07-11 04:14:35.172Z

                                                              Evaluating if I should swap out my video card for a different one. (Spoiler alert: 2016 Nvidia >= 2019 AMD)

                                                              1. Well, I did have to learn to program a motorola 6800 in raw machine code in college but that was long time ago, I don't think I have enough available memory to fully learn a language and I don't believe there are memory upgrades available for my head !

                                                                1. Dustin Harris @Dustin_Harris
                                                                    2020-07-11 19:32:03.482Z

                                                                    I'm sure Elon Musk is working on it.

                                            2. In reply toKitch:
                                              Dustin Harris @Dustin_Harris
                                                2020-07-10 03:27:19.508Z

                                                Choice on the !== ‘Selected’

                                                1. Thank you, gonna bash on this for a while, so far so good.

                                          • JJeremiah Moore @Jeremiah_Moore
                                              2022-08-31 19:10:07.600Z

                                              This worked here but performance was unexpectedly poor operating in Clip List mode, across a long, dense dialogue edit.

                                              SETUP:
                                              2 subjects on lavs, with heavy use of muted clips to focus on one speaker then the other during quick banter. AKA Lots of edits.

                                              I decided to run Waves Clarity VX Pro, rendered on one of the tracks.

                                              SO - to avoid wrecking the muting or having to manually trim it all out, I went searching for a method to audiosuite the whole thing leaving the mutes in place and was really happy to find this thread!

                                              CPU is M1 Max MBP with 64 ram. aka: pretty fast.

                                              HOWEVER:

                                              1. when I ran in clip-list mode across a very dense, 1h 10min dialogue edit, it took over an hour to run, slower than real-time, created 800+ audio files (probably about right) then Pro Tools hung before saving. This was repeatable.

                                              2. I ran same, across 22-minute chunks of the show... this did not crash. However, performance was poor: Taking longer than real-time to run, even w/ handles set to .75sec. After running it, I wanted to do it over as I'd mildly overbaked the material... but did not want to wait an hour for it to process.

                                              I BAILED:
                                              I ended up bailing, manually removing all muted clips from the tracks (took me about a half hour) and running VX again, which did the whole track in about 15 minutes without a hitch,

                                              FINDING:
                                              clip-mode AS processing seems to be at least 2x performance penalty, for unknown reasons

                                              Also: It will replace the clips on other open playlists w/ same clips. Dangerous as I usu. use adjancent tracks to back up "pre NR" version of edits. I did successfully back it up using track playlists; the clips would not be modified on inactive playlists.

                                              Curious if other folks are seeing poor performance.
                                              Really want to make this work solidly!

                                            • Yes, it sucks; ultimately, I think that something AVID needs to fix; we have talked to them about this, of course, as well as deleting muted clips. It is so stupid that the editor would unmute a muted clip!