In the time domain I'd try to mask the whole sample e.g. with a triangle window. Then repeat it half overlapped.
(Or was this already one of your "various forms of crossfading"?)
Maybe even add up the signal with it's reverse signal to have constant power before overlapped playback.
But that's theory.

In the frequency domain I had a quite good result with an FFT/overlap add and multiplying the frequency bins with (1 + 1/10*(random noise)) in a similar experiment.

Best Regards,

Thomas


Am 16.09.2016 um 17:48 schrieb Spencer Jackson:
Hi all:

First post on the list. Quite some time ago I set out to create a lv2
plugin re-creation of the electroharmonix freeze guitar effect. The
idea is that when you click the button it takes a short sample and
loops it for a drone like effect, sort of a granular synthesis
sustainer thing. (e.g. https://youtu.be/bPeeJrv9wb0?t=58)

I use an autocorrelation-like function to identify the wave period but
on looping I always have artifacts rather than a smooth sound like the
original I'm trying to emulate. I've tried some compression to get a
constant rms through the sample, tried various forms of crossfading,
tried layering several periods, and many combinations of these. I
ended up releasing it using 2 layers, compression, and a 64 sample
linear crossfade, but I've never been satisfied with the results and
have been trying more combinations. It works well on simple signals
but on something not perfectly periodic like a guitar chord it always
has the rhythmic noise of a poor loop.

I'm hoping either someone can help me find a bug in the code that's
spoiling the effect or a better approach. I've considered applying
subsample loop lengths, but I don't think that will help. The next
thing I could think of is taking the loop into the frequency domain
and removing all phase data so that it becomes a pure even function
which should loop nicely and still contain the same frequencies. I
thought I'd ask here for suggestions though, before spending too much
more time on it.

The GPL C code is here for review if anyone is curious:
https://github.com/ssj71/infamousPlugins/blob/master/src/stuck/stuck.c
I'm happy to offer more explanations of the code.

Thanks for your time.
_Spencer
_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp



_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Reply via email to