Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-10-05 Thread Earl Vickers
 Ethan Fenn wrote:

> One thing that might be interesting to try is to grab a slice of audio,
> apply a smooth window, and then convolve it with an ongoing stream of white
> noise. Sort of the opposite of a usual convolution reverb -- rather than a
> fixed "kernel" and a new chunk of "signal" every frame, you'd have a fixed
> signal and an evolving kernel.
> 
> It won't sound frozen exactly, it will shimmer the way a reverb tail does.
> Bu maybe that's fine if it's the sound you're going for.

Cool idea!

Earl
The Sound Guy, Inc.
http://www.sfxmachine.com







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



Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-10-04 Thread Ethan Fenn
One thing that might be interesting to try is to grab a slice of audio,
apply a smooth window, and then convolve it with an ongoing stream of white
noise. Sort of the opposite of a usual convolution reverb -- rather than a
fixed "kernel" and a new chunk of "signal" every frame, you'd have a fixed
signal and an evolving kernel.

It won't sound frozen exactly, it will shimmer the way a reverb tail does.
Bu maybe that's fine if it's the sound you're going for.

-Ethan



On Sun, Oct 2, 2016 at 2:41 PM, Earl Vickers  wrote:

> Spencer Jackson wrote:
>
> > 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.
>
> There’s a section on time-freezing in my AES paper on "Frequency Domain
> Artificial Reverberation using Spectral Magnitude Decay”,
> http://www.aes.org/e-lib/browse.cfm?elib=13760 . This was done by
> extending the magnitude spectrum of an STFT frame indefinitely while
> propagating the phases based on an instantaneous frequency estimate. The
> paper includes a number of references to other time-freeze techniques.
>
> We implemented this in our Spectral Machine plug-in (no longer on the
> market). The time freeze function was a bit finicky, because the timbre and
> pitch could vary significantly depending on exactly when you pressed the
> Freeze button. This probably could have been improved with some temporal
> smoothing.
>
> Earl Vickers
> http://sfxmachine.com
>
> ___
> 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

Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-10-02 Thread Emanuel Landeholm
Fabian (and list),

This looks reality interesting. Are you estimating PSD FIR-coeffs using
that Burg algorithm? I have seen something similar that produces second
order sections for IIR. I believe it's called CELP.

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

Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-10-02 Thread Fabian-Robert Stöter
I’m a bit late, but your discussion reminded me of this paper:

I. Kauppinen and K. Roth, “Audio signal extrapolation - theory and 
applications,” Proc. of the 5th Int. Conference on Digital Audio 
Effects (DAFx- 02), 2002. 

The idea is to extrapolate in time-domain using autoregressive process model. 
Each sample is modeled by

x(n)= ∑a_k * x(n−k)

with {a_1, a_2, ..., ap} being the AR coefficients. The AR coefficients can be 
identified by system identification algorithms like the Burg algorithm. 
Basically to extrapolate W samples based on ns past known samples:

• Identify the AR coefficients by using the Burg algorithm
• Initialize the filter with ns past known samples just before the section to 
be extrapolated
• Feed zeros of length W into the filter

The quality of the extrapolation can be very good, even though this is 
computationally quite expensive. 

I’ve reimplemented it in python: 
https://github.com/faroit/freezefx

Also have a look at this notebook for some audio examples:  

http://nbviewer.jupyter.org/github/faroit/pyfreeze/blob/master/freeze_demo.ipynb


> On 16 Sep 2016, at 21:59, Emanuel Landeholm  
> wrote:
> Simple OLA will produce warbles. I recommend a phase vocoder
> 

Compared to OLA or FFT based methods, the AR model extrapolation sounds quite 
natural (especially when using higher filter orders). 

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

Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Evan Balster
>
> I was thinking of taking freeverb and removing the comb
> filters and just using the allpass filters with 100% feedback thinking
> it would make it a "cleaner" sustain.
>

I think that's worth a try.  Using comb filters would be problematic in
your case because the harmonics of the guitar might align with the nulls.

– Evan Balster
creator of imitone 

On Fri, Sep 16, 2016 at 3:58 PM, gm  wrote:

> I never tried the Freeverb algorithm.
> Just form inspecting the flow chart I suspect its rather colored with all
> the comb filters.
>
> A classical reverb algorithm would be the allpass diffusors inside a comb
> filter loop like this
>
> Input -> +-> AP -> AP -> AP -> Delay -> Feedback -> Out
>  ^|
>  ||
>
> search for Datorro Effects Design for an example of this
>
> Designing reverbs is a huge topic of its own, what you also can try is an
> FDN
> (Feedback Delay Network) structure, with the delays tuned to very low
> pitches spaced in semitones
> which will give an effect similar to that of open strings in a piano
>
> Am 16.09.2016 um 22:29 schrieb Spencer Jackson:
>
> Wow, thanks all for the replies!
>
> If I used a reverb would it end up giving the sustained voice too much
> character? I was thinking of taking freeverb and removing the comb
> filters and just using the allpass filters with 100% feedback thinking
> it would make it a "cleaner" sustain. I'm leaning this way because I'd
> like to keep it lightweight and I think this will be less overhead
> than a phase vocoder. Is that a naive approach?
>
> Thanks again,
> _Spencer
>
>
>
> On Fri, Sep 16, 2016 at 1:59 PM, Emanuel 
> Landeholm  wrote:
>
> Simple OLA will produce warbles. I recommend a phase vocoder.
>
>
> ___
> dupswapdrop: music-dsp mailing 
> listmusic-dsp@music.columbia.eduhttps://lists.columbia.edu/mailman/listinfo/music-dsp
>
> ___
> dupswapdrop: music-dsp mailing 
> listmusic-dsp@music.columbia.eduhttps://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
>
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Spencer Jackson
Wow, thanks all for the replies!

If I used a reverb would it end up giving the sustained voice too much
character? I was thinking of taking freeverb and removing the comb
filters and just using the allpass filters with 100% feedback thinking
it would make it a "cleaner" sustain. I'm leaning this way because I'd
like to keep it lightweight and I think this will be less overhead
than a phase vocoder. Is that a naive approach?

Thanks again,
_Spencer



On Fri, Sep 16, 2016 at 1:59 PM, Emanuel Landeholm
 wrote:
> Simple OLA will produce warbles. I recommend a phase vocoder.
>
>
> ___
> 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



Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Emanuel Landeholm
Simple OLA will produce warbles. I recommend a phase vocoder.
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Emanuel Landeholm
Essentially, what you want is a "sustain" effect?
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread gm



Am 16.09.2016 um 19:30 schrieb Spencer Jackson:

On Fri, Sep 16, 2016 at 11:24 AM, gm  wrote:

Did you consider a reverb or an FFT time stretch algorithm?


I haven't looked into an FFT algorithm. I'll have to read up on that,
but what do you mean with reverb? Would you feed the loop into a
reverb or apply some reverberant filter before looping?


The FFT aproach is basically a reverb in the spectral domain,
in time domain you would use an "endless" reverb without any damping filters
and a reverberation time thats as close to infinity you can get away 
with without numerical rounding issues
then you just set the reverb time and dry/wet to none (or short) while 
the effect ist off,
and to 1 when the effect is on, in-betweens ar possible, also you can 
modulate the

reverbtime with the input for a kind of ducking effekt
(you can do similar things with fft, resetting phase and amplitude when 
inpit is above a thershold)


The FFT aproach has the sonical advantage that you start with the 
original sound
otherwise its quite similar, what you get is dispersing phases with the 
original amplitude spectrum


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



Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Eric Brombaugh
Probably shouldn't reveal too much of the detail, but it likely comes as 
no surprise that the tradeoff between time and frequency resolution is 
critical in systems that have limited CPU horsepower. The FFTs in this 
case do run in the audio processing thread which is synchronous to the 
buffer processing rate.


I'd love to have a go at doing this kind of stuff on something like a 
SHARC where 16kpt FFTs are apparently easy to do at audio rates...


Eric

On 09/16/2016 11:15 AM, Giulio Moro wrote:

Nice that it runs on the M4F, what FFT size, overlap and audio
processing block size are you using? Are you running the FFT in a
separate thread?

Giulio



*From:* Eric Brombaugh <ebrombau...@cox.net>
*To:* music-dsp@music.columbia.edu
*Sent:* Friday, 16 September 2016, 19:12
*Subject:* Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

I coded up the spectral freeze core of the Audio Damage "Spectre"
module
in a similar way:

http://www.audiodamage.com/hardware/product.php?pid=ADM15

It's a basic phase vocoder with forward and inverse FFTs but we added
some fun little tweaks to shift, stretch and randomize the spectrum. It
runs nicely on an STM32F405 ARM Cortex M4F processor.


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



Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Giulio Moro
Yup, I was asking because I found that on the M4 it is difficult to do proper 
overlap and add while keeping reasonably small block sizes for FFTs of useful 
length, so I was just curious whether you had to implement threads or just went 
for block sizes synchronous with the FFT step.
If I remember correctly I was using 2048 samples per block and 512 samples 
step, with good results.
Best,Giulio

 
  From: Eric Brombaugh <ebrombau...@cox.net>
 To: music-dsp@music.columbia.edu 
 Sent: Friday, 16 September 2016, 19:50
 Subject: Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect
   
