Guest

— Forum Scope —

— Match —

— Forum Options —

Minimum search word length is 3 characters - maximum search word length is 84 characters

modulated APF structure
May 3, 2017
2:16 pm
libertyprime
Member
Members
Forum Posts: 5
Member Since:
November 28, 2016
Offline

Hey there,

Working on implementing the modulated APF from the book (11.27 figure) and just wanted to check about the structure of it --

I was thinking I would just run an LFO within the current APF structure and check the current value every time I run processAudio, then instead access the modulated delay index directly of the APF while processing the frame. The new value would be the original value in samples +/- the current scaled LFO value.

Is this a good way of thinking about it?

I know it's only supposed to modulate "at the end of the delay line" but that part confuses me a bit.

May 3, 2017
6:02 pm
W Pirkle
Forum Posts: 259
Member Since:
January 28, 2017
Offline

That modulation is kind of like a special very low depth chorus modulation. I would implement this as a bipolar modulation about the center of the modulation range. This equation is setup for a floating point modulator so you will get a integer + fractional component, as shown in the circular buffer chapter. It will be up to you whether or not to do interpolation on this. The generalized equation I use for chorusing is:

float range = (MAX_DELAY - MIN_DELAY) / 2.f;

float midpoint = range + MIN_DELAY;

float delaySample = LFOValue*(range) + midpoint;

MAX_DELAY: length of delay line

MIN_DELAY: the minimum delay time (MAX_DELAY - delayDepth in samples)

LFOValue: the output of a bipolar LFO [-1.0, +1.0]

I think the book lists very low depths of around +/-8 samples or so, therefore the delayDepth above would be 16 for the +/-8 version. So, the range would be 8 in the above equations.

- Will

May 4, 2017
4:14 pm
libertyprime
Member
Members
Forum Posts: 5
Member Since:
November 28, 2016
Offline

Excellent, thanks for the help!

May 6, 2017
6:45 pm
libertyprime
Member
Members
Forum Posts: 5
Member Since:
November 28, 2016
Offline

Not to double post but I figured this was acceptable given the time passed -- I'm looking at modulating a filter by a pretty substantial amount of time (min 3.0mS, max 15.0mS) to get a spacey modulated reverb sound, any suggestions on how to remove artifacts?

I was looking at storing the last read index from frame to frame then interpolating from that instead of simply interpolating the value one index earlier.

EDIT: did that with linear interpolation, exploring other options because the jumps still cause some artifacts.

Forum Timezone: America/New_York

Most Users Ever Online: 55

Currently Online:
13 Guest(s)

1 Guest(s)

Top Posters:

Skyler: 48

Derek: 46

Peter: 41

Frodson: 40

clau_ste: 39

Gwen: 32

JimmyM: 30

TheSmile: 28

EZB: 24

lppier: 23

Member Stats:

Guest Posters: 1

Members: 525

Moderators: 1

Forum Stats:

Groups: 11

Forums: 31

Topics: 550

Posts: 2158