JASIKhorlo

Khorlo

Karplus–Strong string synthesiser · VST3 / AU / Standalone · User manual

Khorlo is a plucked-string synthesiser built around a standing cylinder. Eight strings stand on its surface, each at its own angle. Eight pluckers encircle it as fixed hoops, each at its own height. Nothing about the cylinder turns and you never spin anything by hand: each plucker has a contact point that travels around the cylinder at a rate you set, and every time that point crosses a string, it plucks it.

You play it from a keyboard. A held note sets the pitch and starts that note's own set of pluckers running; let go and they wind down. The rhythm isn't programmed — it falls out of eight rates running against eight string positions, so pluckers at different rates drift apart and meet again on their own cycle.

Start here. A short tour runs the first time you open Khorlo. It walks you through the six things worth knowing, inside the plugin, in about a minute. You can open it again whenever you like from ☰ › Getting started.

1 · The idea in one page

ObjectWhat it is
StringA real plucked string — a Karplus–Strong delay line with its own pitch, damping and physical character. Its Position is where it stands around the cylinder, which decides when in the loop it can be plucked. There are eight.
PluckerA hoop at a fixed height with one contact point travelling around it. Its Rate is how fast that point goes. There are eight, each free to run at its own rate — which is where the polyrhythms come from. Nothing is programmed; the contact points simply run at different speeds.
ExciterHow the string gets grabbed at the moment of contact. Most of the character of a sound comes from here.
VoiceOne held key. Each voice runs its own eight pluckers and owns its own eight strings, so a busy note can never cut off another note you're still holding.

A plucker at 2 Hz against eight evenly spread strings gives you sixteen plucks a second. Move one string's Position and you've moved one note in the bar. Give a second plucker a different rate and the two patterns drift apart and come back together on their own cycle.

Fast enough, and it stops plucking and starts bowing. Above roughly eight contacts a second on the same string, Khorlo crossfades from plucking into a bowed sustain — instead of decaying between contacts, the string sings continuously at its own pitch. It's fully bowed by about forty-five a second. This is the instrument's second voice, and Rate, Strength and AMP › Build are its controls.

The 3D view is the instrument

It isn't decoration. The strings really do move with what's inside the delay line, so you can mute the audio and still see what each one is doing. It only animates while a note is sounding, and it shows the loudest voice on each string. You can also edit straight on it:

P1 has no Offset and S1 has no Position, so those two aren't draggable in those directions — they're the references everything else is placed against. All four handles also accept MOD cables.

2 · Your first sound

  1. Play a note. Press PLAY in the top bar, hold a key on your MIDI keyboard, or use the computer keyboard — a w s e d f t g y h u j k is an octave from C. Nothing sounds until a note is held.
  2. In the right-hand column, click the S2 tab to switch on a second string. It sits at a different Position, so it lands somewhere else in the loop.
  3. Drag S2 › Pitch to tune it, and Position to move where in the bar it falls.
  4. In the left column, drag P1 › Rate. Everything speeds up or slows down together, because you changed the plucker, not a pattern.
  5. Click a different EXCITER shape at the top of the P1 card and listen to the attack change with nothing else moving.
  6. Now push Rate well up. Somewhere past a few revolutions a second the plucking smooths into a sustained, bowed tone.

3 · Pluckers — the P panel

Left-hand column. Eight cards, shown four at a time — the P1–P4 / P5–P8 tabs switch banks. Click a card's numbered tab to switch that plucker on or off; Shift-click to solo it.

An expanded plucker card
P1, expanded. Left to right: the four exciter shapes; Rate (its icon doubles as the loop / play-once toggle), Height, Strength; then the expanded half — Attack, and the exciter pad framed by its Hardness, Noise and Width sliders. The drawing in the pad is the exciter you actually have dialled in.
ControlWhat it does
RateRevolutions per second — how fast the contact point travels, and so how often it plucks. The slider runs 0.05 Hz to 64 Hz. Modulation can drive it far past the top of the slider, well into the audio range.
HeightWhere on the string contact is made, and it changes three things at once: the brightness of the excitation, where along the string it happens, and how heavily that string's highs are damped afterwards. High is bright and thin, low is dull and round.
StrengthHow hard it grabs. This is force and level: it opens the exciter's filter, drives the string's saturator, sets the bow's target amplitude, and scales the amplitude of each pluck.
OffsetWhere this plucker's contact point starts around the cylinder — its phase against the others. P1 doesn't have one; it's the reference.
AttackSoftens the leading edge of the excitation. In the expanded half.

