Efficient delays and delay code generators

Post any examples or modules that you want to share here
Post Reply
KG_is_back
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Efficient delays and delay code generators

Post by KG_is_back »

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.
tulamide
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Efficient delays and delay code generators

Post by tulamide »

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)
adamszabo
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: Efficient delays and delay code generators

Post by adamszabo »

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.
Exo
Posts: 426
Joined: Wed Aug 04, 2010 8:58 pm
Location: UK
Contact:

Re: Efficient delays and delay code generators

Post by Exo »

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.
KG_is_back
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Efficient delays and delay code generators

Post by KG_is_back »

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
Exo
Posts: 426
Joined: Wed Aug 04, 2010 8:58 pm
Location: UK
Contact:

Re: Efficient delays and delay code generators

Post by Exo »

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.
KG_is_back
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Efficient delays and delay code generators

Post by KG_is_back »

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.
Exo
Posts: 426
Joined: Wed Aug 04, 2010 8:58 pm
Location: UK
Contact:

Re: Efficient delays and delay code generators

Post by Exo »

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.
KG_is_back
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Efficient delays and delay code generators

Post by KG_is_back »

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 )
Post Reply