Hear hear and Happy New Year! ![]()
Thank you all for the magnificent work! Most unfortunately, this doesn’t seem to be working on my end (though I trust we are close given the detail here). When I run the macro, I get the list prompt successfully (action #2), but after my selection, nothing seems to happen. I’ve tried this with various windows being selected (including my target window on the second display), and with the tracks pane both open and close (which I figure shouldn’t be the issue given the previous macro build), I’ve also tried moving the target ‘main window’ onto my other displays in case that changes anything, but no dice. Having trouble debugging this one beyond that since it’s certainly a more complex one… but maybe if i can learn more what is happening under the hood I can reorient it to work on my system.
… bouncing back to this version of the macro, at least. I’ve attempted to set this up as a subroute (now having individual macros that trigger each ‘list’ item instead of being prompted). For some reason, though, the variable doesn’t seem to carry through, as when I do the subroute method, the track window opens, and I can see the delay field is clicked, but no value gets inputted.
In the subroutine, change the name of the variable at the top from 'Local Input Variable' to 'Local__Delay' and remove the first action.
Wow! Perfect, that worked!
I believe I have gotten this to work with the following Apple Script:
tell application "System Events"
tell process "Logic Pro"
-- Ensure Logic is the active app so the menu works
set frontmost to true
tell menu bar 1
tell menu "Window"
-- Find all menu items that end with "- Tracks"
set matchingWindows to (every menu item whose name ends with "- Tracks")
-- Check if we found at least 2 windows
if (count of matchingWindows) ≥ 2 then
-- Click the SECOND one found in the list
click item 2 of matchingWindows
else
-- Optional: If only 1 exists, just select that one
if (count of matchingWindows) is 1 then
click item 1 of matchingWindows
end if
end if
end tell
end tell
end tell
end tell
This script selects the window from the global “Window” menu.
Is the correct window always item 2, even when it's frontmost? If so, I just learned something.
Yup, in my case it is at least. The Window menu in Logic appears to exhibit lazy population. The AXMenu elements for individual windows are only instantiated or updated when a new window event (Open/Close) occurs.
Zero points for a non-KM solution, but this might be a DAW user type solution for Logic Pro:
- various .logicx project TEMPLATE files based on contextual project usage. Three project examples that use sampler libraries: A. drums, bass, guitar; B. cello, viola, violin2, violin 1; C. BG atmospheres, car crash sfx, footsteps foley.
- each .logicx template has a folder/trackstack at the top called “Dupe Me” and containing various instrument tracks.
- the instrument tracks contain prepopulated sampler instances with their pre-known offsets established in advance per context. plugin instances are powered off. template tracks are all powered off.
- as you work through the project, simply dupe off the track you want and power it up.
Keep an eye on memory bloat and session bootup time because Logic is still a slow, and greedy pig.
An alternative is to have a non-production .logicx which is entirely composed of these deactivated sampler tracks with tracknames indicating offsets. Then just import the tracks you want into the .logicx under development. I can’t remember how much strife this causes in .logicx but it should be a peppier solution.
Greatest time savings with DAWs often equates to building templates that are as close to the final session state as is feasible.
I’m probably missing a key point here. ![]()


