News:

SMF for DIYStompboxes.com!

Main Menu

Spectral Delay

Started by Michael Allen, September 30, 2013, 02:00:50 AM

Previous topic - Next topic

Michael Allen

Just firing in the dark, hoping for some direction.

I started thinking about trying to make a spectral delay pedal, but have no idea where to begin. I don't know much about programming or microcontrollers or DSP so I can't quite put the pieces together myself. When pointed in the right direction though, I have seemed to learn enough to do some damage.

What is needed is Fast Fourier Transform to divide the guitar signal into frequency bands, which can then have individual delay lines applied. Inspiration came from here: http://guitarextended.wordpress.com/2012/02/07/spectral-delay-effect-for-guitar-with-pure-data/

Poking around has come up with various projects that use PICs to perform FFT on audio signals, most of them then displaying the resulting frequency band amplitudes on LCD displays. Do I start here and then find a way to apply delay lines to each frequency band? Should the delay happen in the digital world or back in analog?

Any ideas to get me rolling?

deadastronaut

if i were approaching the idea in an analogue world i'd try a simple colour organ setup...different leds light for different freqs..

setting off delays...erm...somehow. :P

just thinking aloud....as you were. :)
https://www.youtube.com/user/100roberthenry
https://deadastronaut.wixsite.com/effects

chasm reverb/tremshifter/faze filter/abductor II delay/timestream reverb/dreamtime delay/skinwalker hi gain dist/black triangle OD/ nano drums/space patrol fuzz//

Digital Larry

FFT won't help you because you don't get the filtered audio, just a number representing the level of the signal in that band.

I have done something close to this with my SpinCAD Designer software for the FV-1.  There, I have a state-variable filter block with simultaneous low pass, band pass, and high-pass outputs which can be sent to whatever other block you would like, including a delay.

If you wanted more spectral separation you could use 3 different SVF blocks and use the control panel to set their center frequencies, then send the bandpass output of each to its own delay line.  Your audio input would go to the input of each SVF block.

You're going to run into some limitations because the max amount of delay is one second.  This would be need to be spread out between all available delays, but that's still reasonable as long as you weren't looking for LONG delay times.

SpinCAD Designer will let you simulate this on your Mac, PC, or Linux box with suitable Java Runtime Environment installed.  Head over to http://holycityaudio.com/forum and register to download and try the software.
Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer

samhay

#3
You can use a FFT, then zero everything either side of your desired frequency band and then take an inverse FFT. This gives you an essentially infinite-pole bandpass filter.  You zero various frequency regions and use separate IFFTs if you want multiple bands. This is not a cheap calculation, and I am not sure that that fastest dsPIC can do this fast enough to give an adequate sample rate. Then you have to implement multiple delay lines as Larry pointed out...

Edit - fixed some typos
I'm a refugee of the great dropbox purge of '17.
Project details (schematics, layouts, etc) are slowly being added here: http://samdump.wordpress.com

slacker


samhay

Looks like the Raspberry Pi can run Pure Data natively, so if you play with the buffer size, you may be able to get the patch to work with relatively little effort. This can be make into something like a stompbox - http://www.youtube.com/watch?v=bLcW70tcBX8

I'm a refugee of the great dropbox purge of '17.
Project details (schematics, layouts, etc) are slowly being added here: http://samdump.wordpress.com

Michael Allen

Well son of a gun. Got a raspberry pi and an arduino on the way. Let you know how it turns out