First time here? Check out the FAQ!

Automate the Gate in an ADSR

+1 vote

This sound is a drone with variable envelope parameters that is designed to be turned on and off manually.

I would like to automate the gate in the adsr where the drone on and off is automated with variable lengths of silence before it turns on again.

I'm not sure if I need to automate the gate in the adsr or if I need to set up a control that simply sends messages to the On! in the gate.

I will have 6 of these drones playing in a Timeline for a sparse soundscape.

Suggestions are welcome!


asked Mar 5, 2019 in Using Kyma by anne-la-berge (Adept) (2,170 points)
Hi Anne, would you like them to turn on and off at random? Or according to six out-of-phase sequences? Or automated on/off controls from the Timeline?
I would like them to turn on and off at random. That way there would be an unpredictable density and harmony.

1 Answer

0 votes

You could try something like this in the Gate fields of the ADSRs:

1 randExpGate: !AverageDur s minDur: !MinDur s maxDur: !MaxDur dutyCycle: !DutyCycle

where some of the EventValues could be replaced with constants if you know in advance how quickly or slowly you'd like things to evolve and whether you'd like silence between the gates, for example

1 randExpGate: 5 s minDur: 3 s maxDur: 15 s dutyCycle: 0.75

Is this along the lines of the results you are looking for?

answered Mar 5, 2019 by ssc (Savant) (124,560 points)
In a way it solves the issue but I think the greater issue is that when a message is sent to !On1 then one in a scale of 36 sounds are chosen/created and played. If I set up the repeating sound in the gate, then the random choice of pitch and timbre do not occur. What I need to do is send a message to turn the toggle !On1 on and then !On1 off in the SyntheticSpectrumFromArray Sound where in the Interpolate the choice is made. I would like to replicate a person pushing the On1 button in the VCS to turn the sound on and then off with a new choice between 1 and 36 made each time it is turned on.
If you were to use a TransformEventValues (TEV), you could transform every occurrence of the Source value !On1 in all Sounds to the left of the TEV to the expression
{(1 randExpGate: 5 s minDur: 3 s maxDur: 15 s dutyCycle: 0.75) seededWith: 0.176}

That would "press" all occurrences of the !On button wherever it occurs. I would make the TransformEventValues the rightmost Sound (to the right of your InterpolatePresets).
Yes! We are getting there. Just some tweaking left.
I need to know the action of each command in the equation since the !On1 is sending both the on and off message to the On1 button. That means that there needs to be time between the off and the next on for fades.

I will try to send the sound again. This time zipped.
Maybe try reducing the duty cycle to 0.5 and setting the minimum time between gates to 12 s (since the ADSR attack and decay times are random numbers between 4-6 s, there are times when 12 is required for the attack plus the decay). For example:

{(1 randExpGate: 12 s minDur: 12 s maxDur: 32 s dutyCycle: 0.5) seededWith: 0.176}
I used a SoundToGlobalController to generate the timing of the gates. This is working perfectly now.

Thanks for hanging in there with me.