[PD] attack/release for spectral gate [was: is this a spectral gate?]

Kevin McCoy km.takewithyou at gmail.com
Thu Mar 29 12:11:57 CEST 2007


GOT IT!

It needs to use [vectral~] from cyclone (curiously included in pd
0.40-1 vanilla?!), which generates ramps across bins with the
"rampsmooth" message.  I found this out by poking around on some
max/msp archives.  Patch is attached, and sounds much much better now!

There's no documentation but you can download the MSP documentation
from cycling 74's website.  It takes a sync signal for its leftmost
two inlets (basically a phasor that ramps from 0 to n-1 (in this case
511) or whatever block/vector size you're using).  I followed Miller's
advice from a previous thread and just made a table like the hann
window.

Chuck I think this might help you with your idea too!

Now to make a GOP abstraction...  I might even make a tilt control so
that the cutoff doesn't have to be the same for all freqs.  BTW, the
[expr~] object in the fft-analysis subpatch should be replaced with
[q8_sqrt~] - sqrt~ objs just happen to be broken in 39-2 extended
test7 right now so I had to use expr~.

Kevin

On 3/29/07, Kevin McCoy <km.takewithyou at gmail.com> wrote:
> Hi Chuck!
>
> Actually I was working on it tonight.  The problem with it is that it
> is too harsh and leaves too many artifacts on the signal right now
> because the binary [>~] from zexy needs to be smoothed out with
> attack/release that persists across different blocks in time.  What I
> tried tonight was successive delay lines where the block starts out at
> 0.25 of its original amplitude, then passes to another delay and is
> amplified to 0.5, then to 1, held at 1, down to 0.5, and then to 0.25
> and back off.  Successive delay lines that increase and then decrease
> were the only way I could think to do this job of smoothing it out
> over time and preserve information from past blocks of audio.  I've
> attached the patch as I was working on it tonight.
>
> However, this has some problems of its own and I was getting a lot of
> high frequencies that I didn't want there, so I think this approach
> will need to be windowed as well - the delay lines may need to be
> smoothed too, something along the lines of the pitch shifting example
> in the documentation, except in the frequency domain??  I dunno and
> I'm in a little bit over my head at this point.  It's hard to measure
> and assess what you do right and wrong in the frequency domain!
> Sometimes a brother just needs a scope.  I am also open to fact that I
> am completely wrong about this :)
>
> What you're describing, if I read you correctly, is I think
> implemented in the noisegate example in Pd's doc... if they are
> different, could you clarify?  but all of these just sound bad to me
> and of poor quality, they really need attack and release to sound
> convincing/interesting and less "artifact-y" when you really push
> them.  I'm all for destruction/mangling of audio, and FFT seems truly
> powerful in that regard, but I just don't like these results yet.  Of
> course, Tom Erbe's soundhack filters already do this, but he hasn't
> responded to this on how he got attack/release to work for him - it
> may need to be handled differently in Pd as opposed to whatever he
> used to code those VSTs.
>
> That said, I would *love* to hear/try what you come up with.  Let's be
> in touch about this!
>
> Kevin
>
>
> On 3/28/07, Charles Henry <czhenry at gmail.com> wrote:
> > Hi, Kevin,
> >   I liked your idea for a spectral gate.  I can see two possible
> > applications for it:
> > 1.  removing broadband noise from signals
> > 2.  masking out one sound from a collection of sounds
> >
> > And the first option is especially cool.  It would be like a noise
> > gate on steroids, because it would remove the noise, even when there's
> > a signal present.  If it's alright... I'd like to give it a try, and
> > send it to you.
> > I'll re-format it so that one signal (noise or whatever) can be
> > recorded and then used to mask the same signals out of a continuous
> > signal input.  In fact this can be reformatted as a kind of weiner
> > filter, which will optimally reconstruct signals in the presence of
> > noise.
> > Have you gotten this working the way you want yet?
> >
> > Chuck
> >
> > On 3/23/07, Kevin McCoy <km.takewithyou at gmail.com> wrote:
> > > Hello all,
> > >
> > > A while ago I was working on a spectral gate patch and now I've come
> > > back to it.  Here's a quote from Tom Erbe's earlier email:
> > >
> > > "For a spectral gate, just calculate the amplitude from real and imag,
> > > make your gate decision based on the amplitude and threshold, and
> > > then apply the same gain reduction to both real and imag. Add attack
> > > and release to the gate-gain for smoother results."
> > >
> > > I want to add the attack and release so it sounds smoother and less
> > > bubbly/harsh (know what I mean?)  I am racking my brain trying to
> > > figure out how to do this to each of the frequencies.  The soundhack
> > > vst does this really nicely and even has a visual representation of
> > > the gate where you can see it rise and fall with attack/release for
> > > the whole spectrum.
> > >
> > > The problem for me is persistence across different blocks.  I suspect
> > > [line~] doesn't work for this as it does for amplitude attack/release
> > > implementations.  For example, if there is a spike around 3000 Hz, how
> > > can I carry that attack and release across several blocks of audio?  I
> > > used delay objects with what I thought was some success, but I don't
> > > think I had it right.  I have attached the patch which is basically
> > > what Frank posted earlier - it does not have any of this yet and is
> > > just a hard on/off.
> > >
> > > Much confusion, I would be grateful for any help!
> > > Kevin
> > > --
> > >
> > >
> > > ++++
> > > http://pocketkm.blogspot.com
> > >
> > > _______________________________________________
> > > PD-list at iem.at mailing list
> > > UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
> > >
> > >
> > >
> >
>
>
> --
>
>
> ++++
> http://pocketkm.blogspot.com
>
>


-- 


++++
http://pocketkm.blogspot.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: specgaterev3working~.pd
Type: application/octet-stream
Size: 4482 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20070329/c7838d0b/attachment.obj>


More information about the Pd-list mailing list