Re: [music-dsp] Dynamic smoothing algorithm

2016-12-08 Thread Andrew Simper
On 8 December 2016 at 06:13, Lubomir I. Ivanov  wrote:
>
> a couple of typos:
> - meaure -> measure
> - continous - > continuous
> - acheived -> achieved
>
> this is very cool!
> did you observe any increment in the THD when applying the routine;
> abs() tends to contribute to that?
>
> thanks
> lubomir

Glad you like it lubomir! Thanks for the corrections, I'll update the
document to fix the typos.

The abs(band) is a sudden non-linearity, but this is done to on the
signal modulating the cutoff frequency and is not applied to the input
signal directly. It will introduce some distortion, but not too much
more than a smoother transition like a function starting with band^2
then flattening out to linear. I've found for control signals linear
frequency modulation works most musically, but please feel free to try
any non-linearity you want in on the bandpass signal that may suit
your application better.

Cheers,

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



Re: [music-dsp] Dynamic smoothing algorithm

2016-12-07 Thread robert bristow-johnson







 Original Message 

Subject: Re: [music-dsp] Dynamic smoothing algorithm

From: "Lubomir I. Ivanov" 

Date: Wed, December 7, 2016 5:13 pm

To: "A discussion list for music-related DSP" 

--



> On 6 December 2016 at 08:26, Andrew Simper  wrote:

>> Hi Guys,

>>

>> Another year has almost passed so I thought it was time to release

>> another technical paper!

>>

>> It's a dynamic smoothing algorithm that can do things like this:

>>

>> http://cytomic.com/files/dsp/dynamic-smoothing.png

>>

>> I came up with the idea a few years ago when I needed a way to

>> de-noise and de-step the cutoff of a self oscillating filter when

>> mapped to a midi controller.
...

>

> this is very cool!

> did you observe any increment in the THD when applying the routine;

> abs() tends to contribute to that?
i think it's only meant to apply to controller or meter data, not directly to 
audio data. �i think it's to remove jitter from the controller and the trick is 
that the jitter can be well removed yet the transient response to a step is
fast.
it's not the same algorithm, but it's a similar purpose to control filter i 
have done that employs a dead-zone to keep the little jitters out. �it was long 
ago, dunno where the code is (i *don't* think it was anything i did for Wave 
Mechanics, in which i would not be sharing it),
but if i find it, i can post it too as an alternative. �it looks to me that the 
performance of Andrew's transient filter is better.
if i recall correctly, my dead-zone de-jitterer went something like this:
�
a simple one-pole LPF looks like:
� �y[n] =
y[n-1] + (1-p)*( x[n] - y[n-1] )
p is the pole value and 0 < 1-p << 1 .
if 1-p is very small, jitter is suppressed but the transient response is very 
slow. �i think i sped it up when the difference between input and output was 
large by adding this term:
�
� �y[n] = y[n-1] + (1-p)*(x[n] - y[n-1]) �+ �(1-q)* DZ(x[n] - y[n-1])
�
DZ() is the dead-zone function and might be defined as
� � DZ(x) = �x - SAT(x)
where SAT() is a saturation function

� �SAT(x) = x �for |x| < w �and sgn(x)*w for |x| > w

�

"w" is some width parameter.



to make the non-linearity smooth, the saturation function can be made 
smooth by using something like a tan() or tanh() function.

�

� �SAT(x) = w * ( e^(x/w) - e^(-x/w) )�/ ( e^(x/w) + e^(-x/w) )

�

this method is not triggered by BPF energy, but is triggered by an 
input deviating from the output by a large amount.



--
r b-j � � � � � � � � �r...@audioimagination.com
"Imagination is more important than knowledge."
�
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] Dynamic smoothing algorithm

2016-12-07 Thread Lubomir I. Ivanov
hello,

On 6 December 2016 at 08:26, Andrew Simper  wrote:
> Hi Guys,
>
> Another year has almost passed so I thought it was time to release
> another technical paper!
>
> It's a dynamic smoothing algorithm that can do things like this:
>
> http://cytomic.com/files/dsp/dynamic-smoothing.png
>
> I came up with the idea a few years ago when I needed a way to
> de-noise and de-step the cutoff of a self oscillating filter when
> mapped to a midi controller. It uses a dynamic 2 pole multimode
> filter. The basic idea is to use a filter's bandpass output to
> modulate its own cutoff frequency. The basic version takes 6+-, 3* and
> one absolute value, details here:
>
> http://cytomic.com/files/dsp/DynamicSmoothing.pdf
>
> Enjoy, and have a happy holidays everyone :)
>

a couple of typos:
- meaure -> measure
- continous - > continuous
- acheived -> achieved

this is very cool!
did you observe any increment in the THD when applying the routine;
abs() tends to contribute to that?

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



Re: [music-dsp] Dynamic smoothing algorithm

2016-12-06 Thread Andrew Simper
On 6 December 2016 at 15:35, robert bristow-johnson
 wrote:
>
>
>  Original Message 
> Subject: [music-dsp] Dynamic smoothing algorithm
> From: "Andrew Simper" 
> Date: Tue, December 6, 2016 1:26 am
> To: "A discussion list for music-related DSP" 
> --
>
>>
>> Another year has almost passed so I thought it was time to release
>> another technical paper!
>>
>> It's a dynamic smoothing algorithm that can do things like this:
>>
>> http://cytomic.com/files/dsp/dynamic-smoothing.png
>
> that (bottom graph) looks nice.  can't be totally linear.

It's a linear filter with self fm, so the fm could be thought of as a
non-linear element.

>> The basic idea is to use a filter's bandpass output to
>> modulate its own cutoff frequency.
>
> so, the more BPF output (abs and LPF'd), the lower the LPF cutoff frequency?

The abs of the BPF is taken, and then this is used to increase the
same filter's cutoff frequency. It's a 2 pole multi-mode filter, and
the final output is a 2 pole low pass.


> why a BPF and not an HPF?   because the HP component is already well
> filtered out, so you need not measure that energy?

You want to reject high frequency small changes, so the HPF wouldn't
reject that, so wouldn't reject high frequency noise.


>>The basic version takes 6+-, 3* and
>> one absolute value, details here:
>
> that's code at "tick", right?

Yes, it is the op count for the per sample processing (be that control
or audio rate).

>
>> http://cytomic.com/files/dsp/DynamicSmoothing.pdf
>>
>> Enjoy,
>
> thanks, Andrew.  it looks like a valuable little slewing alg on the
> controls.

You're welcome! I fine tuned the initial cutoff and sensitivity to
make the plots look nice, but they will need adjusting depending on
the target platforms implementation details, but it hopefully won't
take long to get it sounding how you want.

Cheers,

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



Re: [music-dsp] Dynamic smoothing algorithm

2016-12-05 Thread robert bristow-johnson







 Original Message 

Subject: [music-dsp] Dynamic smoothing algorithm

From: "Andrew Simper" 

Date: Tue, December 6, 2016 1:26 am

To: "A discussion list for music-related DSP" 

--



>

> Another year has almost passed so I thought it was time to release

> another technical paper!

>

> It's a dynamic smoothing algorithm that can do things like this:

>

> http://cytomic.com/files/dsp/dynamic-smoothing.png
that (bottom graph) looks nice. �can't be totally linear.


> The basic idea is to use a filter's bandpass output to

> modulate its own cutoff frequency.
so, the more BPF output (abs and LPF'd), the lower the LPF cutoff frequency?
why a BPF and not an HPF? � because the HP component is already well filtered 
out, so you need not measure that energy?
>The basic version takes 6+-, 3*
and
> one absolute value, details here:
that's code at "tick", right?
> http://cytomic.com/files/dsp/DynamicSmoothing.pdf

>

> Enjoy,
thanks, Andrew. �it looks like a valuable little slewing alg on the controls.
�
--
r b-j � � � � � � � � �r...@audioimagination.com
"Imagination is more important than knowledge."
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

[music-dsp] Dynamic smoothing algorithm

2016-12-05 Thread Andrew Simper
Hi Guys,

Another year has almost passed so I thought it was time to release
another technical paper!

It's a dynamic smoothing algorithm that can do things like this:

http://cytomic.com/files/dsp/dynamic-smoothing.png

I came up with the idea a few years ago when I needed a way to
de-noise and de-step the cutoff of a self oscillating filter when
mapped to a midi controller. It uses a dynamic 2 pole multimode
filter. The basic idea is to use a filter's bandpass output to
modulate its own cutoff frequency. The basic version takes 6+-, 3* and
one absolute value, details here:

http://cytomic.com/files/dsp/DynamicSmoothing.pdf

Enjoy, and have a happy holidays everyone :)

Cheers,

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