Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright

Delaying freely in range of 1 to 44 samples

For general discussion related FlowStone

Re: Delaying freely in range of 1 to 44 samples

Postby Perfect Human Interface » Sun Mar 06, 2016 10:14 pm

Wow neat, thanks Martin!

Which method does the stock interpolated delay use?
I don't mean to hijack (although Tulamide may have gotten what he wanted already?) but I'm working on a project that uses interpolated delay for time-based distortion/detuning and was wondering what kind of properties could exist within the delay itself. The stock delay sounds fine to me but could something else work even better?
Perfect Human Interface
 
Posts: 643
Joined: Sun Mar 10, 2013 7:32 pm

Interpolation Methods

Postby martinvicanek » Mon Mar 07, 2016 9:50 am

IIRC the (interpolated) stock delay is allpass.

Allpass Interpolation: Best for slowly varying Delays like in a Chorus
Linear Interpolation: Best for fast random access like in a pitch shifter
Lagrange Interpolation: Best for random access with high fidelity like in a pitch shifter
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Re: Delaying freely in range of 1 to 44 samples

Postby tulamide » Mon Mar 07, 2016 9:26 pm

Wow, Martin. You never cease to amaze me!
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Delaying freely in range of 1 to 44 samples

Postby Tronic » Mon Mar 07, 2016 9:33 pm

Martin, as always, a big thank for this.
I have a question regarding the implementation of the Lagrange interpolation,
what type of equation you used?
I'm trying to deduct it from assembler, but the optimization makes me harder to reverse the code :D
Tronic
 
Posts: 539
Joined: Wed Dec 21, 2011 12:59 pm

Re: Delaying freely in range of 1 to 44 samples

Postby martinvicanek » Tue Mar 08, 2016 12:09 am

Tronic, I provide this link although you probably know what Lagrange interpolation is. As to the implementation, I am storing 4 consecutive samples per quad word mem entry to minimize r/w access. So at a given instance, the current sample would be in SSE channel 0, the previous sample in channel 1 and so on. Then I use some shuffling and I think also SIMD to some extent to efficiently evaluate the Lagrange formula. I usually keep a code version for documentation but in this case it is not pssible.
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Re: Delaying freely in range of 1 to 44 samples

Postby Youlean » Tue Mar 08, 2016 8:20 pm

Here you can see different implementation of interpolation... I think that this schematics was made by Exo...
Attachments
Interpolation.fsm
(141.15 KiB) Downloaded 909 times
Youlean
 
Posts: 176
Joined: Mon Jun 09, 2014 2:49 pm

Re: Delaying freely in range of 1 to 44 samples

Postby Tronic » Thu Mar 10, 2016 6:08 am

Thanks guys,
I just wanted to compare my Lagrange implementation,
because I get the same results, but I have a different coefficient from yours.
So I was wondering what kind of approximation you used for the coefficients of the polynomial.
In case, if you are interested to compare it to, I will post the code, but not optimized. :)
Tronic
 
Posts: 539
Joined: Wed Dec 21, 2011 12:59 pm

Previous

Return to General

Who is online

Users browsing this forum: No registered users and 64 guests