Csound Csound-dev Csound-tekno Search About

[Csnd] Calculating Stability of Phaser Feedback Loop

Date2017-11-29 05:42
FromEmmett Palaima
Subject[Csnd] Calculating Stability of Phaser Feedback Loop
Hi, I have been doing some experiments with phaser programs. I really like setting the feedback to really high levels, so that the phasor sounds really metallic and resonant, almost like a physical modeling instrument. 

The problem with this is it's easy to go overboard and get runaway feedback which gets harsh extremely quickly. 

I am wondering if there is a way to calculate the point at which self oscillation will occur given the number of phaser poles, the cutoff frequency of the allpass filters, and the feedback level.

The phasor I am using uses a variable number of 1 pole allpass filters in series defined by the equation:

y(n) = A * ( x(n) + y(n-1) ) - x(n-1)

where A = (1 - (PI * AllpassFreq / SampleRate)) / (1 + (PI * AllpassFreq / SampleRate))

Here is a signal flow diagram:
Phaser feedback.svg
Ultimately what I am looking for is an equation I can use to calculate the following:

Given a phaser with x poles with y cutoff self oscillation will being at feedback level z

Can anyone recommend a good method or some resources I could use to figure this out?
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2017-11-29 05:46
FromEmmett Palaima
SubjectRe: [Csnd] Calculating Stability of Phaser Feedback Loop
Sorry let me fix that typo in the statement about the equation: 

Given a phaser with x poles with y cutoff self oscillation will begin at feedback level z

Thanks!

On Wed, Nov 29, 2017 at 12:42 AM, Emmett Palaima <epalaima@berklee.edu> wrote:
Hi, I have been doing some experiments with phaser programs. I really like setting the feedback to really high levels, so that the phasor sounds really metallic and resonant, almost like a physical modeling instrument. 

The problem with this is it's easy to go overboard and get runaway feedback which gets harsh extremely quickly. 

I am wondering if there is a way to calculate the point at which self oscillation will occur given the number of phaser poles, the cutoff frequency of the allpass filters, and the feedback level.

The phasor I am using uses a variable number of 1 pole allpass filters in series defined by the equation:

y(n) = A * ( x(n) + y(n-1) ) - x(n-1)

where A = (1 - (PI * AllpassFreq / SampleRate)) / (1 + (PI * AllpassFreq / SampleRate))

Here is a signal flow diagram:
Phaser feedback.svg
Ultimately what I am looking for is an equation I can use to calculate the following:

Given a phaser with x poles with y cutoff self oscillation will being at feedback level z

Can anyone recommend a good method or some resources I could use to figure this out?

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here