Toggle Muted Tracks Visibility Script

Hello! I would like to share a really useful project logical editor script which helps you to hide/unhide all muted tracks in a projec. I hope it will be useful to one’s workflow.

Here’s How It Works:

  1. Mute tracks you don’t want to see
  2. Press “A” button to hide those tracks.
  3. Compose some music and mute some more tracks you don’t wanna see anymore again.
  4. Press “A” button to hide newrly muted tracks again
  5. Finally press “B” to reveal all the muted tracks you’ve hidden with “A” button all at once.

Here’s How To Set it Up:

Well, it’s not really a “toggle”, just 2 separate “Show” and “Hide” buttons. But if someone more experienced knows how to make (1)“Hide Muted Tracks” + (2)“If there are more muted visible tracks - hide them” + (3)“If there’re no muted tracks visible - reveal the muted hidden ones” to be toggled with one button, please let me know!


Wouldn’t it be easier to make following Macro?

  • Show All Tracks (to make sure, the tracks which have been unmuted in the mean time, would become visible)
  • Hide Muted Tracks

You can always trigger it by only 1 Key Command.

Sorry, I don’t quite get it.
Suggested Muted Track Toggle
Kind of like that? It hides muted tracks but can’t toggle to reveal them back.


Yes, like this. Of course, if you want to show even the muted tracks later, you can just use the Show All Channels/Tracks function.

Or maybe I didn’t get your use case…?

Well, Ideally I want to be able to toggle “hide/show” muted tracks with one button.


How would Cubase know, if you want to Show the muted tracks or hide them? Could you describe your expected logic, please?

You can go this way obviously, but then you can’t show/hide in “installments” as you like. (which is hide some muted tracks, then work some more, mute some more, hide them etc)

Second best would be (for me), to have to separate commands, Show Muted Tracks and Hide Muted Tracks to do just that, alternating between them whenever you like, exactly as you’re doing right now.

To have a button do what you like, I think there would need to be a way to specify the condition “If there are muted tracks already hidden, and muted tracks still showing, hide the ones that are still showing”, so that the command could work as a toggle.

(Because now, with the toggle command on the beginning of the post, you mute and hide 4 tracks, perfect. Give the command, they show, perfect. Hide them again, perfect. Now mute some other tracks and give the command, uh-oh. The newly muted ones hide, the old ones show up.)

If you can remember to show them all before muting new ones, it’s one way to go. Otherwise, you need separate Show and Hide commands, in my opinion.

1 Like


I’m afraid, this is not, what is @andreyshinami asking for. This one would show already hidden Muted Tracks.

My expectation is, he wants to:

  • Call 1: Hide all Muted tracks.
  • Call 2: Show all Mutes tracks

But I don’t understand the use case:

  • I have some tracks Muted, so I call the command to hide them.
  • Then I continue to work. I want to show the Muted tracks, do I call the command again. → Works.
  • Then I Mute some tracks again. I want to hide them, so I call the command. → Works.
  • Then I Mute some more tracks. I want to hide them, so I call the command. => It shows all Muted tracks, instead of hide them.

So in the case, you would need to call the command twice.

Or is my expectation wrong, @andreyshinami , please?

Yes, we understand each other. @andreyshinami could:

  1. Use the toggle command above and remember to SHOW all hidden muted tracks before muting and hiding a new batch.

  2. Use separate keycommands for hide and show, so that he can mute/hide batches of tracks whenever he pleases.

You can make toggle 2 commands with one command via auto hotkey.


Or he could make a Macro of this step + the Project Logical Editor Preset.

2 hours later, I still can’t think of an “on demand” visibility flip that keeps this a single toggle command. Good thing I’m not a programmer or I’d be really disappointed in myself right now. :rofl: :broken_heart:

:smiley: The use case would be like this:

  1. I got lots of tracks and mute the ones I don’t want to hear
  2. I press “N” button to hide muted and continue working
  3. I find some more tracks I’d like to mute and don’t wanna see any more.
  4. I press “N” button again to hide them too.
  5. I’m done with the group of tracks I was focusing on.
  6. I press “N” button and since no visible tracks are muted, it reveals me the muted tracks.
  7. I decide then which ones I want to unmute, press “N” button to hide muted.
    And so on continuing with my workflow.


This mean you’re expectation is:

  • Scan all tracks in the project first.
  • If there is any taco muted and visible in the project, go thru the Hide muted tracks way.
  • If none of the visible track is muted, go thru the Show All way.

Am I right?

I’m sorry, this is not possible.

1 Like

I’m wondering if we could emulate the “if” by first passing through a PLE filter, and then execute a macro. I suppose that when the filter fails to return true then the macro part is not executed either?


  • First command, a PLE script. “Check if visible muted tracks exist and select them”. No action in the PLE, just a macro to hide those selected tracks.
  • Then a second command, toggle visibility of hidden and muted tracks.

When the first command fails (because PLE can’t find any visible muted tracks), it would jump right to the visibility toggle command. (I hope, IF macros fired through the PLE are dependent on the Filter Conditions)

I’ll test this once I get home.

1 Like

Ahh… okey =/

Thank you, man


The disadvantage of this is, you would need to unselected all tracks before this check. And you would need to unselected all tracks even after the whole macro. Or you would need to create one more before and after step, something like:

  • If track is select, append “selected” to the track name.
    And after the whole macro:
  • Is track name contains “selected”, select the track and delete the “selected” from the track name.

But in general, if the Project Logical Editor doesn’t return True, the process is not executed. Be aware, the PLE doesn’t apply for the tracks as the whole. It takes tracks one by one, test it and if the condition returns true, then the action is executed on the track.

1 Like