Tape Style Delay with no Digital Artefacts / Bitcrushing


#1

Hey there,

I tried a lot of objects from the community library, for example the "tape delay" by @TheSlowGrowth and the syncable delay by @DrJustice and even looper blocks by @rbrt that I use like a delay to get this pitch chaning effect when twisting the speed of delay. Like on tape, bucket brigade and vintage digital delays. Problem is I always get this bit crusing like noise when I twist the speed. I guess this propably due to bad interpolation or something.

here and example:https://soundcloud.com/blindsmyth/axo-bitcrushing-delay/s-Fr16w

Although it sounds quite cool the bitcrushing thing is kind of overwhelming.

Is there any solution out here that is more true to that classic delay time twisting sound? I mean this effect has been realized a douzen of times in dsp environment, so I'm quite surprised to still not having something like that in axoloti...

P.S. I remember having quite good results with "triggered buffer" by @cpwitz, but I could't clock sync that one and can't afford a 32bit table.


#2

By smoothing the time change sufficiently one can get rid of the sharp discontinuities, which gives tape-delay'ish pitch sweeps.

The attached example patch demonstrates this. On the left there's a bread and butter delay patches together, with a 1 pole LPF to smooth the changes. Wiggle the delay time dial to test (not the time knob on the reader module).

seq_test_1_smooth.axp (20.1 KB)


#3

This sounds pretty dope and is pretty much what I'm looking for, thx!! The pitch change sound is somehow digital but in a nice way that's definately really expressive but not too prominent.

Now i've now only two things missing
1.Could you add a tap tempo/clock to this and still have the knob changing dlytime/pitch relative to tap/clock?
2. All my sdram is taken by a big table for looping but infact I only use 3/4 of this table for looping. The last 1/4 is theoretically free for delay.
Woul there be a way to built this either with tables or would it be possible to change dly read and write so that they use part of that table?

Right now I'm using this (based on @rbrt's blocks)
Using the Lp filter before delay/read doesn't really work unfortunately.
table delay.axp (12.4 KB)


#4

OK, here's a version with tap tempo and relative smoothed time control.

Note that you have to tap to get it started since the initial delay time is 0. The relative time control uses the proportional time modulation input for a range that corresponds to the delay line length.

Note that these patches use the factory 1 pole LPF for the smoothing - one might want one that goes lower in frequency than 8Hz for even more smoothing at the cost of the fastest rate that the delay time can be changed.

It may be possible to make a writer that uses a portion of a referenced table, but that is a rather specialized functionality (which may require a matching reader), and I think that other means of making room should be tried first.

Edit: added tape flutter to the delay just to keep myself entertained...

seq_test_1_smooth.axp (22.8 KB)


#5

Really nice!
I remember using your synced reader a while a go but had to switch to that table solution because of ram space.

If you put the filter in the feedback path together with a hp and saturation you get totally tapeish sounds :slight_smile:

I want to work on my multiple axoloti setup where I can use one board only for fx, with you filter trick I'm definately happy to use the delay in that setup.

Ok that is good to know. I'm not a coder but I looked into the table and delay objects and found they are both referencing to an array so good to hear that there is hope :slight_smile:

This is pretty hard because table/alloc only allows me double the table size values. So I could half the table's size but that one mean half the looping time per slot wich is not an option because I would end up with 10s looping time per slot, wich is too short for certain musical phrases.
The possibilty to save the recorded loops to sd card in realtime in order to free sdram would propably save me in that case :slight_smile: