This project shows you how to make a unit which can produce a delay of up to 8 seconds on an input audio signal.

The circuit outputs a delayed version of an input audio signal. Depending on the amount of memory implemented and the sampling rate selected, it can store from 3 seconds to 8 seconds of audio. The audio input will be delayed by an amount selectable by the user.

This device can be used to produce a delay for many purposes.  Some possible applications are:
  • Sound effects , such as echo, can be produced by adding a delay to an input signal.

  • This device can produce an effect which is sometimes referred to as “Delayed Auditory Feedback”. This effect has been used to help aid those who stutter.


  • Another application of such a device would be in a “Speech Jammer”. Such a device records a person speaking and then plays the audio back at a delay, which causes most people to get confused and thereby disrupts their speaking.  Using the device for this purpose would require a directional microphone and directional speaker.


  • The device can also be used to delay the audio from a television broadcast. In my research, I found that some people prefer to use a separate, radio broadcast for the play by play or commentary for sporting events, and as such they wanted to be able to introduce a delay to synchronize a separate audio source to the television broadcast. 


  • The circuit can be used sort of like a TiVo, but for audio only.  By changing the delay setting, you can go back as far back as the buffer size permints (only 8 seconds max in this design) to catch something you missed.

At any rate, the device described here can be a lot of fun to play and experiment with. The input range is controllable from 0 seconds to the maximum delay by means of an analog input. This analog input can simply be driven by a potentiometer, or from an external signal. Modulating the delay input with different waveforms can produce interesting sound effects.

Step 1: High Level Functional Description

The block diagram shows how the circuit works.

First, the input signal is amplified as needed. Next, the amplified signal is sampled and converted to a digital value by an analog to digital converter. The digital sample value is then stored in a large RAM buffer.

The delayed waveform is created by retrieving older samples from the buffer and sending them to a digital to analog converter (DAC). The output of the DAC is low pass filtered to remove unwanted frequencies that are an inherent part of the sampling and reconstruction process.

This process of analog to digital conversion, storage, retrieval, and digital to analog conversion runs in a continuous loop, controlled by a microprocessor. In this manner, a delayed replica of the input signal is produced at the output.

The steps that follow provide in depth detail of how each sub circuit works. A PDF of the complete schematic is attached here, with each subcircuit highlighted a different color.  The following steps explain what each sub circuit does.
<p>I have an older ver of PIC START PLUS. The 16f88 is not in the file list. Would this software work on a 16f876? And if so what changes might have to be made?</p>
<p><a href="https://www.instructables.com/member/akm3726/" rel="nofollow">akm3726</a>0 seconds ago<a rel="nofollow">Reply</a></p><p>Flin Flon, eh? I grew up in Winnipeg. I should let the author answer this, but I'll take a shot at it. The two chips ('f88 and 'f876) are different generations of PIC chips. Apart from the 18 pin vs 28 pin packages, you have to deal with the fact that the 'f88 has an internal 4 MHz oscillator. You could use a 16F876, but you'd have to rewrite the code for it, or at least change the configuration word and add an external ocillator. It's probably easier to spend a few dollars for the 'f88. You'll probably need to buy the memory and the DAC anyway.</p>
It would be easier to buy a 188 but the ver of MPLab i use is an older ver which doesn't have the 188 in it's list. I have loaded in the new ver but so much has changed that it would take another lifetime to re-learn it. So i am going to try and just re-write the code for the 876. I was just wondering if the 188 had something that is needed that the 876 might not have. But if they are compatable i will try and do it. Thank you for the reply. Laurie
<p>I was able to load the code into a blank 16F88 and have it run with no modification. I can see it would be more fun to program it yourself for the chip you have.</p><p>Good Luck!</p><p>Alan.</p>
<p>Can you increase the time delay by decreasing the frequency of your microprocessor clock? I would like to develop a time delay of about 15 to 20 seconds.</p>
<p>Reducing the clock frequency - or the sample rate would reduce your frequency response as well. We are already limited to 5KHz, about the quality of AM radio. You would have to adjust the filters to match the reduced cutoff frequency. You can get more delay by adding memory, but buffering 20 seconds of good quality audio might be a bit of a challenge. You probably could do it with the latest chips and their high memory density, but it would take a re-design, I would think.</p>
Thanks for the reply. I was trying to design a 20 sec audio delay without using a microprocessor. To do this I would need a very large capacity shift register&nbsp; (approx. one Mega bit in length) but cannot seem to find one. There are SRAMs on the market with that capacity but are hard to address and control without a microprocessor. Do you know of any large shift registers on the market?
<p>To do this without a microprocessor would be unwieldy. You might consider getting an old cassette player/recorder or two and make a 20 second tape loop. This is low tech but was a method used in the radio industry to allow delayed transmission - for cutting out bad language on the phone or in interviews.</p>
<p>I'm glad to hear that the design worked out so well for you. </p><p>Good catch, I see what you are saying about the filter. I must have a typo or wrong value in my schematic, as the circuit wouldn't work if it had a 160Hz cutoff. </p>
<p>I built this project. Nice design! I am going to use it to sync sound to video on some of the Youtube videos. My video processor is way slower than the audio.</p><p>Please check the input anti-aliasing filter. The components in the circuit give a cutoff of 160 Hz. I put a copy of your output filter in - changed 4 parts to give 6 KHz cutoff.. It works great.</p><p>Loaded the hex code as is. It ran fine right off.</p>
This is way over my head, but I want to learn. I've been wanting something like this forever so I can listen to local sports broadcasts with live TV of the same game. The radio is so far ahead of the TV that it's impossible to enjoy. <br> <br>Would it be possible to get a parts list of the components needed to complete this?
I guess I didn't include a real bill of material in the article, but all the part numbers for the ICs and other semiconductors should be on the schematic. The other stuff like resistors are pretty much 1/4 watt parts. The larger caps in the power supply part are electrolytics, and the smaller caps (0.1uF or smaller) are ceramic. The caps used to couple in the audio need to be non polarized types. <br> <br>If I get a chance I will try to load as complete of a bill of material as I can, but I don't know when I'll get to it.
Here is a million dollar idea that someone can try to build. <br>You know those neighbors that are always raising hell at all hours? Even when you are not home they are stll at it. Set up a decently powered sound system wit one of these dealys and point a directional mic at the offending neighbors house along with a decent speaker or two in the same direction. When they play their music or whoop and holler, fight, run power tools, etc. they get the same noise returned to them on say a half to 3/4 second delay. But if they turn the music down or stop screaming at each other its quiet. <br>This would be very effective I think. If anything it has to be irritating. <br>Best, Smitty
The &quot;application&quot; is much mor interesting than the project itself LOL !!!
One of the topics that I came across when looking up information on audio delays is the so called &quot;speech jammer gun&quot; AKA the &quot;Shut up Gun&quot;. That thing works like you describe, by playing back slightly delayed audio, only it is intended to be a handheld device and directed at a specific person speaking. <br> <br>That kind of thing would be a fun extension of this project, if I have the time. There is a video out there of some Japanese students who supposedly built a functioning device.
Hey, LMB! Nice project! Bit over my level though. <br>I have seen the video you are talking about and the device is still under development. Many big time companies are wanting to get ahold of it and the rights to manufacture it as a non lethal crowd disbersment tool. <br>DARPA is salavating over it! <br>Unfortunately it isnt as simple as just replaying the persons voice with a time delay. There are other things involved that need to be done with the sound to ensure that it works on whoever it is pointed at. The test that is on youtube is a controled test set to the individuals speech pattern, but the demo is valid. <br>I really think that my idea could be a big deterant to noisy neighbors, albeit you're other neighbors may start to complain about it if picks up their normal noises (baby crying, doing dishes, stuff like that). Thats something that the individual would have to figure out.
Hey, this is an awesome project. I see that you're nearly out of room, but a pot for the LPF in and one for the LFO as well would probably add a couple of really fun knobs to this. <br> <br>Also you might consider a small contact switch or two which send the LFO's signal back around to the in filter - would probably create some crazy effects. <br> <br>Anyway, great job, very thorough detailed instructions. <br>-Olaf
I had thought about including a feature to allow the delayed output to be looped back and mixed with the input, but I just ran out of space on the breadboard. <br> <br>I might lay this circuit out on a small PCB, and include a few extra features like that .
I thought that might be the case. You've crammed a lot onto there already! Nice job with this. I'm glad you're already considering V2! Can't wait to see it. <br>-Olaf
possibly one of the best projects I've seen on here so far I've often used giant delay lines and stuff to delay various types of signal but this method may just be better.<br> <br> incidentally I have a stripboard layout for a function generator which maybe of some use to you and others interested in this project <strong><a href="http://www.paulinthelab.com/2012/07/audio-function-generator-stripboard.html" rel="nofollow">HERE</a></strong>
cool! I've been thinking of building something similar with an arduino and an sd shield.

About This Instructable




Bio: "But I was going to Toshi station to pick up some power converters!"
More by LargeMouthBass:Audio Delay Module Reverse Engineering an Electric Fence Charger Stop Time with an LED Stroboscope! 
Add instructable to: