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?
- Christian Scheuer @chrscheuer2020-04-20 14:23:35.851Z
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.
- In reply toChris_Shaw⬆:Chris Shaw @Chris_Shaw2020-04-20 17:16:45.608Z
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=0Thanks 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=5240Christian Scheuer @chrscheuer2020-04-20 17:26:52.520Z
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?
Christian Scheuer @chrscheuer2020-04-20 17:29:43.811Z
You can see its intended behavior here:
Chris Shaw @Chris_Shaw2020-04-20 17:40:55.042Z
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.Christian Scheuer @chrscheuer2020-04-20 17:43:54.918Z
:) 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.
Chris Shaw @Chris_Shaw2020-04-20 17:48:33.536Z
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 :)- Nnick krill @nick_krill
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
Christian Scheuer @chrscheuer2020-09-21 08:40:07.768Z
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.
- Nnick krill @nick_krill
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,
nickChristian Scheuer @chrscheuer2020-09-21 14:25:22.427Z
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 theselectionGetInSamples
API:
https://forum.soundflow.org/-2403#post-10- Nnick krill @nick_krill
Hi Christian,
Ah, thanks. Hmm, that link is givign me a 404 warning and says," Page not found, or Access Denied."
-nickChristian Scheuer @chrscheuer2020-09-21 20:32:16.704Z
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.- Nnick krill @nick_krill
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!
-nickChris Shaw @Chris_Shaw2020-09-23 15:34:29.056Z
Fantastic! Thanks for this one!
//CS//
- 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.
Chris Shaw @Chris_Shaw2020-09-23 15:56:09.765Z
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 }
- Nnick krill @nick_krill
Ah, Good call! Thanks for that.
-nick
-