No internet connection
  1. Home
  2. How to

How to use Create Boundary Automation Breakpoints


I'm having problems with the Create Boundary Automation Breakpoints command. If I execute it within the SoundFlow Application it works properly but when I assign it to a key command it creates the breakpoint but then changes the edit selection to a smaller area within the breakpoints. Any ideas on how to fix this behavior?


Also, If I select a range of automation points and execute this command, it clears all of the automation within the slection. Is it possible to retain the automation and just creat the points at the begining and end of the selection?
Solved in post #15, click to view
  • 18 replies

There are 18 replies. Estimated reading time: 12 minutes

  1. Hi Chris.
    Welcome to the forum :)

    The behavior you're describing is actually the designed behavior.
    The way you use "Create Boundary Automation Breakpoints" is to run it, and then with the smaller selection it has cleared for you, drag that area while holding down the Option key. This will create a ramp on either side.

    If you want to just create points for editing on both sides, try out the "Cut all automation on selection edges" command.

    If neither of these two built in commands function exactly like you want, then you'd need to write a Macro or Script that fits more closely with how you'd like it to work.

    1. In reply toChris_Shaw:

      Thanks for the reply Christian.
      Perhaps I',m being obtuse but the Create Boundary Automation Breakpoints seems to behave differently depending on how I execute it. When run directly from the SoundFlow app it does what I expect it to do but when I run it with a keyboard trigger within Pro Tools it behaves unexpectedly.

      I made a screen recording to demonstrate. (Pardon the poor audio quality.)
      https://www.dropbox.com/s/r3fc39c5xz5fxmk/Create Bounday Automation Trouble.mov?dl=0

      Thanks again. Loving SoundFlow so far. It was recommended to me by Andrew Schepps during a webcast we did last week.
      You can see it here: https://youtu.be/oUPZeIiOR1k?t=5240

      1. Hi Chris.

        The behavior you're seeing when running it from SoundFlow - even it's what you want it to do, is not what it's designed to do. The command is designed to be run when Pro Tools is in focus.
        In your last bit you show how it looks when dragging without holding the Option key. If you do hold the Option key, then you'll create a gliding breakpoint on either side, which is what this command is designed for.

        I understand the command doesn't do what you want - but you should instead create a shortcut/macro that then does it :) Again, the only bug is that if you run the command out of context (ie. not with PT focused) as you've seen it behaves not as it should. While we could certainly fix that, it won't fix your issue, since you want the command to do something it's not designed to do.

        Instead let's make the discussion about what exactly you'd like it to do. As I understand it - you'd like it to not overwrite anything except just create a breakpoint on each side of the selection. While we could certainly make a script that does that, I'm not entirely sure what the benefit of that would be?

        1. You can see its intended behavior here:

          1. Ah now I see.
            Thanks for your patience while answering my question. I didn't realize that macro behavior is dependent upon which application it triggered from.

            1. :) Ideally they shouldn't be dependent on that, and I can definitely understand why it becomes confusing when they are. We just skipped a double check because nobody thought to run it the way you did before I guess :) I'll make sure we fix that in the next release.

              1. A quick follow-up, is iit possible to have a script that creates automation breakpoints on boundary edges but doesn't delete any of the existing automation that exists in the selection?
                My Javascript abilities are weak at best but I'm working on it :)

                1. Nnick krill @nick_krill
                    2020-09-20 01:39:12.764Z2020-09-20 01:45:55.835Z

                    Hi Chris,

                    Out of curiosity, did you ever figure out a way to make breakpoints on boundary edges without deleting existing automation within the selection?

                    I just made the following using the built in SoundFlow macro editor and TempMarkers....may not be the slickest way to do it...but it seems to work:

                    
                    sf.ui.proTools.appActivateMainWindow();
                    
                    sf.soundflow.runCommand({
                        commandId: 'user:ckf4ibaym0009j010f4cal5m9:cjlu6c52p0001vo10ew2lf4ig',
                        props: {}
                    });
                    
                    sf.keyboard.press({
                        keys: "up",
                    });
                    
                    sf.soundflow.runCommand({
                        commandId: 'user:ckf4ibaym0009j010f4cal5m9:cjlu6d8w20002vo1000f7nogc',
                        props: {}
                    });
                    
                    sf.ui.proTools.menuClick({
                        menuPath: ["Edit","Automation","Write to Current"],
                    });
                    
                    sf.soundflow.runCommand({
                        commandId: 'user:ckf4ibaym0009j010f4cal5m9:cjlu6e6nf0006vo10tiiarc2n',
                        props: {}
                    });
                    
                    sf.ui.proTools.menuClick({
                        menuPath: ["Edit","Automation","Write to Current"],
                    });
                    
                    sf.soundflow.runCommand({
                        commandId: 'user:ckf4ibaym0009j010f4cal5m9:cjlu6e6nf0006vo10tiiarc2n',
                        props: {}
                    });
                    
                    sf.ui.proTools.memoryLocationsGotoDelta({
                        delta: 1,
                        extendSelection: true,
                    });
                    
                    
                    

                    Only thing I can't work out now is a good way to make little ramps in the automation at the edges of the boudary....seems like having breakpoints within the selection changes the was PT deals with making those little edge ramps.

                    -nick

                    1. Great work. I can't really check your script in-depth because it's using 3 external scripts / macros. But happy to see that you are making progress :)

                      You may want to check out "Cut all automation on Selection Edges" instead. That command will just create ramps on either side of your selection.

                      1. Nnick krill @nick_krill
                          2020-09-21 14:15:39.783Z

                          Hi Christian,

                          Oh shoot! I don't know how I missed "Cut all automation on Selection Edges", haha! Thanks.

                          In the Cut all automation on Selection Edges command it seems to do it's magic by accessing the main counter start and end points...am I following that right?

                          After watching Cut all automation on Selection Edges run a few times...it made me wonder:

                          • how are you taking a snap shot of the main counter starting state in order to swap it back after you are done using samples mode to make the automation cuts?

                          • how are you accessing the Start and End numbers?

                          Makes me think I should look into navigating using the main counter rather than those temp markers in the script i pasted in my last post.

                          Thanks,
                          nick

                          1. Hi Nick.

                            Off of the top of my head, I believe we temporarily switch to Samples and use that for remembering the selection.
                            Take a look here at using the selectionGetInSamples API:
                            https://forum.soundflow.org/-2403#post-10

                            1. Nnick krill @nick_krill
                                2020-09-21 15:39:50.708Z

                                Hi Christian,

                                Ah, thanks. Hmm, that link is givign me a 404 warning and says," Page not found, or Access Denied."
                                -nick

                                1. Ah my bad, that was an internal link.

                                  In any event, you just call it like this:

                                  const currentSelection = sf.ui.proTools.selectionGetInSamples();
                                  

                                  And then you can access its properties, like currentSelection.selectionStart etc.

                                  1. Nnick krill @nick_krill
                                      2020-09-23 00:24:58.629Z

                                      Thanks for your tips Christian,

                                      I was able to make a version with the get selection in samples macro, and it seems to do the trick creating breakpoints at the edge of a selection without messing with any automation in between!

                                      here it is in script form in case it is useful to anyone:

                                      
                                      
                                      sf.ui.proTools.appActivateMainWindow();
                                      
                                      const getInSamplesResult = sf.ui.proTools.selectionGetInSamples();
                                      
                                      sf.ui.proTools.selectionSetInSamples({
                                          mainCounter: getInSamplesResult.selectionStart,
                                          selectionLength: 0,
                                      });
                                      
                                      sf.ui.proTools.menuClick({
                                          menuPath: ["Edit","Automation","Write to Current"],
                                      });
                                      
                                      sf.ui.proTools.selectionSetInSamples({
                                          mainCounter: getInSamplesResult.selectionEnd,
                                          selectionLength: 0,
                                      });
                                      
                                      sf.ui.proTools.menuClick({
                                          menuPath: ["Edit","Automation","Write to Current"],
                                      });
                                      
                                      sf.ui.proTools.selectionSetInSamples({
                                          mainCounter: getInSamplesResult.selectionStart,
                                          selectionStart: getInSamplesResult.selectionStart,
                                          selectionEnd: getInSamplesResult.selectionEnd,
                                          selectionLength: getInSamplesResult.selectionLength,
                                      });
                                      
                                      

                                      thanks again for your tips!
                                      -nick

                                      Reply1 LikeSolution
                                      1. Fantastic! Thanks for this one!

                                        //CS//

                                        1. In reply tonick_krill:
                                          Chris Shaw @Chris_Shaw2020-09-23 15:41:35.987Z2020-09-23 15:57:15.260Z

                                          The only thing I would add to this otherwise great script is a routine at the beginning to make sure the track view selector isn't set to isn't set to waveform, blocks, playlists, analysis, or warp and throw a notification if it is.

                                          1. Something like this at the top should work:

                                            var trackView = sf.ui.proTools.selectedTrack.popupButtons.whoseTitle.is('Track View selector').first.value.value;
                                            if (trackView == "blocks" || trackView == "palylists" || trackView == "analysis" || trackView == "warp" || trackView == "waveform") {
                                                sf.interaction.notify({
                                                    title: "Please Select an Automation View",
                                                });
                                                throw 0
                                            }
                                            
                                            1. Nnick krill @nick_krill
                                                2020-09-23 21:41:40.832Z

                                                Ah, Good call! Thanks for that.

                                                -nick