| Hi all, it seems that either the wgpluck opcode is not generating the
compensating all-pass filter correctly (I assume that this opcode is a
translation of Perry Cook's pluck instrument), or I am doing some thing
more basically wrong. See the PLUCKM instrument in the following orc,
and let me know if there's anything wrong.
I do think it's some sort of frequency quantization problem, because it
gets worse as the pitch gets higher.
There are more than one opcodes, it seems, for a physically modeled
pluck, so if wgpluck is not the one I should use, let me know, please!
Thanks :-) Really, I'm looking for the equivalent of Cook's pluck
instrument that he included with his C++ toolkit - it generates an
all-pass filter in the feedback loop which implements a
fractional-sample delay, to correct the frequency quantisation which
would otherwise result from using a delay line which is fixed at an
integer number of samples.
Thanks in advance, people!!
~~~~
ksmps = 10
nchnls= 1
#define PLUCKM #1#
#define PLUCK1 #2#
instr $PLUCK1
aexcite init 0.0
a1 wgpluck p4, 0.4, p5, p6, p7, p8, aexcite
a2 = 32000 * a1
out a2
endin
instr $PLUCKM
aexcite init 0.0
inum notnum
icps cpsmidi
a1 wgpluck icps, 0.3, 0.35, 0.12, 5, 20, aexcite
out 32000 * a1
endin |