First time here? Check out the FAQ!

How do I set the default value of a VCS control that is not affected by presets?

+1 vote
I am working on a sound where I have a VCS control, "Clock Frequency", which ranges from 4000 - 4200.  I don't want it to be affected by presets. If I right-click on the VCS control and set its "affected by presets" option to "no", then when I run the sound it always resets to 0.5.

How can I set it to default to 4186 but still not be affected by presets?
asked Oct 9, 2016 in General by alan-jackson (Virtuoso) (15,740 points)
edited Oct 10, 2016 by alan-jackson

4 Answers

0 votes
Best answer

Thanks, SSC, for the suggestion to use a TriggeredSoundToGlobalController.

That almost worked. There was a period of about 2 minutes before the sound would be audible. I think this is becuase !LocalTime will only become non-zero and trigger the TSTGC after one second. So initially the !ClockFreq would be 0.5 Hz. Stepping through the array of 64 VCS controls at 0.5 Hz takes about 2 minutes.  !ClockFreq sets the duration of the TimeIndexSound. Even though the "HoldRateDuringLoop" parameter is not enabled it seems that changing the Duration field of the TimeIndex Sound has no effect until it has completed a full cycle.

To get round this I changed the TSTGC Trigger parameter to:

!localTime eq: 0

This should just trigger when the Sound first starts.



This looks like a useful design pattern: using a TriggeredSoundToGlobalController, enabling AllowLiveOverride and setting the Trigger to !localTime eq: 0.

It's a bit like an "OnLoad" event.

answered Oct 10, 2016 by alan-jackson (Virtuoso) (15,740 points)
0 votes
  • Setup the patch with the VCS levels you desire,
  • hold Command,
  • click the save preset button
  • the default preset will be overwritten! 
answered Oct 9, 2016 by charlienorton (Adept) (2,650 points)
edited Oct 9, 2016 by charlienorton
I didn't know about the cmd-save, that's much quicker than having to type in the name of the preset to over-write it, thanks!

But it doesn't solve my issue. When I right-click on the VCS control and select "affected by preset > no", and close and re-open the sound, then the VCS control will reset to 0.5 again.
Ahhh.  Can you hard edit the patch and remove the !value completely?
Bit of a tangent, but might get you going?
0 votes
Ok, how about putting it on a timeline, automating the value as a constant for the length of the piece?
answered Oct 10, 2016 by charlienorton (Adept) (2,650 points)
I don't really want to do that. I was using the Sound's VCS as a way of experimenting and playing around with the sound.

In the end there's probably only two values of this particular VCS that are interesting, 4166.7 Hz (the Ferranti Mark 1's clock frequency) and 4168 Hz which is C8 concert pitch.

But even if I make this control a 0 - 1 toggle button I'm guessing it's still going to default to 0.5 (Schrödinger's toggle button) if I make the VCS control not affected by presets.
I'm out of ideas now, sorry chap.

This all sounds very specific and interesting, perhaps you can provide us with a little illumination in December?

P.S. LOL re: Schrödinger's toggle button
Thanks for giving it some thought! Yes, I'll happily tell you all about it in December if it turns out to sound any good.

Despite me woffling on about these specific numbers around 4000, I think the question I'm asking actually quite generic.

I can imagine times when you'd want to configure a VCS control so it's not changed by presets. It seems if you do that it's always going to go to 0.5 when you first run the sound. In the sounds I've made so far, 0.5 is rarely a value I want as a "default" starting value.
The only other thing I can think right now, is to encapsulate your own classes! This is pretty much the long way around, but it might well be one way of achieving this. You can set default values at this point. I wonder if this is the moment of birth for this particular default value.
Maybe you could use this?  

!Clock rounded of: #(4166.7 4168)

In the VCS, set tic marks and labels of !Clock.  Use text labels and edit the list to be the labels: 4166.7 and 4168

Then you could change !Clock to be a Toggle (fill) or a radio button.
+2 votes

You could use a TriggeredSoundToGlobalController with AllowLiveOverride to set the initial value of the parameter when the Sound starts:

answered Oct 10, 2016 by ssc (Savant) (119,300 points)