Closed gwsounddsg closed 7 years ago
Hi @gwsounddsg -
The QLab OSC method /level
allows for sending the string value "-inf". You can use this to set a Levels slider to negative infinity.
For example, to set the master audio level for Fade cue "1" to -INF:
QSC:
/cue/1/level 0 0 "-inf"
QLabKit.objc:
NSArray *properties = @[ @0, @0, @"-inf" ];
[workspace cue:cue updatePropertiesSend:properties forKey:@"level"];
In addition, QLab 4.0 added some additional OSC methods which will make the other operations now possible. These are Fade cue method /willFade
and Settings method /settings/audio/minVolume
.
For example, to set the "live" state of the master level slider to ON for cue "1":
QSC:
/cue/1/willFade 0 0 1
QLabKit.objc:
NSString *address = [workspace addressForCue:cue action:@"willFade"];
NSArray *message = @[ @0, @0, @YES ];
[workspace sendMessage:message toAddress:address];
To fetch the minimum volume decibel level from Workspace Settings > Audio:
QSC:
/settings/audio/minVolume
prompts a JSON reply from QLab, such as:
{"status":"ok","address":"\/settings\/audio\/minVolume","data":-60}
QLabKit.objc:
[workspace sendMessage:nil toAddress:@"/settings/audio/minVolume" block:^(id data) {
if ( [data isKindOfClass:[NSNumber class]] == NO )
return;
double minVolume = [(NSNumber *)data doubleValue];
// do something here with `minVolume`
}];
Currenlty there isn't a way to send a message to fade cues to enable/disable the levels. This isn't a problem most of the time becuase if you're sending a level it will enable. But the issue happens when you send a level at, or lower, than the min level set in QLabs preferences.
Basically, you have to send a value of -59.999 to get it to set to -inf. Which is still potentially buggy because you can't find out what the user set the min level to.
It would be great if you could either query what the workspaces min/max levels are, and/or be able to send a level message of -INFINITY or some equivalent message.