STKBandedWG

STKBandedWG — STKBandedWG uses banded waveguide techniques to model a variety of sounds.

Description

This opcode uses banded waveguide techniques to model a variety of sounds, including bowed bars, glasses, and bowls.

Syntax

asignal STKBandedWG ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5[, kc6, kv6[, kc7, kv7]]]]]]]

Initialization

ifrequency -- Frequency of note played, in Hertz.

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

Performance

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 7 controller numbers and values that work for STKBandedWG are:

  • kc, kv -- 2, pressure of bow.

  • kc, kv -- 4, motion of bow.

  • kc, kv -- 11, speed of low-frequency oscillator.

  • kc, kv -- 1, depth of low-frequency oscillator.

  • kc, kv -- 128, velocity of bow.

  • kc, kv -- 64, striking of bow.

  • kc, kv -- 16, instrument presets (0 = uniform bar, 1 = tuned bar, 2 = glass harmonica, 3 = Tibetan bowl).

[Note] Note

The code for this opcode is taken directly from the BandedWG class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here: https://ccrma.stanford.edu/software/stk/classes.html

Examples

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

Example 737. Example of the STKBandedWG opcode.

<CsoundSynthesizer>
<CsOptions>
; 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 STKBandedWG.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

instr 1

ifrq	=	p4
kblw	line	p5, p3, p6
kenv	line	1, p3, 0

asig	STKBandedWG cpspch(ifrq), 1, 2, p5, 4, 100, 11, 0, 1, 0, 64, 100, 128, 120, 16, 2
asig	=	asig * kenv				;envelope
	outs asig, asig
endin

</CsInstruments>
<CsScore>

i 1 0 10 5.00 100 0
i 1 2  8 6.03 10 .
i 1 5  5 7.05 50 127

e
</CsScore>
</CsoundSynthesizer>


Credits

Author: Michael Gogins (after Georg Essl)
Irreducible Productions
New York, NY

New in Csound version 5.11