It doesn't seem to output a steady pulse either (see attached patch - then again i hope i got you). Maybe it doesn't really matter. I can try with my guitar right now. Out of curiosity, what kind of resonator can i use? I only know resonant filters (like the moog~ bp filter) and karplus-strong resonators. Thanks again for your help. (I think i've been forgetting to reply to the list...)
2010/9/30 Pierre Massat pimassat@gmail.com
So basically, i get a square wave. Then i use the rzero filter with a parameter set to 1, so that i get X(n)-X(n-1), which is equal to 0 all over the flat sections of the wave (except for the first sample), and equal to Delta (or something) or -Delta at the points where is rises and falls. If i clip this again between 0 and 1, i get a pulse everytime the wave rises from -1 to 1. Am i wrong? I have never used such a filter... Thank you!
Pierre
2010/9/30 Andy Farnell padawan12@obiwannabe.co.uk
Yeah its a bitch actually because in Pd the blocksize sets an effective resolution for events. You could ask on-list about tricks with blocksize, Frank might have a solution.
I'll share a couple of DSP tricks wit you as used in guitar subharmonic processors, if you don't mind keeping it all in the audio domain (which can be more tricky)
Firstly you amplify by about 100 and clip the signal
[*~ 100] | [clip~ -1 1]
this gives you basically a square wave
Next differentiate using a [rzero~] so that you get a series of pulses.
Rectify them by clipping again [clip~ 0 1]
Use these pulses to drive into a bank of parallel resonators for the rattle effect.
cheers,
Andy
On Thu, 30 Sep 2010 20:15:15 +0200 Pierre Massat pimassat@gmail.com wrote:
Ok, i think i get it. I've tried do make a simple zero-crossing detection patch using
threshold~,
but it doesn't seem to really work. From what i've read here and there
about
zero crossing in Pd it seems like the size of audio blocks is an issue
here.
Using a simple osc~ as a sound generator and a threshold~ set to 0 0 0
0, i
get a fairly steady bang at very low frequencies, but it gets extremely messy for frequencies above 10 Hz or so. I ve tried reducing the block size in the subpatch where threshold~ is,
to
no avail. I haven't found anything that properly deals with zero crossing
detection in
Pd. So i'm kinda stuck!
Pierre
2010/9/29 Andy Farnell padawan12@obiwannabe.co.uk
On Wed, 29 Sep 2010 08:42:28 +0200 Pierre Massat pimassat@gmail.com wrote:
Hi Andy, Are you talking about something like that: http://www.complexity.org.au/ci/vol01/fletch01/html/
Not quite. THis is very interesting (I've bookmarked it for future reading) but deals with non-linearity in a continuous equation.
For rattling, we are interested in dis-continuous coupling.
I m not familiar with zero crossing detection at all. From what i ve
read
in
the archives it seems to be possible to do it with edge~.
If you search you will find other ways using snapshot~ and threshold~ too.
So i'd need to trigger something like a pulsed noise everytime it detects a zero?
That'd
be
the trick?
Yes, basically drive another synth that makes a pulse or resonant
click
every time the string crosses zero.
Thanks again for your help!
Pierre
2010/9/28 Andy Farnell padawan12@obiwannabe.co.uk
Aha! This is a different problem. It's about creating a discontinuity such that the string excursion seems to cause a point of new impact in a different system.
The traditional way is to do zero crossing detection and use that to trigger some other sound.
best, Andy
On Tue, 28 Sep 2010 13:07:49 +0200 Pierre Massat pimassat@gmail.com wrote:
> So i'm really only interested in modeling the rattling sound,
the
buzz,
to > get a dirtier sound, like in most african instruments. I don't
know
if
> you've ever played a guitar with a strip a paper kind of weaved
accross
the
-- Andy Farnell padawan12@obiwannabe.co.uk
-- Andy Farnell padawan12@obiwannabe.co.uk
-- Andy Farnell padawan12@obiwannabe.co.uk
On Thu, 30 Sep 2010 21:00:05 +0200 Pierre Massat pimassat@gmail.com wrote:
Out of curiosity, what kind of resonator can i use? I only know resonant filters (like the moog~ bp filter) and karplus-strong resonators.
The KS ( a single tap feedback delay ). Again, small block size needed if you want good pitch accuracy or a bunch of them slightly detuned in a cluster.
So basically, i get a square wave. Then i use the rzero filter with a parameter set to 1, so that i get X(n)-X(n-1), which is equal to 0 all over the flat sections of the wave (except for the first sample), and equal to Delta (or something) or -Delta at the points where is rises and falls. If i clip this again between 0 and 1, i get a pulse everytime the wave rises from -1 to 1. Am i wrong?
Exactly right.
2010/9/30 Andy Farnell padawan12@obiwannabe.co.uk
Hi Andy,
I have tried the thing with my guitar. I had to play with the clipping values a bit (more amplification in the beginning, and clipping between 0.X and 0.4 in the end, to keep the rzero~ from exciting the generator when no note is being played. I have tried using the "pulse" as a switch for pink~, to output a short burst of noise everytime. I have also tried 4 KS resonators, tuned one half-step apart. I am not satisfied with them when i try to get a percussive sound (maybe i should try to tune them differently), but i have discovered that i can get insane sounds by tuning the resonators to 0 and sliding the feedback all the way up, and feeding them with the pulse. You said this technique (getting a pulse from the guitar) is used in subharmonic stuff, does it include things like this synth (http://www.youtube.com/watch?v=Nrj7XrCliKY)? Thanks!
Pierre
2010/9/30 Andy Farnell padawan12@obiwannabe.co.uk
On Thu, 30 Sep 2010 21:00:05 +0200 Pierre Massat pimassat@gmail.com wrote:
Out of curiosity, what kind of resonator can i use? I only know resonant filters (like the moog~ bp filter) and karplus-strong resonators.
The KS ( a single tap feedback delay ). Again, small block size needed if you want good pitch accuracy or a bunch of them slightly detuned in a cluster.
So basically, i get a square wave. Then i use the rzero filter with a parameter set to 1, so that i get X(n)-X(n-1), which is equal to 0 all
over
the flat sections of the wave (except for the first sample), and equal
to
Delta (or something) or -Delta at the points where is rises and falls.
If i
clip this again between 0 and 1, i get a pulse everytime the wave rises
from
-1 to 1. Am i wrong?
Exactly right.
2010/9/30 Andy Farnell padawan12@obiwannabe.co.uk