Loop or once

The icon on the Rate row is a toggle. In loop the contact point runs for as long as you hold the note. In once it travels exactly one revolution and parks — one pass over the strings per note, which turns a plucker into a one-shot arpeggio.

SNC — free, tempo or linked

The small SNC tab beside each card cycles the rate mode. P1 toggles between two (free and tempo); P2–P8 cycle three (free, tempo, LNK).

The exciter

Four shapes across the top of every plucker card. They make more difference to the character of a sound than anything else here:

ShapeCharacter
ImpulseThe sharpest possible contact. Bright, immediate, most harmonics.
Half-sineRounder and warmer — a soft mallet rather than a pick.
ExpFast attack with a tail that decays into the string. Plucky, slightly vocal.
SawAsymmetric and buzzy. The most aggressive of the four.

The pad in the expanded half is an XY control: drag right for Contact Width — a wider contact rolls off the top end, like using a fatter pick — and up for Hardness. Right-drag anywhere in the pad for Noise, which adds grit to the contact without changing the string. The three slim sliders framing the pad are the same three values if you want to set them precisely.

4 · Strings — the S panel

Right-hand column, same layout mirrored, same tab and bank behaviour.

An expanded string card
S1, expanded. The expanded half is on the left: Stiffness, Brightness, Tension, Spread, Coupling. The main half on the right carries Pitch, Detune, Pan and Decay. S1 has no Position row — it's the reference the other seven are placed against.
ControlWhat it does
PitchSemitones, ±24, in whole steps. Every string is an offset from the key you played — including S1. There's no "base" string; the keyboard is the base, so the whole set transposes as you play.
DetuneA finer offset, ±1 semitone, added to Pitch. Small amounts across several strings are what turn a single note into an ensemble.
PanStereo position. Every string starts centred, so spread them yourself when you want width.
PositionWhere the string stands around the cylinder, and so when in the loop it can be plucked. This is the rhythm control. S1 is the reference and doesn't have one.
DecayHow long the string rings, up to about three seconds. It also sets how long the contact glows on the 3D view, so you can see the setting as well as hear it.

Expanded — how the string is built

StiffnessReal strings aren't perfectly flexible, so their overtones stretch sharp. A little gives you piano and metal. A lot gives you bell.
BrightnessHow fast the top end dies away compared to the fundamental. Low sounds like felt or wool, high like steel.
TensionPushes the string into saturation, so hard contacts bloom and bite the way an overdriven string does. It also bends the pitch: the harder the string is driven, the shorter it runs, so at high settings a loud note sags sharp as it decays.
CouplingGives the string a second body — a duplicate delay line alongside the first, cross-fed at the bridge. At 0 you have one plain string; turn it up and you get a doubled, shimmering one. It roughly doubles that string's CPU cost.
SpreadHow far that second body is detuned from the first, up to a semitone. It's what the two bodies beat against each other with — and it does nothing at all until Coupling is above zero.
Coupling and Spread are one pair. Neither is a stereo control and neither reaches other strings — both act inside a single string. Set Coupling first to bring the second body in, then use Spread to tune how fast the two beat.

5 · Gestures — the same everywhere

Every slider, knob and rail in Khorlo works the same way. Learn this once and it applies everywhere.

