STKStifKarp — STKStifKarp is a plucked stiff string instrument.


STKStifKarp is a plucked stiff string instrument. It a simple plucked string algorithm (Karplus Strong) with enhancements, including string stiffness and pluck position controls. The stiffness is modeled with allpass filters.


asignal STKStifKarp ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3]]]


ifrequency -- Frequency of note played, in Hertz.

iamplitude -- Amplitude of note played (range 0-1).


kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8 -- Up to 8 optional k-rate controller pairs for the STK opcodes. Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 3 controller numbers and values that work for STKStifKarp are:

  • kc, kv -- 4, pickup position.

  • kc, kv -- 11, string sustain.

  • kc, kv -- 1, string stretch.

[Note] Note

The code for this opcode is taken directly from the StifKarp class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:


Here is an example of the STKStifKarp opcode. It uses the file STKStifKarp.csd.

Example 759. Example of the STKStifKarp opcode.

; Select audio/midi flags here according to platform
-odac     ;;;RT audio out
;-iadc    ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKStifKarp.wav -W ;;; for file output any platform

sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1

instr 1

ifrq	=	p4
kpos	line	p6, p3, p7				;Pickup Position
ksus	=	p5					;String Sustain

asig	STKStifKarp cpspch(p4), 1, 4, kpos, 11, ksus, 1, 10
	outs asig, asig


i 1 0  2  5.00 0  100 100
i 1 +  40 5.00 127 1  127
i 1 10 32 5.00 127 1  10


Author: Michael Gogins (after Perry Cook)
Irreducible Productions
New York, NY

New in Csound version 5.11