[PD] biquad and karplus-strong

Orm Finnendahl orm.finnendahl at selma.hfmdk-frankfurt.de
Tue Jun 14 12:24:49 CEST 2016


Hi Peter,

 BTW: The patch in the pd tutorial uses [z~ 1] which you can replace
with [biquad~ 0 0 0 1 0] and your suggestion to do the averaging in
the biquad~ should simplify that patch even more.

The probability based polarity change could be done using the attached
patch.

--
Orm

Am Dienstag, den 14. Juni 2016 um 10:51:16 Uhr (+0200) schrieb Peter P.:
> Hi list,
> 
> I am trying to implement Karplus-Strong and am wondering about the
> following questions:
> 
> - I run the feedback-delay inside a subpatch that is re[block~ 1]ed to 1
> sample blocksize. Will a biquad~ object work correctly with blocksizes
> of 1 as well?
> 
> - The Karplus-Strong paper recommends a simple one sample delay moving
>   average filter: y(n) = 0.5 * [x(n) + x(n+1)]. Would
>   [biquad~ 0 0 0.5 0.5 0] be the correct implementation of it then?
> 
> - Low frequencies (DC) recirculate forever in such a patch. I wonder
>   what practice people have came up with to cope with this. I would
>   suspect putting a factor <1 into the feedback loop, or a [hip~ 3] or
>   something similar? Is there a standard way? I guess not...
> 
> - Karplus-Strong seems to get interesting if the phase of each sample is
>   randomly reversed in the feedback path (the 'drum' algorithm). The
>   probability of such a phase reversal should be controllable using a
>   'p' parameter, which is a float value between 0 and 1, and which
>   describes the probability that a sample is phase-reversed (multiplied
>   by one).
>   How can this be implemented in vanilla Pd (using blocksize 1)?
> 
> Thank you for any ideas to the above questions. I checked the
> mailinglist-archive and have not found anything about these ones.
> 
> P
> 
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
-------------- next part --------------
#N canvas 765 130 450 570 10;
#X obj 105 178 noise~;
#X obj 118 423 print~;
#X obj 190 219 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 69 273 abs~;
#X obj 122 218 sig~ 0.5;
#X obj 105 239 -~;
#X obj 210 54 vsl 15 128 -1 1 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 7000 1;
#X floatatom 210 190 5 0 0 0 - - -, f 5;
#X obj 86 300 -~;
#X obj 88 349 clip~ 0 2;
#X obj 88 371 -~ 1;
#X obj 87 328 *~ 1e+36;
#X connect 0 0 5 0;
#X connect 2 0 1 0;
#X connect 3 0 8 0;
#X connect 4 0 5 1;
#X connect 5 0 8 1;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 6 0 2 0;
#X connect 7 0 4 0;
#X connect 8 0 11 0;
#X connect 9 0 10 0;
#X connect 10 0 1 0;
#X connect 11 0 9 0;


More information about the Pd-list mailing list