Real-Time Audio Synthesis and Effects with the Arduino. A great tool for the exploration of new sounds and signal processing.
Rewards from this Kickstarter project are now available from:
Thank you all so much for making this project a success!
Introducing the Arduino DSP Shield: An Arduino compatible shield with sample sketches for doing audio processing and synthesis.
- an audio input,
- an audio output,
- a programmable control pot
Two A Light Dependent Resistors (LDR), based on cadmium sulfide (CdS). Cadmium pigments based on CdS became commercially available in the mid 1800's and were used in paint by Van Gogh, Monet and Matisse. Now you can use CdS cells too, for those MOST excellent LDR experiments
The shield includes two gold plated adapters, go in from a headphone jack, output to a stereo.
“In truth, the gold standard is already a barbarous relic.” -Monetary Reform (1924), p. 172, John Maynard Keynes .
Just imagine how jealous your economist friends will be when they see this fine barbarous relic!
So there, John Maynard Keynes!
Sample sketches include:
- 1. Audio oscillator (stable, and precise function generation)
- 2. Echo (longer than 30ms delay)
- 3. Reverb (shorter than 30ms delay)
- 4. Phaser effect
- 4. Ring Modulation (sound like a Dalek!)
- 5. Complex Tone generation
All elements are adjustable through the fully programmable potentiometer
Here is a finished board seen from all sides on a turntable;
3D modeling program was used to make sure that the board would stack cleanly under or on top of other shields, with full side access to both jacks, trim pot and programmable control pot.
3D modeling program was used to make sure that the board would stack cleanly under or on top of other shield, with full side access to all jacks and controls. With the supplied software, it is a snap to program with the arduino IDE.
It is small and cheap enough to use for:
- teaching signal processing,
- very fun sound effects,
- unique music processing,
- guitar effects,
- like, totally custom effects boxes,
- function generator,
- telecommunications, etc.
This can be a building block for inexpensive real-time signal processing and synthesis applications. It is even low power, so you can power it right off your usb port. You can plug this into an embedded application to measure sound remotely.
I am so excited by this project because it has exceeded all my expectations;
Here is what you can do with the shield using the supplied software:
- 1. Function generator
- 2. Phasor
- 3. Ring Modulator
- 4. Echo
- 5. Reverb
- 6. Guitar Effects
These are only a small sampling of what the DSP Shield can do.
The possibilities are endless. I feel sure people will use these things for stuff we never thought of.
Where we are NOW:
The latest production run of 10 boards can be seen here and this is fully functional and tested:
The Production Plan:
- Boards are fabricated in China.
- Parts are available from Mouser Electronics, USA.
- A contract assembler is in Milford CT, USA;
WHY WE NEED THE MONEY: The Goal amount will go directly to producing the first production run of the Shields. With volume production, we can keep costs low.
WHY YOU NEED THIS BOARD: Stop having to breadboard your own I/O circuits and select an easy-to-use engineered and professional solution.
Well kickstarters, We need your help!
In order to bring this shield, at a low price, to the arduino community we have
to have at least 100 boards on our initial order.
Blog the Blogs. Tweet the Tweets.
FIGHT the FACEBOOK LIKE with FACEBOOK LOVE.
Back us today and get yourself some DSP Shields.
Thanks for watching our video and for your backing!
Thank you! Thank you! Thank you!
---- Who is this guy anyways?
Doug Lyon is chairman of the Computer Engineering Department at Fairfield University, Fairfield, Connecticut. Dr. Lyon has written three books (two related to signal processing). He is doing this project to learn enough about engineering entrepreneurship in order to teach his students. He is also the president of the Inventors Association of Connecticut. More about him and his publications can be found at http://www.docjava.com
------------Special Reward; the arduino Uno R3. For those who don't have one, or just need a spare, I have created a bundle that includes an Uno; Pictured below:
Risks and challenges Learn about accountability on Kickstarter
With all projects, there are inherent risks involved and this project is no different. There are basically 3 challenges that we need to overcome.
The first has to do with the availability of the Processor. The board fabricator is off-shore, but has proven themselves as more than able to fabricate the board at a low-cost and high volume in reasonable speed (it takes 6 weeks, using a slow, low-cost, shipper).
The second is the assembly. To keep costs down, we have allowed our assembler plenty of time to fabricate the boards. All components are through hole components, and this creates a great deal of overhead in assembly. This creates a 3 month lead time.
The third is testing and a possibility that something might go wrong after assembly (we hope it wont!). This is why we have a promised delivery date of August. We will order the boards as soon as our project is funded. We plan to under-promise and over deliver!
Great Question! The 1/8 inch jack is the wrong size...so I use a 1/8 inch to 1/4 inch audio jack adapter...but the output is a line-level audio output and drives the amp (you can even hear it in the demo video).
It is great for the guitar (that is one of the reasons I built it!).
Two gold plated adapters comes with assembled boards (stretch goals #2, and #3 thanks!).
It is all done in software (C, really). There is no external DSP chip.
The sample software comes with the board. You can create all the effects heard on the video.
Stunned and very grateful! Thank you all for your support!
There was an arduino site out of Poland (it is very interesting!):
The answer is, well, it depends:
Typically, it takes 25 ADC clock cycles for the first conversion, 13 there after...this is a signal processing thing, you know. We trade off memory for sample rate and dynamic range. It is all programmable, within limits.
Maximum sample rate is a function of the number of bits...Typically 10 bits dynamic range (figure 64 dB SNR). We slow things down for audio applications. This is a memory thing, if I crank the rate the bandwidth can improve, but I run out of arudino memory, quickly, so there is a tradeoff. Given the code, you can play around with the memory limits of your particular arduino. If you know the bandwidth of the input signal, you can crank down the sample rate and get longer delays for those fancy frippertronic effects!
Explains it better.
Yes...it is just the shield...arduino is NOT included (unless you get the bundle).
No, a mic level will need a mic pre-amp to get to a line level.
Hey, that is clean! You should see it now!
Has an example, I have more, if you want...
We use PWM and an inductor/low pass filter to get our waveforms out.
I created some examples that are done without for-loops, so you can see for your self. I tried a major scale an a harmonic minor scale (I like these for the Theremin as a continuous pitch change is not very musical):
// precompute the 12th root of two in order to obtain
// a equal temperment chromatic scale.
//midi note numbers are: [60, 62, 64, 65, 67, 69, 71]
//note class 0,2,4,5,7,9,11,12
//Key c c# d d# e f f# g g# a a# b c
// 0 1 2 3 4 5 6 7 8 9 10 11 12
// 0 2 4 5 7 9 11 12
// harmonic minor 0 2 3 4 5 6 11 12
int scale = 5;
// major scale
Testing shows that the Uno and http://arduino.cc/en/Main/arduinoBoardDuemilanove
both work fine. Leonardo is pin compatible, but the timers are a bit different and I am working on fixing this now. If you have a need for this, be sure to let me know. The mega and duo are not compatible at all, and this requires a different shield. Mega is really close and runs some programs. Apparently, I selected pin 11 (the PWM pin that is off limits on mega when you use some timers). I am looking into a work around for this now. If you know about these things, please contact me at firstname.lastname@example.org, thanks!
What's facebook? Um, I just joined. I have no friends!! That is sad. Thanks a lot.