In this second tutorial, we look at mixing Sounds and controlling them from the Virtual Control Surface.

Here is the accompanying Kyma Tutorial Sound file. In the text below, I am assuming you have completed Tutorial A, Part 1.


Now that you have created three separate Sounds with separate gating, in this tutorial you will learn how to mix them together.

Double click the Mixer icon to open its contents. This is a primitive but amazingly useful mixer in that it can accept any number and kind of inputs mixed into left and right outputs which, in this case, will be both the same mono signal.

TASK #1: Click/Drag each of the following from Tutorial A Sound files into the Mixer’s Input parameter field:

  • 1A. Answers. Triggering and gating samples from MIDI keyboard
  • 1D: (Answers) Gate the Gate (trombone) with check box
  • 1E: Answers. Gate the Gate (flute) with check box

Screen Shot 2016-01-14 at 6.11.24 PM

You may need to expand the Mixer Inputs area in order to have space for the inputs (or you can reduce the size of the icons by clicking in the signal flow area and press Ctrl+[). In the case of the sax sample (1A. Answers. Triggering and gating samples from MIDI keyboard), bypass the Annotation by dragging directly from the ADSR Drag&Drop. Now you should have a mixer with 3 inputs plus the existing Annotation which contains this text. (See 2A. (Answers) Mixing Sounds for an example of how it should look at this point.)

TASK #2: Play this Mixer (mouse click – space bar as always). You should hear two of the three inputs sounding, with the third (sax) sounding when a keyboard note is pressed. Find the “right” and “left” widgets and move their faders to see how they work with the outputs. But the VCS will be a bit disorganized. Our next task will be to clean up the VCS so it can be easily used to control your Sounds. Sure, you could leave it as is, but what if you have a VCS with many dozens of widgets — a situation which is very common in Kyma. Then the cleaning up of the VCS becomes a matter of survival. That will be the topic of the next tutorial.


Now, play the complete Sound from the Mixer (rightmost Sound module). You will note some confusion in the VCS which must be cleaned up. If there is embedding, best to eliminate it for clarity in this early stage. And each hot value or expression must be individualized for each of the three sample groups in order to have each be controlled independently.

TASK #1: At the top right of the VCS find the “gear” menu enclosed in a box.

Screen Shot 2016-01-14 at 6.15.58 PM

Click the gear menu and select: Fit widgets to Window —> Maximum Size. This will allow all widgets to be displayed where you can see them. Now find an Attack widget and move the fader with your mouse. Notice that other Attack widgets on the page are moving along with it. QUESTION: Why is that? … ANSWER: Because the same exact spelling of the !Attack hot value is found in all three sub-Sounds. Open them and see.

TASK #2 – EMBEDDING: Now, back to the VCS. In that same gear menu, select Remove all embedding, and in the next dialogue, select Yes. Now you see far fewer widgets, right? What was happening was that the embedding process was duplicating the widgets but they were all still connected together by virtue of having the same name. So, the next task is…

TASK #3 – INDIVIDUALIZING ALL PARAMETERS: Part of the problem of VCS confusion is that you may be using the same expressions for more than one sub-sample area (such as !Attack, !Release, !Scale, !Interval, etc.). And so, in the VCS, they might appear as just one widget representing all three Sounds. So you need to go to each Sound (not in the VCS) and enter a unique name for each hot value so you can differentiate them from each other and control them independently. One suggestion would be !Attack1, !Interval1, etc., for Trombone sub-Sound, and !Attack2, !Interval2, for the Flute sub-Sound.

Another alternative is to use the Prefixer Sound. If you drag/drop a Prefixer to the right of each of your Inputs, it will label each of the controls with that Sound’s name (or whatever you specify in the Id field) as a prefix, thus clearly differentiating the faders. By adding a prefix, rather than a suffix, your widgets will group together alphabetically if you do a Clean up in the VCS.

Widget individualization is often helpful whenever you make a new Sound. Now play the main Sound again from the Mixer and note that you will have many more widgets in the VCS.

You may not hear anything at all, even if the !OnOff check boxes are checked. This may be because the !Interval values are below the MIDI keyboard range. They should all be at 60, (middle C) but you can do this in step 4 below.

TASK # 4 — ARRANGING WIDGETS: In the VCS editor, arrange each sample group in order, from top to bottom and left to right. One way to do this within each group would be to have gating and envelope material first, pitch controls second, miscellaneous controls third, and output/panning controls last. Do this for each of the three sample groups. Play the Sound from the Mixer and note how much easier it is to see what is going on. This housecleaning is even more important when you are dealing with dozens (or even hundreds) of widgets.

Go on to the “Answers” part of #3 to see one possible iteration of a VCS cleanup.

TASK #5 — WIDGET VALUES: Go back to your own #3. Go over each VCS widget and make sure the values are proper. Generally they need to be 0 to 1 with a grid of 0. If you are dealing with MIDI note numbers (which is easiest since it relates to the keyboard) in the frequency parameter field, the values need to be 36 to 96 (to reflect the MIDI notes on the keyboard) with a grid of 1.

On page 403 of Kyma X Revealed, you will find a table of all the special widget value defaults that are automatically associated with certain hot values, such as !Freq. So, in this example, wherever you used !Interval, the VCS will automatically give it a range of -24 to + 24. In the VCS editor, you can select the two interval faders and change their range to 36/96 with a grid of 1, to reflect the range of MIDI note numbers of a small MIDI keyboard.

Note that you can change the range of multiple widgets at the same time. For example, you can select all the “Interval” widgets, even if they have differing suffixes or tags; in the VCS editor, you will see the “more than one” designation. Here are the ranges and grids for each of the widgets in this example:

BPM: 0 – 200 grid 0
OnOff (instrument): 0 – 1 grid 1
Attack: 0 – 2 grid 0
Decay: 0 – 1 grid 0
Sustain: 0 – 1 grid 0
Release: 0 – 4 grid 0
Interval: 36 – 96 grid 1
Scale: 0 – 1 grid 0
Rhythmic Trigger freq: 0 – 1 grid 0
Left/Right Out: 0 – 1 grid 0

TASK #5 — COLORIZING: With the VCS editor open, select a widget and go to the Options menu, hovering over “label color” and selecting a color for that widget (or any number of widgets that you have selected). Present a different color for each of the three sub-Sounds in the mixer.

TASK #6: Now play the Sound and enjoy manipulating the various widgets which are clearly displayed in the VCS.

WHY AM I NOT GETTING A SOUND? After making a change, you may sometimes encounter a situation where you are not getting a sound. Some possible reasons:

  • Frequency is not in the audible range, typically between 36 – 96 nn or 200 – 6000 hz.
  • Sound is not properly gated. Look in the Gate parameter field and make sure there is something positive gating the Sound.
  • Attack of an amplitude envelope may be too slow for samples that have a short duration.
  • Output or input levels are too low.
  • The default range of most VCS widgets is 0 – 1. In some situations, you may want a different range. To change the range, Ctrl+click on the widget and select Change Range from the menu.
  • Check the output stages after the Pacarana to make sure you have sound.

Here I have also colored each group of widgets to reflect their derivation.


For Tutorial #4 you will need a standard MIDI keyboard. Alternatively, you could use one of the following:

  • Fake keyboard from the Tools menu
  • The keyboard or Tonnetz tab in KymaControl for the iPad
  • The eraser end of the pen on a Wacom tablet
  • An MPE controller such as the LinnStrument or Sound Plane
  • A Continuum Fingerboard from Haken Audio

Or software that can send MIDI note events to Kyma.

TASK #1: First, open both of the MIDIVoices by double clicking on them. Notice that each has its own note range, with four voices (Polyphony) allocated to each side. Note how this is done, with individual voice number allocations (Low Pitch, High Pitch for each). Now, there is still lots of work to be done before this is usable, so here is what you need to do: Play the Sound and try some notes on the keyboard. Note that, although there are separate keyboard areas for each Sound, there is no way to stop the Sounds. Note also that each Sound’s range may not be ideal. So…

TASK# 2 — GATING ON/OFF: Drag from the Prototypes separate envelopes (ADSR Drag&Drop) in each of the two Sample pathways. Since they will be controlled by the MIDIVoice, they need to be placed just to the LEFT of the respective MIDIVoice Sounds (but not on the + with circle). Note that the default gating is the standard !KeyDown in all Gate parameter fields. This is what we’ll use to gate the Samples. Just the one Gate !KeyDown hot value suffices for the whole keyboard range between two samples.

Screen Shot 2016-01-14 at 6.22.15 PM

TASK #3 — PROPER FREQUENCY RANGE: Each sample’s frequency has been set up to be governed by the standard !KeyNumber nn. Make this more usable by adding the !Interval hot value to this frequency expression, remembering to put the nn (note number) at the end of the expression. Would you use multiplication or addition between the two hot values? You can’t just place them there without some math interaction as per Capytalk rules. Would you also use a parenthesis for clarity in this field? How?

When you have arrived at solutions to these tasks, go the #4A Answers Sound to check your efforts.


Note here in the samples and ADSRs that there are three standard hot values used to represent the three keyboard controls: pitch (!KeyNumber nn), Gating (!KeyDown), and Volume (!KeyVelocity). Note also that none of these appear in the VCS.

!Interval does not default to 0 – 1, but is one of the few special names that has a particular set of values (that can be changed in the VCS), in this case, -24 to + 24. Later you can also use additional hot values in the Scale and Gate fields as well to complement the existing invisible standard keyboard names.

The parentheses are used in the Frequency field to clarify that both !KeyNumber and !Interval are added together as one unit to be governed by the nn (note number). The !Interval may also be a negative number, as you can see by opening the VCS edit window.

When you add a new hot value, you may have to adjust the VCS, including ranges, sizes, and placement according to function. Remember the gear menu in the VCS, which affords two quick and easy ways to clean up, namely:

  • Fit widgets to window (maximum size)
  • Clean up (specifying the desired number of columns)

Also remember you can edit widgets without opening the edit window by Ctrl+clicking on a widget and selecting from the popup menu. Widget type and change range are particularly relevant here.

Finally, as you work in the VCS and derive a workable set of values, remember to SAVE them as a preset by clicking on the camera icon. Then save the Sound itself using Ctrl+S.

The above two paragraphs should become standard practice with every Sound you edit or create.


The task here is to, on your own, split the keyboard into 4 parts, each with an individual sample and each accessible from the keyboard with its own best frequency range. Before you do this, a couple of preliminary steps.

TASK #1 — POLYPHONY: Reduce the polyphony in each MIDIVoice to 2 rather than 4, to simplify matters.

TASK #2 — SIZE REDUCTION: In the mixer, reduce the size of the Input parameter field icons. To reduce the sizes of the icons, click in an open part of this window and press Ctrl+[.

To adjust the signal flow pane, click the centerline between the signal flow and the parameter fields and drag that line to the right or left.

[Click/drag at the very rightmost part of the parameter field to expand the entire window. Double click in the white area of the signal flow pane to hide the parameter fields altogether.]

TASK #3 — CREATE TWO MORE MIDIVOICE CHANNELS: Do this by option-dragging one MIDIVoice and then the other MIDIVoice into the Mixer’s Inputs field, making a total of four. Select each MIDIVoice in turn and label them “MIDIVoice 1”, “MIDIVoice 2,” etc. To rename a MIDIVoice select it, then press Enter on your keyboard.

TASK #4 — REARRANGE THE ORDER: Rearrange the icons in the Mixer’s Input field to reflect the order you want and arrange the icons in the main window for ease of visibility. Both tasks are accomplished by dragging the icons to the desired places. You also may need to rearrange the main window icons as well. Make sure both sets of icons are in the same order.

[The order of the MIDIVoices in the Inputs field is left to right and top to bottom. To update the order of the MIDIVoices in the signal flow graph, click the Accept button at the bottom of the parameter fields.]

TASK #5 — SETTING KEYBOARD RANGE: Let’s not bother with finding new samples yet, and work on the MIDIVoice setup. First, each MIDIVoice needs to have its own keyboard range. They can overlap any way you like, but for now, let’s keep them discrete. In other words, each MIDIVoice needs to have its own low pitch and its high pitch. Perform these tasks now in each of the MIDIVoice Sounds.

Screen Shot 2016-01-14 at 6.27.08 PM

TASK #6 — CHOOSE YOUR OWN SAMPLES: Now you can choose ANY samples that you want (for example from the Music loops or Music tones folder in the Kyma Samples folder), so long as they can sustain (not short guitar, for example). Instructions for this can be found by hovering the mouse over the small icon in the Sample parameter field in the Sample Sound.

TASK #7 — RENAME HOT VALUES: Redo ALL hot values to reflect that they are from MIDIVoice 1, 2, 3, and 4, by adding suffix numbers to everything that shares the same hot value name (such as Attack1, Attack2, etc.). Do this, not in the VCS, but in the parameter fields of the Sounds themselves.

TASK #8 — REARRANGE WIDGETS IN VCS: Play the Sound from the mixer and readjust the VCS to conform to the basic arrangement you had before but with the two newly added MIDIVoices. Use the basic arrangement done in Tutorial #4A.

TASK #9 — ADJUST SAMPLE RANGES: When the VCS is in proper shape, go through each sample and make sure it is in the proper range by changing its !Interval in the VCS.

TASK #10 — SAVE PRESET AS DEFAULT: When it’s satisfactory, overwrite the default preset by control clicking on the camera.

TASK #11 — Save the Sound itself.

You’re done. Now check a possible solution in the #4B Answers Tutorial.


The reason for numbering the MIDIVoice Sounds was to differentiate them in the Mixer.

In the VCS, note that all attacks are at 0, in order to pick up the beginning of the sample. Also note the !Interval transpositions of each track in order to compensate for their placement on the keyboard.

In the MIDIVoice, note the values for polyphony, low pitch, and high pitch.

This ends Tutorial A.  Next up, Tutorial B, The StepSequencer.

Please send feedback to me at:

Tagged on:             

Leave a Reply