Probably shouldn't reveal too much of the detail, but it likely comes as 
no surprise that the tradeoff between time and frequency resolution is 
critical in systems that have limited CPU horsepower. The FFTs in this 
case do run in the audio processing thread which is synchronous to the 
buffer processing rate.

I'd love to have a go at doing this kind of stuff on something like a 
SHARC where 16kpt FFTs are apparently easy to do at audio rates...

Eric

On 09/16/2016 11:15 AM, Giulio Moro wrote:
> Nice that it runs on the M4F, what FFT size, overlap and audio
> processing block size are you using? Are you running the FFT in a
> separate thread?
>
> Giulio
>
>
>    
>    *From:* Eric Brombaugh <ebrombau...@cox.net>
>    *To:* music-dsp@music.columbia.edu
>    *Sent:* Friday, 16 September 2016, 19:12
>    *Subject:* Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect
>
>    I coded up the spectral freeze core of the Audio Damage "Spectre"
>    module
>    in a similar way:
>
>    http://www.audiodamage.com/hardware/product.php?pid=ADM15
>
>    It's a basic phase vocoder with forward and inverse FFTs but we added
>    some fun little tweaks to shift, stretch and randomize the spectrum. It
>    runs nicely on an STM32F405 ARM Cortex M4F processor.

___
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

Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Thomas Rehaag
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



Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Giulio Moro
Nice that it runs on the M4F, what FFT size, overlap and audio processing block 
size are you using? Are you running the FFT in a separate thread?
Giulio

 
  From: Eric Brombaugh <ebrombau...@cox.net>
 To: music-dsp@music.columbia.edu 
 Sent: Friday, 16 September 2016, 19:12
 Subject: Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect
   
I coded up the spectral freeze core of the Audio Damage "Spectre" module 
in a similar way:

http://www.audiodamage.com/hardware/product.php?pid=ADM15

It's a basic phase vocoder with forward and inverse FFTs but we added 
some fun little tweaks to shift, stretch and randomize the spectrum. It 
runs nicely on an STM32F405 ARM Cortex M4F processor.

Eric

