repluck
Physical model of the plucked string.
A user can control the pluck point, the pickup point, the filter, and an additional audio signal, axcite. axcite is used to excite the 'string'. Based on the Karplus-Strong algorithm.
Syntax
ares repluck iplk, kamp, icps, kpick, krefl, axcite
Initialization
iplk -- The point of pluck is iplk, which is a fraction of the way up the string (0 to 1). A pluck point of zero means no initial pluck.
icps -- The string plays at icps pitch.
kamp -- Amplitude of note.
kpick -- Proportion of the way along the string to sample the output.
krefl -- the coefficient of reflection, indicating the lossiness and the rate of decay. It must be strictly between 0 and 1 (it will complain about both 0 and 1).
axcite -- A signal which excites the string.
Examples
Here is an example of the repluck opcode. It uses the file repluck.csd.
Example of the repluck opcode. |
---|
| <CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o repluck.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 32
0dbfs = 1
nchnls = 2
instr 1
iplk = 0.75
kamp = .8
icps = 110
krefl = p4
kpick = p5
axcite oscil 1, 1, 1
asig repluck iplk, kamp, icps, kpick, krefl, axcite
asig dcblock2 asig ;get rid of DC offset
outs asig, asig
endin
</CsInstruments>
<CsScore>
f 1 0 16384 10 1 ;sine wave.
s
i 1 0 1 0.95 0.75 ;sounds heavier (=p5)
i 1 + 1 <
i 1 + 1 <
i 1 + 1 <
i 1 + 10 0.6
s
i 1 0 1 0.95 0.15 ;sounds softer (=p5)
i 1 + 1 <
i 1 + 1 <
i 1 + 1 <
i 1 + 10 0.6
e
</CsScore>
</CsoundSynthesizer>
|
Here is another example of the repluck opcode. It uses the file repluck-advanced.csd.
Advanced example of the repluck opcode. |
---|
| <CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o repluck_advanced.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
; By Stefano Cucchi 2020
sr = 44100
ksmps = 32
0dbfs = 1
nchnls = 2
instr 1
iplk = p4
kamp = p5
icps = p6
krefll randomi 0.52, 0.99, 0.61
kpickl randomi 0.1, 0.9, 13
kreflr = p7
kpickr = p8
ain1 diskin "fox.wav", 1, 0
asigl repluck iplk, kamp, icps, kpickl, krefll, ain1
asigl dcblock2 asigl
asigr repluck iplk, kamp, icps, kpickr, kreflr, ain1
asigr dcblock2 asigr
kdeclick linseg 0, 0.05, 1, p3-0.1, 1, 0.05, 0
outch 1, asigl * kdeclick
outch 2, asigr * kdeclick
endin
</CsInstruments>
<CsScore>
i 1 0 4 0.11 0.5 69 0.9 0.11
i 1 3 4 0.11 0.5 12 0.9 0.11
i 1 6 4 0.41 0.5 1 0.2 0.11
i 1 9 4 0.11 0.5 300 0.9 0.99
i 1 12 4 0.11 0.5 182 0.9 0.99
i 1 15 15 0.99 0.5 12.039 0.9 0.11
e
</CsScore>
</CsoundSynthesizer>
|
See also
Waveguide Physical Modeling
Credits
Author: John ffitch
University of Bath/Codemist Ltd.
Bath, UK
1997
New in version 3.47