A Workaround to Select Parent Tracks of Selected Parts/Events using PLE


I’ve found a workaround for an issue in the PLE that I’d like to share. Took a while to figure out, so in case anyone else wants to do this as well.

First, try this to understand the PLE limitation:

  1. “Track Selection follows Event Selection” set to On.
  2. Select All
  3. Observe that all tracks containing events are also selected.

Now try this PLE preset:

Observe that the events are selected but not the tracks. This poses a problem in case we want to select the tracks using filter functions in PLE. For instance, my use case is this:

  • I have around 4000 tracks in my scoring template.
  • Each track has a MIDI Part named “INIT” which contains initializing data.
  • All tracks are Disabled by default.
  • When scoring, I enable the instruments that I need.
  • When session is done, I usually have several tracks that I don’t use anymore. I’d like to disable them.
  • Select All will select every track, since there’s an INIT part, so we can’t use that to invert track selection.
  • PLE preset “Property → is Set → is Empty” will not work because of the INIT event.
  • This means that I need to somehow filter out the channels that has no musical material, but that has the INIT block on in. That works using the following PLE flow:

This would be the end of the story, if “Track selection follows event selection” would actually do what it’s supposed to do even when triggered by PLE. But it doesn’t.

Another way would be to have a Property “Child Object is Selected”, but that doesn’t exist, only “Parent Object is Selected”.

I though that was it, until I – by mistake – discovered that “Nudge” will trigger “Track Selection follows Event Selection”. So simply nudging all content forward and backward with the same value will select the tracks. I’m using +1/-1 frame for this, as that is an exact value independent of grid, etc. After that, it’s possible to invert the track selection and set the tracks into a Disabled state.

Full chain of commands:

  1. Select all events of a certain type (in this case MIDI, Audio + not named INIT).

  2. Nudge +1 frame.

  3. Nudge -1 frame.

  4. Invert track selection for MIDI and Audio tracks:

  5. Disable tracks.

Incorporated into a macro. Added “Select None” at the beginning. I’m keeping the disabled tracks selected after the macro has run so I can hide the tracks using a keyboard shortcut.
Screenshot 2024-02-20 at 17.15.14

This can be used for other filters as well involving specific event types of course.

Hope it helps someone!