The first requirement is tricky, it's very rare you'll get amplitude 0 (or,
more accurately, minus infinity) from an active input, I'd suggest [env~] and
[<] with a number to define tolerance, it's a tricky business, however.
Delay wise you could always use the classic delay-repeat model which is
something like
(sound source) [r~ feedback]
| /
[delwrite~ delayname 1000]
[delread~ delayname 1000]
| \
[dac~] [*~ 0.4]
|
[s~ feedback]
which will basically echo to silence
Or you could try a more controlled example which would be something like
(sound source)
|
[delwrite~ del1 1000]
[delread~ del1 1000]
| \
[*~ .5] [dac~]
|
[delwrite~ del2 500]
[delread~ del2 500]
|
[dac~]
which would mean the echoes get quieter and closer together. You could carry on
this chain as long as you want, modifying each echo in the chain to your own
specification.
I'm not sure how helpful this is, but it might be what you're after.
Andrew
Date: Mon, 28 Mar 2011 10:26:09 +0200
From: [email protected]
To: [email protected]
CC: [email protected]
Subject: Re: [PD] Echo-effect
So you don't want the original sound and the echo to overlap? Then the question
is : how do you define silence? Do you have a reliable means of knowing for
sure when silence begins? In my experience you can never get an amplitude of 0
in a sound originating from a microphone. If you can manage to know exactly
when silence starts, then i think you could achieve what you want by using a
single delay line. I would feed the delay line (delwrite~) with the incoming
sound continuously, and i would switch off the output of the line (delread~,
use *~ 0 after it to switch it off). The length of the delay would be constant
and equal to 1600 ms. The feedback level XX (use *~ XX between the output of
delread and the input of delwrite) would be equal to 0 when the delay is off
(so that you only get the last 1,6 seconds of sound when you switch it on).
Then everytime you detect silence you wait for 0,8 seconds and you send
messages to both the output switch (ramp up from 0 to 1) and the feedback (ramp
from 0 to whatever suits your needs). Also, i would turn the delay off
automatically after a fixed period of time (depending on the feedback level) to
make sure that the echo will be off when a new sound occurs.
Hope this helps...
Pierre
2011/3/28 Stefan Magnusson <[email protected]>
Hi!
I only want the effect to kick in after a certain amount of silence (where
silence is defined as amplitude zero) so that does not interferer when there is
continuous sound. Clear enough?
/Stefan
On Mon, Mar 28, 2011 at 10:02 AM, Pierre Massat <[email protected]> wrote:
Hi Stefan,
I'm sorry i didn't get your first requirement "Starts when there has been no
sound for 0,8 seconds". Could you be a little more specific?
If you need to have a strong control over the echo i think you should probably
use tables instead of delay lines, because you can write and read to an from a
table at any moment and at any point in the table.
Pierre
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list