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

Efficient delays and delay code generators

Post any examples or modules that you want to share here

Efficient delays and delay code generators

Postby KG_is_back » Tue Dec 16, 2014 10:06 pm

Hi all,
I have made asm-optimized toolkit of delay modules and code generator modules for them. They should allow you to generate most efficient custom delays (for example the ASM-optimized hard-coded fixed sized delay).

You can download them here at Flowstone guru. If you experience any bugs, request features or have any suggestions, please submit them in the support section or here.

Interpolated versions are also planned for future.
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Efficient delays and delay code generators

Postby tulamide » Tue Dec 16, 2014 10:53 pm

Wow, that sounds just like in the early kid days, when my mum said to me: "Tomorrow I will bake your favorite, waffles." The whole night I was drooling in anticipation - that's exactly what happens right now! Can't wait to test it. Thanks a lot!
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Efficient delays and delay code generators

Postby adamszabo » Thu Dec 18, 2014 12:02 pm

Great thanks! One request if I may have for the interpolated delay, is it possible to make them so that when you modulate the delay time, it retains the high frequencies as well? Right now the standard interpolated delay will gradually lose more and more high frequencies with every delay.
adamszabo
 
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: Efficient delays and delay code generators

Postby Exo » Thu Dec 18, 2014 8:41 pm

Thanks KG! The Assembler code generators are a cool idea, and very smart ;-)

One thing I think you should make clear is how the size of the buffer works, you force the size upwards to the nearest power of 2 (which of course enables optimizations). So in some cases buffer is much larger than user anticipated, I doubt this will be a problem but worth mentioning I think.
Flowstone Guru. Blog and download site for Flowstone.
Best VST Plugins. Initial Audio.
Exo
 
Posts: 426
Joined: Wed Aug 04, 2010 8:58 pm
Location: UK

Re: Efficient delays and delay code generators

Postby KG_is_back » Thu Dec 18, 2014 8:59 pm

Exo wrote:One thing I think you should make clear is how the size of the buffer works, you force the size upwards to the nearest power of 2 (which of course enables optimizations). So in some cases buffer is much larger than user anticipated, I doubt this will be a problem but worth mentioning I think.


I'm pretty sure I've mentioned that in the module description, but I'm not sure if in all of them. Currently I have no way to check quickly, wifi adapter on my notebook stoped to work today, so I'm in the process of updating the drivers. Hopefully it fixes it... It's really anoying :evil:

When implementing the interpolation for the mono4/poly versions I've had a hard time writing the algorithm efficiently - 8 XMM registers is way too low xD
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Efficient delays and delay code generators

Postby Exo » Thu Dec 18, 2014 10:29 pm

KG_is_back wrote:
Exo wrote:One thing I think you should make clear is how the size of the buffer works, you force the size upwards to the nearest power of 2 (which of course enables optimizations). So in some cases buffer is much larger than user anticipated, I doubt this will be a problem but worth mentioning I think.


I'm pretty sure I've mentioned that in the module description, but I'm not sure if in all of them. Currently I have no way to check quickly, wifi adapter on my notebook stoped to work today, so I'm in the process of updating the drivers. Hopefully it fixes it... It's really anoying :evil:

When implementing the interpolation for the mono4/poly versions I've had a hard time writing the algorithm efficiently - 8 XMM registers is way too low xD


Ah yes sorry you have, but it is just not mentioned in the fixed delay.

Good luck with the wifi adapter, I hate it when things go bad on my PC, spend ages fixing it killing valuable programming time :evil:
Flowstone Guru. Blog and download site for Flowstone.
Best VST Plugins. Initial Audio.
Exo
 
Posts: 426
Joined: Wed Aug 04, 2010 8:58 pm
Location: UK

Re: Efficient delays and delay code generators

Postby KG_is_back » Thu Dec 18, 2014 11:39 pm

Exo wrote:Ah yes sorry you have, but it is just not mentioned in the fixed delay.

Good luck with the wifi adapter, I hate it when things go bad on my PC, spend ages fixing it killing valuable programming time :evil:


Oh, in the fixed delay I omitted to mention this, because it doesn't actually affect the processing. In all other delays, when you input maxdelay of 9 the module will allow delays above 9 (upto 16), which might be unexpected behavior, if you rely on the module to limit the delay maximum. But in case of fixed delay you get a finished "black-box" product with no input parameters. The buffer is also always less then twice as big as the delay, so when someone needs 10000+ delay, he doesn't mind a few thousand buffer spaces surplus. Except for wasting some ram space the delay will be superior to other implementations anyway. Altough it uses bigger buffer, which means more prefetching and possible cache misses, it calculates indexes in integers, so prefetching should actually work superior.

And I had the luck with the adapter - the driver was bad and I was able to update it. The time consuming part was, that I had to use my brother's computer to find it and download it (it was the worse case scenario Q:my internet isn't working, what shoud I do? A: download the fix here) = spend half an hour searching for my USB key (and ended up using my old mp3 player instead) :-D Seriously, USB key is a collision of two biggest black holes in the universe - the missing-USB-cable-hole and missing-keys-hole.
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Efficient delays and delay code generators

Postby Exo » Thu Dec 18, 2014 11:48 pm

KG_is_back wrote:
Exo wrote:Ah yes sorry you have, but it is just not mentioned in the fixed delay.

Good luck with the wifi adapter, I hate it when things go bad on my PC, spend ages fixing it killing valuable programming time :evil:


Oh, in the fixed delay I omitted to mention this, because it doesn't actually affect the processing. In all other delays, when you input maxdelay of 9 the module will allow delays above 9 (upto 16), which might be unexpected behavior, if you rely on the module to limit the delay maximum. But in case of fixed delay you get a finished "black-box" product with no input parameters. The buffer is also always less then twice as big as the delay, so when someone needs 10000+ delay, he doesn't mind a few thousand buffer spaces surplus. Except for wasting some ram space the delay will be superior to other implementations anyway. Altough it uses bigger buffer, which means more prefetching and possible cache misses, it calculates indexes in integers, so prefetching should actually work superior.

And I had the luck with the adapter - the driver was bad and I was able to update it. The time consuming part was, that I had to use my brother's computer to find it and download it (it was the worse case scenario Q:my internet isn't working, what shoud I do? A: download the fix here) = spend half an hour searching for my USB key (and ended up using my old mp3 player instead) :-D Seriously, USB key is a collision of two biggest black holes in the universe - the missing-USB-cable-hole and missing-keys-hole.


:lol: I have two USB keys and I haven't seen either in about a year, probably take me that long to find them :)
Flowstone Guru. Blog and download site for Flowstone.
Best VST Plugins. Initial Audio.
Exo
 
Posts: 426
Joined: Wed Aug 04, 2010 8:58 pm
Location: UK

Re: Efficient delays and delay code generators

Postby KG_is_back » Fri Dec 19, 2014 12:02 am

Exo wrote:
:lol: I have two USB keys and I haven't seen either in about a year, probably take me that long to find them :)


The last time I bought USB key, I bought it on a way to school (naturally because I lost the previous one) to deliver a seminary work to a professor. I literally lost it the same day... paid over 20€ for a single data transfer - the most expensive 5MB of my life!! I'll never by an USB key ever! (although thankfully receive it as a gift :-D )
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia


Return to User Examples

Who is online

Users browsing this forum: No registered users and 119 guests