First time here? Check out the FAQ!

Modulating parameters with amplitude and multing control signals

0 votes
Hi Kyma friends,

I've not had much time with my Kyma since KISS, but I am just now getting back to it, and have a few questions.

I'd like to use the amplitude from a samlpe to drive pitch volume and other parameters within a Kyma sound. I checked out the Amp Follower to Global Controller prototype, which seems to give me what I need, but I can't get the range right. The amplitude control signal that comes from the Global sound controller barely moves the Rate parameter more than 1/2 way. Meaning, if the rate scale is 0-1, I am maybe getting .300 at best. I tried putting a 12 dB boost before the Peak Detectoor module, it did not help. I also tried adjusting the range of Rate fader on the VCS, this did not help either. Any suggestions for getting the most of a control signal generated from an amplitude signal?

I'd also like to use this amplitude control signal to modulate multiple parameters in the VCS. Like !Rate !Freq !Level potentially on different samples. I thought I could do this with Replicator, but it seems I don't know enough about this module, and to my tired eyes last night, Replicator seemed exclusively for multing audio, not control signals.

I'd like to do the equivelant of a mult module in a modular synth. Send an LFO into a mult module, get 3 out that can be further attenuated, modified and routed independently.

Sorry for putting 2 different questions into one post. Hope everyone is well.

asked Nov 29, 2018 in Using Kyma by jason-wolford (260 points)
edited Dec 12, 2018 by jason-wolford

1 Answer

0 votes

Hi Jason,

You should try amplifying the output of the PeakDetector rather than it's input. You could do this by dragging and dropping a Gain Sound onto the line between the PeakDetector and the SoundToGlobalController.

The SoundToGlobalController (STGC) outputs the !Amp hotvalue. You can enter that hotvalue in any parameter else where in your sound flow. If you have an Oscillator in your flow you could enter "!Amp" into it's frequency parameter... although !Amp would have a range from 0 - 1 and you would want a larger range so you could enter something like:

!Amp * 6000 hz

In the frequency parameter and that would give you a range from 0 - 6000 hz.

You don't use "mults" for CV signals like you do in eurorack. You just type the hotvalue in the parameter you want it to affect.




answered Nov 29, 2018 by alan-jackson (Master) (8,710 points)
Thanks for the help Allen. Changing where I put the gain made a big difference.

How might I smooth out the intensity, attack and release of the peak level? The "!Attack" and "!Release" and !PeakGain controls have an effect on the modulation from the STGC output, but they are very coarse when attempting to tune a sound.

Is there can throttle the STGC output or filter an "average" value within a limited range so that things like frequency or level modulated by the PeakDetector don't sound so "jumpy".

Feel free to refer me to a example Kyma sounds or sections of the manual that cover this. Thanks,

There's lots of ways you can do this.

First it's useful to think about the two different kinds of signals going on here. The lines that connect the Sounds (modules) in your flow diagram carry audio signals. These are updated at the full sample rate of the paca.

When you pass values around using HotValues like !Attack or whatever your STGC outputs, these are CapyTalk expressions and are evaluated at 1kHz. They are like kyma's equivalent of CVs.

What the STGC is doing in your flow is essentially converting an audio signal into a CapyTalk CV signal. When you link the audio output of a Sound like the PeakDetector into the value parameter of your STGC (using copy and paste) you get that rectangular variable followed by an "L". It's the L that's doing the downsampling from full sample rate to 1KHz.

The reason I mention all this is there's two approaches you can take to tuning the modulation effect you're after. You can do it in the audio domain (before the downsampling in the STGC) or in the CapyTalk domain after the STGC conversion.

In the Audio domain, there's a prototype called "AveragingLowPassFilter". This could smooth out the signal coming out of the PeakDetector and you can drag and drop that sound on to the signal flow between the PeakDetector and the Gain Sound. Some filters change the amplitude of the signal so you might want to put an oscilloscope Sound after the filter to see how it affects the signal and adjust the Gain if necessary.

There is also the ScaleAndOffset Sound which again works in the Audio domain. You can use this to change the range of what's coming out of the PeakDetector.

But you can also do these kinds of operations using CapyTalk in the "CV" domain.

For instance in the Value parameter of an STGC you could put something like:

    !myModulationSource vmax: !MinimumValue

And this would make the output of the STGC never less than the !MinimumValue which you could control with a fader on the VCS.

For reasons I don't understand I couldn't use vmax directly after the [LFO] in the STGC. This would cause an error in the value field:

    [LFO] L vmax: !MinimumValue

(I've just asked the question why this doesn't work here:
But you can get round that using two STGCs. The first one just has in its Value parameter:

    [PeakDetector] L

and lets say it outputs a HotValue called !AmpMod

Then add a second STGC (you can do that by dragging and dropping another STGC on to the tiny plus sign on the signal flow line coming out of your first STGC and kyma will ask you if you want to add it to a mixer, which you do). In the second STGC put this in its Value field:

    !AmpMod vmax: !MinimumValue

Or if you want more control you could do something like:

    ((!AmpMod vmax: !MinValue) vmin: !MaxValue) * !Scaling

which would give you faders for !MinValue, !MaxValue and !Scaling.

But you might want to change the shape of the response curve coming out of PeakDetector. Again you can do this in the Audio domain using a Sound like InputOutputCharacteristic. Or you can do it in CapyTalk at the lower sample rate using "into:" (which you can look up using the CapyTalk help by pressing Ctrl-H).

You also said that !Attack and !Release are too course. Kyma's arithmetic is 32 bit... or is it 64 bit? Well anyway it's a bunch of bits! It's very precise. But the default range of a fader is often 0 - 1. You can change this range. If everything you're interested in is between 0.0001 - 0.0002 you can change the range of the fader or you can divide by 10,000 in your CapyTalk expression and keep the fader with its default 0 - 1 range, which is often easier. Or you can change to using logarithmic faders which give you more detail at the bottom end but note you can't do logarithmic from zero. So you could change the fader to go from 1 to 10, make it logarithmic then subtract 1 and divide by 10 in your CapyTalk.

Hope that helps.
Another pattern you can use for finer control would be to add two HotValues together. For instance for the Attack field in the PeakDetector you could put this CapyTalk expression:

    !Attack + (!AttackFine / 100)

This would create two faders on your VCS, !Attack and !AttackFine, both with a range from 0 - 1, but !AttackFine is divided by 100 so gives you fine tuning control of the Attack parameter.
Thank you once again for your detailed and helpful replies. I will have some time to spend with the Kyma over the holiday break. I'll work through your suggestions and report back how it goes.