[QLab] Confused about Min Volume Limit

85 views
Skip to first unread message

Rich Walsh

unread,
Aug 21, 2010, 5:18:24 PM8/21/10
to Discussion and support for QLab users.
I was prodding my workspace yesterday as I'd made a mistake with the default levels for mono-summing to some outputs before I added a bunch of cues and was using a script to track down and fix the rogue entries. Along the way I discovered some odd behaviour, which I'll attempt to explain...

  1. Set the Min Volume Limit to −60.
  2. Add an Audio Cue and drag its Master Level down to -INF.
  3. Query the cue, and getLevel reports "-60". Fine.
  4. Change the Min Volume Limit to −90.
  5. Query the cue, and getLevel reports "-90". Still fine.
  6. Set the Audio Cue's Master Level back to 0 and use two scripts to create a fade-in and a fade-out. The first script also sets the Audio Cue's Master Level to −120, the second uses setLevel to set the Fade Cue's Master Level to −120.
  7. Query the workspace, and getLevel reports "-90" for the Audio Cue, but "-120" for the Fade Cue. Confusing, as both have suffered the same script command.
  8. Change the Min Volume Limit to −60.
  9. Query the workspace again, and getLevel now reports "-90" for the Audio Cue, but still "-120" for the Fade Cue. Weird.
  10. Make a Fade Cue by hand and set the Master Level to -INF by hand.
  11. Query the workspace, and getLevel reports "-60" for the new manual Fade Cue. OK.
  12. Change the Min Volume Limit to −90.
  13. Query the workspace, and getLevel still reports "-60" for the manual Fade Cue. Confirm this by looking at the Inspector. Not good at all!
  14. Move the Master Level fader of the manually-created Fade Cue back down to -INF.
  15. Query the workspace, and getLevel now reports "-90" for the manual Fade Cue. Eh?

This is the query script (for Script Editor):

tell application "QLab"
tell front workspace
set theLevels to {}
repeat with eachCue in (every cue whose q type is "Audio" or q type is "Fade")
set end of theLevels to getLevel eachCue row 0 column 0
end repeat
end tell
end tell
theLevels

The important thing is: what level does a fade start from (or end at) when it appears to be displaying −INF in the Inspector? Is it the level reported by getLevel, or is it the level set by Min Volume Limit? If it is the former then the whole edifice of being able to globally set your noise floor collapses. The fact that reducing your global noise floor after having programmed some Fade Cues leaves their levels floundering at something above -INF is probably a bug, isn't it?

I'm not sure I quite understood this preference when it was introduced, and now I'm trying to use it I need some help!

Thanks.

Rich (proving that a little knowledge is a dangerous thing)

Christopher Ashworth

unread,
Aug 21, 2010, 5:37:45 PM8/21/10
to Discussion and support for QLab users.
An admirably deatailed question which, being on the road and
possessing only a thin and flakey connection to the Internet, I will
promise to answer in detail once I'm in a position to examine the code
and write out the answer properly.

It's entirely possible your scripting has sussed out a bug, but either
way I'll report back soon.

Best,
C

(mobile)

On Aug 21, 2010, at 5:18 PM, Rich Walsh <rich...@mac.com> wrote:

> I was prodding my workspace yesterday as I'd made a mistake with the
> default levels for mono-summing to some outputs before I added a
> bunch of cues and was using a script to track down and fix the rogue
> entries. Along the way I discovered some odd behaviour, which I'll
> attempt to explain...

________________________________________________________
WHEN REPLYING, PLEASE QUOTE ONLY WHAT YOU NEED. Thanks!
Change your preferences or unsubscribe here:
http://lists.figure53.com/listinfo.cgi/qlab-figure53.com

Christopher Ashworth

unread,
Aug 23, 2010, 12:12:18 PM8/23/10
to Discussion and support for QLab users.
Hi Rich,

Okay, what's happening here is a combination of three factors:

The first factor is a bug: when the minimum volume limit is set on the workspace, QLab is not currently sifting through existing cues to update the lower limit. This is simply an oversight on my part, as I imagined the lower limit set once early in the process and not changed. Silly in retrospect.

The second factor is also a bug: the minimum volume levels are not being enforced when set via a script. (They are enforced correctly when set manually.)

The final factor is a feature, but one that introduces confusion in your tests: QLab stores matrices in a sparse format. Rather than storing the actual values for every single crosspoint in a 16 x 48 matrix in every audio & fade cue (which would dramatically inflate the size of the workspace files on disk), we take advantage of the fact that most matrix entries will use default parameters. In the case of a Fade Cue matrix entry, that means "there is no gang, the target volume level is -INF, and the entry is not activated". Using this knowledge, we don't have to store any matrix entries that are set to those defaults, and when one of those entries is queried it can just pass back the defaults. Because of this, some of your getLevel queries were returning the correct minimum value, since QLab was just passing back the default values for entries that did not have reason to be explicitly stored.

Hope that helps clarify how things currently behave. I'll work on getting the bugs you found fixed, and release an update fairly soon with those and a few other issues fixed too. It won't be a huge update, but will squash some a few important pests.

Thanks much Rich,

Chris

Rich Walsh

unread,
Aug 23, 2010, 6:40:25 PM8/23/10
to Discussion and support for QLab users.
On 23 Aug 2010, at 17:12, Christopher Ashworth wrote:

> The first factor is a bug: when the minimum volume limit is set on the workspace, QLab is not currently sifting through existing cues to update the lower limit. This is simply an oversight on my part, as I imagined the lower limit set once early in the process and not changed. Silly in retrospect.
>
> The second factor is also a bug: the minimum volume levels are not being enforced when set via a script. (They are enforced correctly when set manually.)
>
> The final factor is a feature, but one that introduces confusion in your tests: QLab stores matrices in a sparse format. Rather than storing the actual values for every single crosspoint in a 16 x 48 matrix in every audio & fade cue (which would dramatically inflate the size of the workspace files on disk), we take advantage of the fact that most matrix entries will use default parameters. In the case of a Fade Cue matrix entry, that means "there is no gang, the target volume level is -INF, and the entry is not activated". Using this knowledge, we don't have to store any matrix entries that are set to those defaults, and when one of those entries is queried it can just pass back the defaults. Because of this, some of your getLevel queries were returning the correct minimum value, since QLab was just passing back the default values for entries that did not have reason to be explicitly stored.
>
> Hope that helps clarify how things currently behave. I'll work on getting the bugs you found fixed, and release an update fairly soon with those and a few other issues fixed too. It won't be a huge update, but will squash some a few important pests.

Thank you for taking the time to look into this. Most of this show was programmed in my studio, then in the rehearsal room, and only finally in the theatre where I could assess the global noise floor - so it is inevitable that this preference will change over the lifetime of a workspace.

Just to be clear, once the bugs are squished, if a fader says "-INF" in QLab's GUI it will actually be at the default value set by the Min Volume Limit preference, and all fades will be to/from this level (not −120), right?

It really is fantastic, by the way, to be able to move shows around like this. Rather than spend time at home decoding my scrawled notes from a preview into a jobs list for the morning, I can make those changes direct to my copy of the workspace and just resync when I get into the theatre. Running on the same platform as my personal machine obviously helps, but even aside from that the elegant simplicity of this process - dragging a single virtual wire to my home interface - is astounding.

Rich

Christopher Ashworth

unread,
Aug 24, 2010, 8:21:25 AM8/24/10
to Discussion and support for QLab users.
On Aug 23, 2010, at 6:40 PM, Rich Walsh wrote:
>
> Just to be clear, once the bugs are squished, if a fader says "-INF" in QLab's GUI it will actually be at the default value set by the Min Volume Limit preference, and all fades will be to/from this level (not −120), right?

Right.

-C

Reply all
Reply to author
Forward
0 new messages