Avatar

Please consider registering
Guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





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

sp_Feed sp_TopicIcon
modulated APF structure
No permission to create posts
May 3, 2017
2:16 pm
Avatar
libertyprime
Member
Members
Forum Posts: 5
Member Since:
November 28, 2016
sp_UserOfflineSmall 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
Avatar
W Pirkle
Admin
Forum Posts: 140
Member Since:
January 28, 2017
sp_UserOnlineSmall Online

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
Avatar
libertyprime
Member
Members
Forum Posts: 5
Member Since:
November 28, 2016
sp_UserOfflineSmall Offline

Excellent, thanks for the help!

May 6, 2017
6:45 pm
Avatar
libertyprime
Member
Members
Forum Posts: 5
Member Since:
November 28, 2016
sp_UserOfflineSmall 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: 36

Currently Online: W Pirkle
4 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Skyler: 47

Derek: 41

Peter: 41

clau_ste: 39

Frodson: 38

Gwen: 32

EZB: 24

lppier: 23

Msaldaña: 18

Jorge: 17

Member Stats:

Guest Posters: 1

Members: 478

Moderators: 1

Admins: 4

Forum Stats:

Groups: 11

Forums: 29

Topics: 479

Posts: 1870

Newest Members:

certvalue111, sobhana s, sam, annaharris, Marie Weaver, kev, Steven, Mr Anderson, mguy, omelc

Moderators: W Pirkle: 140

Administrators: Tom: 65, JD Young: 80, Will Pirkle: 0, W Pirkle: 140