GestureResult
DragChange the value.
Shift-drag on a P/S sliderMove that property on all eight pluckers or strings at once, keeping their relative offsets.
Shift-drag elsewhereFine adjust — on the AMP and FILTER knobs, the exciter pad, the 3D handles, and arrow-key nudges.
Alt-dragSnap Position and Offset to eighths.
Double-clickReset. Middle for most things; the exciter sliders go to their neutral value instead.
Right-clickType an exact value.
Arrow keysNudge the last control you touched. Hold Shift for fine.
⌘ / Ctrl-dragOn a modulated control, adjust the modulation depth instead of the value.
Mouse wheelOn a tempo-synced or linked Rate, step through the divisions or ratios.

Right-click a tab

The sliders inside a card cover one property each. The tabs cover the thing as a whole, and they all answer to a right-click.

The context menu on a string's tab
Right-clicking the S1 tab. Rows that can't apply are shown greyed with the reason rather than hidden, so the menu doesn't change shape between uses.
Right-clickWhat you get
A numbered tab
(P3, S5 …)
Turn on/off, Solo, Copy, Paste, Paste to all, Lock, Randomise, Reset — for that one plucker or string.
A bank tab
(P1–P4, S5–S8)
The same ideas across the whole column: All on, All off, Only the first, Spread evenly, Randomise all, Unlock all, Reset all.
A MOD tabCopy, Paste, Clear destinations, Reset — for that modulator.
Paste to all keeps each card where it is. Everything travels except Position (strings) and Offset (pluckers), because those are what make the eight different from each other. Paste those over all eight and every string ends up at the same point in the loop — one pluck instead of a rhythm. Spread evenly on the bank menu is the quickest way to build a rhythm from nothing: it fans all eight an eighth apart.

Lock — two cards that stay the same

Two string cards locked to a third
S2 and S3 locked to S1. A locked tab keeps its own colour and gains a padlock, ringed in the colour of the card it follows — the glyph says it's locked, the colour says to which. Their Decay has followed S1's; their Position and Pitch have not.

Locking a card to another keeps them matched from then on. Change either one and the other follows, so a locked pair behaves like one control with two handles. Right-click a numbered tab and choose Lock to…; a padlock appears on the tab, and hovering it tells you which card this one is following.

What doesn't travel is what makes each card its own:

A locked card can't be locked to, so links stay one level deep and there's no chain to untangle. Unlock is in the same menu, and Unlock all on the bank tab clears the column.

6 · Modulation — the MOD panel

Eight modulators sit along the bottom. Six are shapes you draw. MOD7 is fed by the four macro rails down the sides of the window, and MOD8 by how you play — note, velocity, mod wheel, pitch wheel, aftertouch.

The MOD panel
MOD1, with two destinations. Slots 1 and 2 are routed; the ring beside each is its amount and the + is its polarity. The envelope is drawn directly. On the right, the mode, shape and length, then the per-voice filter.

Assigning one — drag, don't hunt

There's no destination list to search through. Press on a MOD tab and drag it onto the control you want it to move. Anything you can hit lights up as you drag; let go and the routing is made. It works on the P and S sliders, the exciter pad, the AMP and FILTER knobs, every effect knob, the master Release, and the four handles on the 3D view.

Modulation shown in a slider's gutter
Reading a modulated control. The black line is how far the modulation can push it; the coloured mark inside is where it is right now. Pan here is bipolar, so its reach runs both ways from the current value.

Each MOD holds up to six destinations, each with its own amount and polarity: + pushes up from where you set the control, pulls down — the exact mirror — and ± swings both ways around it. To remove a routing, drag its amount to zero or clear the slot from the MOD's destination list.

Shapes and modes

The big display is the shape, and you draw it directly: drag a node to move it, drag between two nodes to bend that segment, double-click to add a node, Alt-click a curve to straighten it. The mode menu decides how the shape gets used:

TriggerRuns once per note, at the shape's own length.
LoopFree-running LFO — cycles continuously, tempo-syncable.
EnvelopeHolds at a node while the key is down, then plays the rest of the shape when you let go. Right-click a node to make it the sustain point.
One-shotPlays through once and stops, ignoring key-up.

The shape menu has the usual starting points — Ramp, Saw, Triangle, Sine, Square, Pulse, Exp, ADSR — and you can save your own, which then sit alongside them.

Macros, whole-pattern targets, and modulating the modulators

The four rails M1M4 at the edges of the window are plain 0–1 controls that do nothing on their own. They feed MOD7, so a rail does whatever you route it to. One knob for a whole rig, if you want it.

Some destinations act on all eight at once rather than on one card: Plucker Spread and String Spread fan the whole set out from their current positions, and Plucker Random and String Random scatter them. Routing a MOD to one of those is the only way to modulate the rhythm as a shape rather than one note in it.

A MOD can also target another MOD's amounts or its rate — that's how you get an envelope that opens up an LFO, or one macro that deepens everything at once. The six numbered rings and the rate readout are drop targets like anything else.

Routing into a MOD you can't see. The panel only ever shows one modulator's slots. While you're dragging a cable, hover over another MOD's tab and hold still for a moment — that tab opens mid-drag, and you can drop onto its rings without letting go. A MOD dropped on itself is refused.

7 · Amp, filter and effects

Bottom right, two tabs.

Direct / FX OutA dry/wet split around the whole effects chain, not two output stages. Direct is the untouched signal tapped before the chain; FX Out is the chain's output. The defaults — Direct off, FX Out full — give you a plain insert.
Attack / ReleaseThe master amplitude envelope for every voice.
VelHow much key velocity scales the contact. At zero, playing hard changes nothing.
GlidePortamento. It retunes the strings while they ring, so a legato slide is a real glissando rather than a new attack.
BuildNot an amp envelope — it sets how quickly a bowed string swells to full once it's being driven fast enough to bow. Instant at zero, a slow swell at one. It does nothing at ordinary plucking rates.
VoicesHow many keys can sound at once, 1 to 8. Each voice owns its own set of strings. The mode menu is Poly, Retrig or Legato.

The FILTER tab is one filter per voice, so each note is shaped on its own instead of the whole mix at once. Three models (Clean, DMF, Hybrid), three shapes (LP, HP, BP), 12 or 24 dB. Cutoff and Resonance take modulation. There's no dedicated filter envelope because any MOD can be one.

The EFFECTS tab is the output chain: Chorus, Compressor, Delay, Saturation, Equalizer, Filter, Flanger, Phaser and Reverb. Drag a strip to reorder it, click its dot to bypass, and every knob takes modulation.

8 · Presets

The PRESETS tab browses by folder and tag, and the arrows in the top bar step through them without leaving the instrument. SAVE stores what you have now. INIT puts every panel back to its startup defaults, which is a clean place to build from. A preset carries the whole instrument, polyphony included, since a dense patch may need more voices than a sparse one.

9 · Keyboard

a w s e d …Play notes (an octave from C)
SpaceHold / release a test note
1 – 6Select plucker
Shift + 1 – 6Select string
[   ]Previous / next MOD
ArrowsNudge last control
Shift + arrowsFine nudge
⌘Z / ⌘⇧ZUndo / redo
EscClose menu or clear selection

10 · If something sounds wrong

No sound at allNothing sounds unless a note is held — play one first. Then check that at least one plucker and one string are switched on, since a plucker with nothing to reach makes no sound. Then AMP › FX Out.
It won't stop ringingYou're in the bowed regime: the plucker is fast enough that the string is being sustained rather than plucked. Lower Rate, Strength or Brightness, or raise Build so it takes longer to swell.
A MOD does nothingIts amount is probably still at zero, or it's in Envelope mode with no note held. The line in the destination's gutter shows you the reach.
Spread does nothingIt only acts on the second body, which doesn't exist until Coupling is above zero.
Pitch drifts when I play hardThat's Tension — it shortens the string as it's driven. Lower it if you want stable tuning.
Muddy on chordsTurn Coupling down, spread the Pan, or shorten Decay. Coupling doubles every string's delay lines, so it thickens quickly.
CPU too highLower the voice count in AMP, turn Coupling down, and turn on Performance mode in the ☰ menu, which freezes the animated background and lightens the shading.