On 09/16/2016 10:59 AM, Giulio Moro wrote:
> Hi,
> I actually implemented this a few years back using an FFT algorithm, I
> can dig out the code if you need it (it was a VST written using Juce and
> fftw, but there was no threading on the FFT if I remember correctly, so
> it is flawed as it is and it requires running with large blocksizes.
> I doubt simple time-domain algorithm would work without obvious
> artefacts, as the periodicity is not guaranteed and the combined period
> could be very long anyhow.
>
> The FFT implementation I made was the text-book phase vocoder but I was
> doing the forward FFT only once at the beginning of a freeze, to
> "sample" the signal, then I would keep the vector of amplitudes constant
> while updating the phase.
>
> Best,
> Giulio
>
>
>    
>    *From:* Spencer Jackson <ssjackso...@gmail.com>
>    *To:* music-dsp@music.columbia.edu
>    *Sent:* Friday, 16 September 2016, 18:30
>    *Subject:* Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect
>
>    On Fri, Sep 16, 2016 at 11:24 AM, gm <g...@voxangelica.net
>    <mailto:g...@voxangelica.net>> wrote:
>      > Did you consider a reverb or an FFT time stretch algorithm?
>      >
>
>    I haven't looked into an FFT algorithm. I'll have to read up on that,
>    but what do you mean with reverb? Would you feed the loop into a
>    reverb or apply some reverberant filter before looping?
>
>
>    Thanks,
>    _Spencer
>    ___
>    dupswapdrop: music-dsp mailing list
>    music-dsp@music.columbia.edu <mailto: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
>

___
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

Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Bjorn Roche
On Fri, Sep 16, 2016 at 1:30 PM, Spencer Jackson 
wrote:

> On Fri, Sep 16, 2016 at 11:24 AM, gm  wrote:
> > Did you consider a reverb or an FFT time stretch algorithm?
> >
>
> I haven't looked into an FFT algorithm. I'll have to read up on that,
> but what do you mean with reverb? Would you feed the loop into a
> reverb or apply some reverberant filter before looping?
>

IIRC, the original free-verb had a "hold" or "freeze" function that worked
well. I believe it worked by setting each individual comb filter to 100%
feedback.

Free verb worked surprisingly well considering its simplicity. The magic
had more to do with the hand tuning of the parameters than anything else,
so if a simple reverb is an approach you want to take, I suggest starting
by copying the original parameters, which you can find here:

https://ccrma.stanford.edu/~jos/pasp/Freeverb.html

-- 
Bjorn Roche
@shimmeoapp
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Eric Brombaugh
I coded up the spectral freeze core of the Audio Damage "Spectre" module 
in a similar way:


http://www.audiodamage.com/hardware/product.php?pid=ADM15

It's a basic phase vocoder with forward and inverse FFTs but we added 
some fun little tweaks to shift, stretch and randomize the spectrum. It 
runs nicely on an STM32F405 ARM Cortex M4F processor.


Eric

On 09/16/2016 10:59 AM, Giulio Moro wrote:

Hi,
I actually implemented this a few years back using an FFT algorithm, I
can dig out the code if you need it (it was a VST written using Juce and
fftw, but there was no threading on the FFT if I remember correctly, so
it is flawed as it is and it requires running with large blocksizes.
I doubt simple time-domain algorithm would work without obvious
artefacts, as the periodicity is not guaranteed and the combined period
could be very long anyhow.

The FFT implementation I made was the text-book phase vocoder but I was
doing the forward FFT only once at the beginning of a freeze, to
"sample" the signal, then I would keep the vector of amplitudes constant
while updating the phase.

Best,
Giulio



*From:* Spencer Jackson <ssjackso...@gmail.com>
*To:* music-dsp@music.columbia.edu
*Sent:* Friday, 16 September 2016, 18:30
    *Subject:* Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

On Fri, Sep 16, 2016 at 11:24 AM, gm <g...@voxangelica.net
<mailto:g...@voxangelica.net>> wrote:
 > Did you consider a reverb or an FFT time stretch algorithm?
 >

I haven't looked into an FFT algorithm. I'll have to read up on that,
but what do you mean with reverb? Would you feed the loop into a
reverb or apply some reverberant filter before looping?


Thanks,
_Spencer
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu <mailto: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



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



Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Giulio Moro
Hi,I actually implemented this a few years back using an FFT algorithm, I can 
dig out the code if you need it (it was a VST written using Juce and fftw, but 
there was no threading on the FFT if I remember correctly, so it is flawed as 
it is and it requires running with large blocksizes.I doubt simple time-domain 
algorithm would work without obvious artefacts, as the periodicity is not 
guaranteed and the combined period could be very long anyhow.
The FFT implementation I made was the text-book phase vocoder but I was doing 
the forward FFT only once at the beginning of a freeze, to "sample" the signal, 
then I would keep the vector of amplitudes constant while updating the phase.
Best,Giulio

 
  From: Spencer Jackson <ssjackso...@gmail.com>
 To: music-dsp@music.columbia.edu 
 Sent: Friday, 16 September 2016, 18:30
 Subject: Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect
   
On Fri, Sep 16, 2016 at 11:24 AM, gm <g...@voxangelica.net> wrote:
> Did you consider a reverb or an FFT time stretch algorithm?
>

I haven't looked into an FFT algorithm. I'll have to read up on that,
but what do you mean with reverb? Would you feed the loop into a
reverb or apply some reverberant filter before looping?

Thanks,
_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

Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Evan Balster
Regarding reverbs, one classic element is the Schroeder allpass:
https://ccrma.stanford.edu/~jos/pasp/Schroeder_Allpass_Sections.html  You
can use it to smear a signal without any constructive or destructive
interference.  Generally speaking this lack of "color" is a disadvantage,
but for your application it's probably very desirable.

Another observation:

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.


It's generally easier to recognize artifacts when they repeat at regular
intervals.  If you're taking the granular approach, I suggest randomizing
as much as possible.  If you want to avoid interference between the grains,
try to synchronize them based on a cross-correlation
.

– Evan Balster
creator of imitone 

On Fri, Sep 16, 2016 at 12:30 PM, Spencer Jackson 
wrote:

> On Fri, Sep 16, 2016 at 11:24 AM, gm  wrote:
> > Did you consider a reverb or an FFT time stretch algorithm?
> >
>
> I haven't looked into an FFT algorithm. I'll have to read up on that,
> but what do you mean with reverb? Would you feed the loop into a
> reverb or apply some reverberant filter before looping?
>
> Thanks,
> _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

Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread gm

Did you consider a reverb or an FFT time stretch algorithm?



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



Re: [music-dsp] Help with "Sound Retainer"/Sostenuto Effect

2016-09-16 Thread Spencer Jackson
On Fri, Sep 16, 2016 at 11:24 AM, gm  wrote:
> Did you consider a reverb or an FFT time stretch algorithm?
>

I haven't looked into an FFT algorithm. I'll have to read up on that,
but what do you mean with reverb? Would you feed the loop into a
reverb or apply some reverberant filter before looping?

Thanks,
_Spencer
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp