Skip to first unread message

Rich Walsh

Feb 3, 2016, 8:03:42 PM2/3/16
to ql...@googlegroups.com
Six years in the making, on and off... Here, finally, is my collection of macros updated for QLab 3. Hopefully some of it is useful to other people: I collect scraps of things I've built for other designers or for my own shows. I'm a bit worried it's become so bloated now that it will slow QLab down; I have to keep a text file to keep track of the hotkey combinations I've used up! The list of keyboard shortcuts is the Macros cue list itself. I've also now added a Word file of all the code as I find it useful to be able to search through lots of scripts at once looking for blocks I can reassemble to make something new (I have a wiki for this, but haven't found a way of exporting formatted text that can still be copied and pasted into AppleScript Editor).

There's a few bits still to finish, and then I need to update my website and the QLab wiki. Thanks to watching Mic Pool's work over the last few years I've replaced some of the basic AppleScript routines with OSC methods, but mostly it's still AppleScript.

Macros include:

Level bump
Fade in
Fade in with follow-on
Fade out
Prepare fades
Crash fades
Force fades
Force running fades
Turn on infinite loop
Make mono
Gang copier
Change target
Convert to wav
Update all instances
Add files from iTunes
Adjust Pre Wait
Adjust Duration
Adjust Post Wait
Effective duration
Create adjustable auto-follow
Toggle pause of all except selected cue(s)
Load to time
Jump into a string of cues
Batch adjusting
Toggle arming
Toggle arming of all MSC cues
Batch arm/disarm
Clear number
Renumber with a prefix
Add suffix to renumber
Reset names
Update filenames
Batch adjust continue mode
Clear notes
Move cut cues
Batch adjust selected
Import files
Group selected cue(s)
Group selected cue(s) with number & notes
Convert Group Cue
Set target
Reveal target file
Localise media
Add Start Cue(s)
Add a crashable wait cue
Next broken cue
Next cue which shares Cue Target
Switch cue lists
Switch cue lists without losing playhead
Position QLab

I don't know how it would work with the QLab concept of templates: I use it by making a folder with an "audio" folder inside it and sticking a copy of the template file next to that – renaming for the project, and then customising (eg: setting up gangs & default levels).



(PS: Chris, I haven't tested anything with today's beta – it's taken me 3 weeks to test everything in 3.1.8!)

QLab v3 Template 16-02-03.zip

Craig K

Feb 5, 2016, 10:51:59 AM2/5/16
to QLab

This is an amazing set of tools, and looks like quite an investment in time and energy. Nice work, and thanks for sharing it!

Craig K.

Chris Ashworth

Mar 18, 2016, 1:49:41 PM3/18/16
to Rich Walsh, ql...@googlegroups.com
Belatedly, this is really something Rich. Thank you for sharing it. 

(Delayed reply because it has been sitting in my inbox mentally filed under “I should look closely at this!” for a while, and there is a lot here to look at!)

Change your preferences or unsubscribe here:
Follow Figure 53 on Twitter: http://twitter.com/Figure53
You received this message because you are subscribed to the Google Groups "QLab" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qlab+uns...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/qlab/CAEE839C-AB9D-4574-9440-AC92899E0F30%40mac.com.
For more options, visit https://groups.google.com/d/optout.

Change your preferences or unsubscribe here:
Follow Figure 53 on Twitter: http://twitter.com/Figure53
You received this message because you are subscribed to the Google Groups "QLab" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qlab+uns...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/qlab/CAEE839C-AB9D-4574-9440-AC92899E0F30%40mac.com.
For more options, visit https://groups.google.com/d/optout.

Erik Rietman

Mar 19, 2016, 10:01:42 AM3/19/16
to QLab
Great work. Thankyou for sharing!

Juan Miguel Alcarria Herrera

Mar 21, 2016, 4:44:37 AM3/21/16
to QLab

Great work!

Andrew Blizzard

Mar 21, 2016, 10:38:02 PM3/21/16
to QLab
I started using these on my latest project and it has sped up my workflow considerably! And I'm barely using most of them. 

Thanks for sharing this with everyone.


Rich Walsh

May 1, 2016, 10:19:05 AM5/1/16
to QLab
Sorry for the spam, but fixing my website to post this there is not looking likely this year…

Here's an update with some bug fixes and a couple of new things:
  1. Scripts should be immune to whether you use "." or "," for a decimal point
  2. There's a batch script to fix any OSC commands in the template that do use "." – disarm it and run it if you use ","
  3. New "Navigate cues with shared Cue Target" script, with ugly popup list to show all the cues that, well, you know…
  4. Now includes "Make a soundcheck sequence" – possibly the first script I wrote for QLab, but now with optional crashable waits so it will carry on round the speakers without you if that's how you like to do sound checks
  5. Some more bits of "Batch adjust selected" turned back on, and it can now set the command in MIDI voice messages
Do please let me know if you encounter any issues with it.
QLab v3 Template 16-05-01.zip


Jun 12, 2016, 6:45:58 PM6/12/16
to QLab
Hi Rich,

I seem to have come across an issue with one of the scipts in the template.  The import files script throws up an error if I try to import files that are not in the audio folder next to the workspace.  The error says script does not understand the "copyFile" message.

The following part of the script is highlighted:

-- If the file is not already in place, copy it to the appropriate subfolder
                    if my checkForFile(item i of theSubfolders, eachName) is false then
                        my copyFile(item i of theSubfolders, eachFile)
                    end if
                    set eachTarget to sharedPath & item i of theSubfolders & ":" & eachName

Thanks for the excellent template, so useful.


Jun 12, 2016, 6:50:02 PM6/12/16
to QLab
I figured it out, that line should have read:

my copyFileViaFinder(item i of theSubfolders, eachFile)

I've amended it and attached the template again with the correction to the import script.


QLab v3 Template 16-06-12.zip

Rich Walsh

Jun 13, 2016, 4:01:49 AM6/13/16
to ql...@googlegroups.com
Sorry: that's an incomplete job of renaming the subroutines that have been recycled so they are consistent across the scripts – a simple job that I must have messed up after the last set of full testing.



Nov 15, 2016, 9:59:12 PM11/15/16
to QLab
This looks great! Can't wait to look at this some more. I do a lot of the same things, I think, in terms of templates. (At least in theory if not execution, haven't really looked yet to compare notes.)  Thanks for sharing!

Patrick Spadrille

Nov 16, 2016, 12:12:58 AM11/16/16
to QLab
Seems amazone! Thank toi.

Rich Walsh

Sep 27, 2017, 9:24:45 AM9/27/17
to QLab
Here's an update for v4. Some things have gone as they're now built-in (I wonder where they get their ideas from?); a lot of hotkeys have changed. Some new stuff:

ADDED: "Set last slice of selected Audio or Video Cue(s) to infinite loop" [⇧⌃⌥8]
ADDED: "Set colour of selected cue(s) to grey" [⇧⌃⌥0]
ADDED: "Scan for files" [⌃⌥S] – add new audio & video files from a watched folder to the "Watched" cue list, recreating the folder structure (also added ^W to switch to the cue list)
ADDED: "Log event to file" [in "not on a hotkey" section]; example Start Cue in Scratch cue list ###EXPERIMENTAL###

IMPROVED: "Create 5s default fade IN of selected Audio, Mic or Video Cue as next cue" [⌃F & ⌃⌥F] – will now also act on Video Cues
IMPROVED: "Load selected cue(s) to a time you enter" [^L] – you can now enter negative times to specify time remaining
IMPROVED: "Reset name of selected cue(s)" [^N] – can now mark looped cues
IMPROVED: "Batch adjust selected" [⇧⌃J] – now includes actions for Light Cues and an "act on ALL CUES in workspace" mode
IMPROVED: "Update all instances of selected Audio Cue" [⇧⌃⌥G] – now also propagates slices

Fade curves have been captured for v4 – finally we have equal gain & equal power curves! Some macros are now on a fancy cart, that looks great in QLab Remote.

Let me know when you find the bugs; it's getting a bit too bloated for me to check everything thoroughly each time…

QLab v4 Template 17-09-27.zip

Scott McGlynn

Nov 16, 2017, 11:28:41 AM11/16/17
to QLab

I've been using these for a show the last few weeks (thank you much by the way) and tonight this subroutine started throwing an error:

on enterSomeTextWithIcon(thePrompt, defaultAnswer, emptyAllowed) -- [Shared subroutine]
tell application id "com.figure53.QLab.4"
set theAnswer to ""
repeat until theAnswer is not ""
set theAnswer to text returned of (display dialog thePrompt with title dialogTitle with icon 1 ¬
default answer defaultAnswer buttons {"Cancel", "OK"} default button "OK" cancel button "Cancel")
if emptyAllowed is true then exit repeat
end repeat
return theAnswer
end tell
end enterSomeTextWithIcon

ERROR: QLab got an error: Can't make {} in type string.  

I can't think of any updates or changes I've made to the system and it even throws this error if I try opening your workspace that I've not altered in an way.

I'm really missing the renumber with prefix function. I'm prepping an outdoor projections project and I use that script along with another to change all the cues from my indoor model mapping to my outdoor performance mapping of surfaces and projectors.

I've turned it off and on again so step one of troubleshooting is complete. Any thoughts?

Thank you,

Scott McGlynn

Rich Walsh

Nov 16, 2017, 1:18:51 PM11/16/17
to ql...@googlegroups.com
Assuming that this error is occurring in "Renumber with a prefix” it appears that your clipboard somehow contains an empty list, so the variable clipboardContents is being passed with its class as list.

Change this line:

set clipboardContents to the clipboard


set clipboardContents to the clipboard as text

I wonder what’s setting your clipboard to an empty list? I found it quite tricky to do…


Scott McGlynn

Nov 17, 2017, 12:18:45 AM11/17/17
to QLab

That cured it. Thank you! I am also perplexed at the change. I'll test it on my backup seat this weekend to see if it behaves similarly.


Rich Walsh

Nov 17, 2017, 4:17:06 AM11/17/17
to ql...@googlegroups.com
It is a puzzle, as the only way I can get this error message…

"QLab 4 got an error: Can’t make {} into type string.”

… is to pass the subroutine a variable as the defaultAnswer that has been explicitly declared as a list, eg:

set clipboardContents to the clipboard as list

If the clipboard is an empty list and the variable is not explicitly coerced I get:

"QLab 4 got an error: Can’t make {list:{}} into type string."

So, I’m not sure how to recreate the precise situation – but on the next update I will make sure that all actions to/from the clipboard are explicit about the class required.


Lars Søgnen

Dec 4, 2017, 8:54:15 AM12/4/17
to QLab
Rich, one word. Amazing. This is beautiful, and thank you for sharing these.

Best regards Lars Reinhardt
Lets get this show on the road

Abdel El Asri

Sep 14, 2018, 11:35:54 AM9/14/18
to QLab
This is gold I was working on my own version when I found this!!!! I'll complete mine with this one then share it, promised! :)
Thank you so much

Rich Walsh

Feb 5, 2019, 5:21:09 PM2/5/19
to QLab
I've finally got round to giving my website a kick so future updates will be at www.allthatyouhear.com.
Reply all
Reply to author
0 new messages