Outersect Modeler
for Kyma X / Capybara 320


The Outersect Modeler for Kyma is a set of microcoded sounds that allow the Kyma user to realistically emulate certain real-world instruments. The modeler allows the user to emulate the expressive characteristics and modes of acoustic instruments by manipulating a small number of simple parameters that relate directly to the actions of real-world players. Many of these sounds seem so natural that they can fool the ear. Others do not sound natural at all. All the sounds, however, behave the way natural instruments behave and can be expressive in all the same ways that acoustic instruments are expressive.


Demos      Online Manual       Ordering Information



Audio Demos

All single-instrument demos are recorded directly from the Kyma digital outputs
@ 44.1 kHz and are free of effects. Any of these demos
will sound more "real" when a small amount of reverb is added,
because real instruments are almost never heard completely dry.

The "musical context" demos (Pachelbel, Mary's Lamb, ...) have some effects added.

Plucked Strings

The first demo shows the timbral variations possible using the plucked string model. The entire demo is played on a single note on the keyboard. Realtime controllers are used to change timbre by bending the pitch, changing the pluck position, opening the string at one end, dampening the string, making the string more dispersive, and jumping to various harmonics.
One Note, One Minute (pluck string demo)

Here is a more musical plucked string demo.
Picking Harmonics

The modeler convincingly replicates the iconic sound of the lead electric guitar. The modeled guitar allows precise control of harmonic feedback that even the best guitarists cannot attain.
Most of this demo is a single held note with changing harmonic feedback.
Electric Lead Guitar

Unlike a real guitar, the modeler does not require a loud distorting amplifier for feedback. It can produce exactly the same controlled harmonic feedback with a completely clean sound.
Clean Lead Guitar


Bowed Strings

The modeler also replicates bowed strings. This demo plays the same short phrase three times using the modeled violin. Each time, the tone gets "squeakier" and "tweakier" - the first time through the phrase, the tone is similar to a classical violin; the second time, it is perhaps more like a gypsy violin; the third time, the tone is unnaturally squeaky. This demonstrates the model's control over interesting tonal "mistakes" ...
Violin Tweakiness control

Is the modeler good enough for trying out string arrangements without string players?
Here's a modeled string quartet playing Pachelbel's Canon in D ...
Outersect Modeled String Quartet performs Pachelbel's Canon in D

This is a modeled bowed psaltery ...
Bowed Psaltery


Flute

The flute model behaves very realistically, jumping harmonics exactly the way a real flute does. At the beginning of the demo, a single held note jumps thru the harmonic series.
The rest of the demo is played on five notes within a single octave on the keyboard, exactly like a pentatonic flute. Any notes beyond that are created by jumping harmonics.
Harmonic Jumping Flute

The ability to jump harmonics realistically is also key to creating a good "chiff" at the beginning of a percussive flute sound, because the "chiff" is actually a quick sweep down thru part of the harmonic series. This demo exagerates and slows down a flute chiff so you can easily hear what's really happening ...
Flute Chiff

This demo showcases the harmonic-jumping flute in musical context.
The flute line was played live on keyboard using only four notes in one octave
- anything beyond that was created by jumping to overtones using realtime control.
Early in the demo I play an old familiar tune on those four notes.
Everything in the demo is modeled except for the short vocal at the beginning.
Cross-Eyed Mary had a Little Lamb

Reeds

The modeler also includes reed simulations.
This demo models a reed instrument with a cylindrical bore similar to a clarinet.
Clarinet

This demo features a reed model with a variable bore
capable of modeling saxophones & other instruments.
The same phrase is played four times with increasing breath pressure.
The tone starts out delicate and gets progressively ruder.
The whole thing then repeats with a different bore setting.
Rude Reed

Here, warts & all, is a modeled reed playing "Yakety Sax".
This is necessary to balance the Pachelbel.
This one is completely dry, a little reverb will make it sound more natural.
Yakety Sax


Hammered Strings

The modeler also includes a hammer simulation.
Hammer Dulcimer

Tine Piano (Rhodes)



Kyma Interface Classes - Online Manual


StringTine


StringTine

Simulation of a "string" or a "tine".

A "string" is a resonant object bound at 2 ends,
like a guitar or violin string.

A "tine" is a resonant object bound at only one end,
like the tines on a Fender Rhodes electric piano.

Frequency
Tuning, in hz or seconds

Position
Input position on the string or tine.
Range: 0 < position < 1.0
For a string, position is (almost) symetrical around 0.5:
position 0.75 sounds (almost) the same as 0.25.
For a tine, positions near the open end (1.0)
sound different from those near the closed end (0.0).

Harmonic
Position for harmonic damping
0.0 < Harmonic < 1.0
For best results use a low integral fraction (1/2, 1/3, 1/4 ...)

HarmonicDamping
Amount of harmonic hamping
-1.0 <= HarmonicDamping <= 1.0
Typically low (0.1, 0.15)

SlewLimit
Limit on speed of frequency change,
in units of samples/sample.
For example at 0.1, frequency change is limited to 1/10th of a sample per sample.
Range: 0.0 <= slewLimit <= 1.0
0.0 = minimum possible slew limit of 1/256th sample per sample.
1.0 = slew limiting turned OFF, frequency changes immediately.

Reset
Reset immediately silences the StringTine
and instantly jumps to the target frequency regardless of SlewLimit.
!KeyDown will work well for plucked string sounds.

Open
is the stringtine open at one end?
(Is it a string or a tine?)
0 = string, 1 = tine

DecayLevel
Input gain is reduced by DecayLevel in DecayRate seconds
if Damping and Dispersion are set to 1.
Range: 0 <= DecayLevel <= 1

DecayRate
Input gain is reduced by DecayLevel in DecayRate seconds
if Damping and Dispersion are set to 1.
Range: 0 < DecayRate <= N seconds

Damping
Lower values reduce high frequency content.
Range: 0 <= Damping <= 1

Dispersion
Lower settings reduce harmonic content and add inharmonic content.
Range: 0 <= Dispersion <= 1

Input
Audio input to the string - the pick, bow, hammer, 
or other sound which the string is struck.

Input is stereo - left input is normal input,
right input goes to the positioning system.

If both sides are the same (normally the case),
the StringTine does normal positioning,

It is also possible to bypass or otherwise manipulate
the positioning system by panning the input or sending
different signals to the left & right inputs.

Wavetable
Name of the wavetable - should be unique for predictable results.

TableSize
Size of the wavetable - determines lowest possible frequency.




Pick


Pick
Pick is an Attack-Decay envelope with parameters
optimized for emulating a plucked string impulse.

Expmix
Mixes a linear with an exponential version of the envelope.
-0.5 <= expmix <= 1
-0.5 = inverse exponential envelope (i.e. rounded)
0 = linear envelope
1 = exponential envelope (i.e. pointy)

Position
The pick AD envelope shape varies continuously
from downward sawtooth at position 0.0,
to triangle at position 0.5,
to upward sawtooth at position 1.0.
0.0 <= position <= 1.0

Trigger
Non-zero value triggers the envelope
The envelope will not retrigger until it completes its cycle.
Trigger must go to 0 and become non-zero again to retrigger the envelope.
!KeyDown works well for this

Frequency
The pick AD envelope takes frequency/2 seconds to complete its cycle.

Scale
Scale factor on amplitude of pick envelope
-1 <= scale <= 1



Bow

Bow

Bow simulates a violin bow - a device for continuously
stimulating and damping a StringTine.

Bow should be used as an input to a StringTine or Tube
running on the same processor
(use ForcedProcessorAssignment to ensure this),
and the WaveTable and Tablesize should be the same
as the StringTine's.

Velocity
Bow velocity - how fast is the bow moving across the string.
Range: 0.0 <= Velocity <= 1.0

ScaleVelocity
Scale Velocity to Pressure. Leaving this on creates a sweeter sound
at greater velocity ranges. Turning it off creates a harsher sound at
higher velocities.
Range: 0 = off, non zero = on

Damping
How much does the bow damp the string when it is not stimulating it.
Range: -1 <= Damping <= 1

Rosin
Acts like rosin in that lower values are "squeakier".
A value of 1/2 emphasizes the 2nd harmonic, 1/3 the third, ...
This parameter could also be considered analogous
to the width of the bow.
Range: 0.0 <= Rosin <= 1.0

Pressure
bow pressure - How hard is the bow pressing into the string.
Only positive (i.e. unipolar) pressure is accepted
- negative pressure is the same as zero pressure.

Wavetable
This must be the same name as the wavetable of a
StringTine running on the same processor >
(use ForcedProcessorAssignment to ensure this).

TableSize
This must be the same size as the wavetable of a
StringTine running on the same processor.



Hammer

Hammer

Hammer simulates the action of a (felt, piano-type) hammer
hitting a StringTine.

Hammer should be used as an input to a StringTine running on the
same processor  (use ForcedProcessorAssignment to ensure this),
and the WaveTable and Tablesize should be the same as the StringTine's.

Trigger
When the trigger increases in value,
the hammer will strike.
!KeyDown works well.
!KeyDown * !KeyVelocity creates a velocity-sensitive hammer.

Hammer
How difficult is it for the string to throw back the hammer?
Range: (easy) 0 >= Hammer >= 1 (difficult)
Warning: values close to 1 can "break" the string.

Wavetable
This must be the same name as the wavetable of a
StringTine running on the same processor
(use ForcedProcessorAssignment to ensure this).

TableSize
This must be the same size as the wavetable of a
StringTine running on the same processor.


Tube


Tube

Tube is a StringTine-compatible one-shot delay with coloration -
a StringTine without built-in decay or positioning.
Feedback (decay) can be added using a StringReader.

Tube is useful for certain types of reed, horn,
and bowed-string simulations.

Frequency
Tuning, in hz or seconds

Damping
Lower values reduce high frequency content.
Range: 0 <= Damping <= 1

Dispersion
Lower settings reduce harmonic content and add inharmonic content.
Range: 0 <= Dispersion <= 1

SlewLimit
Limit on speed of frequency change, in units of samples/sample.
For example at 0.1, frequency change is limited to 1/10th of a sample per sample.
Range: 0.0 <= slewLimit <= 1.0
0.0 = minimum possible slew limit of 1/256th sample per sample.
1.0 = slew limiting turned OFF,  frequency changes immediately.

Reset
Reset immediately silences the Tube
and instantly jumps to the target frequency regardless of SlewLimit.

Input
Audio input to the tube

Wavetable
Name of the wavetable - should be unique for predictable results.

TableSize
Size of the wavetable - determines lowest possible frequency.




StringReader


StringReader

Reads a StringTine (or Tube) at the feedback point

Scale
Feedback level is scaled by this amount

Input
Input sound is passed thru at unity gain, mixed with scaled feedback

Wavetable
Name of the StringTine (or Tube) wavetable this sound reads.
Use ForcedProcessorAssignment to ensure that the StringTine and the StringReader run on the same processor.

TableSize
Size of the StringTine (or Tube) wavetable this sound reads.



StringTracker


StringTracker

Tracks the pitch of a StringTine (or Tube) in seconds per cycle (inverse of hz).

Wavetable
Name of the StringTine (or Tube) wavetable this sound tracks.
Use ForcedProcessorAssignment to ensure that the StringTine and the StringReader run on the same processor.

TableSize
Size of the StringTine (or Tube) wavetable this sound tracks.


Utility Classes

The remaining classes do not require any microcode.
Anyone who knows what to do could build them in Kyma.
They are very handy when doing physical models, though.




Pickup


Pickup

Pickup positionalizes string output the same way a pickup on an electric guitar does.

Position
Position of the pickup.
Pickup can be completely off the string in virtual instruments.
Range: 0 <= Position <= 1
0 = on bridge; 1 = lowest frequency.

Level
Intensity of the pickup effect
Range: 0 <= Level <= 1

Input
The sound being positionalized.

LowestFreq
Lowest frequency possible for the pickup, in hz.


IR Body


IR Body

IR Body simulates an instrument body using an impulse response.
IR Body uses the crossfilter "under the hood".

Pad
Gain reduction on input before it is fed to the crossfilter

Level
Gain reduction on output level after the crossfilter.

Body
Mix of unprocessed input with crossfilter output.
Range: 0 <= Body <= 1
0 = completely dry input; 1 = completely crossfiltered input;

Input
The sound being passed thru the IR Body.

Duration
Duration of the crossfilter impulse response.
The shorter the duration, the less processor power required.



Ordering Information

The price of the package is $200 US.

The package includes many example sounds,
including all sounds used to create these demos.

To order, send email to: modeler@outersect.net