Beginner References Advice and Real-Time Digital Signal Processing

Hi, I have only just started working with Arduino, and it would really help to find some sort of literature on audio projects for beginners. Any help?

I am also beginning to create sound design for use in a theatre production, and I am planning on using the Arduino Uno as the heart of a real-time digital signal processing station. The audio that I am using as input signal will be live conversation between two actors and (maybe, if it's not too complicated) a small ensemble of instruments.

I am planning on engineering an audio input unit from a microphone cable to transmit the audio signal from the actors to the Uno, which will process the audio based on the currently unwritten program. The output will be sent to a mixer in order for me to shape the volume, EQ and pan of the output before amplification into the theatre.

I also have a very little amount of coding experience, but I will try my best to learn. Could a user please advise on a starter project along these lines so I can learn a little more about real-time digital audio processing?

How much do you know about digital signal processing?
With the basic Arduino framework, the best you've got is 10 bit audio data at a bandwidth of, at best, about 4 kHz, which is a little better than telephony quality.

Technically, I have little experience with the software that powers digital audio processing and as much practical experience as just having spent time as an amateur musician who has seen a lot of guitar pedals and effects in action.

I know that there are Shields out there that are specialized for audio application. Could you recommend one, because I would definitely need a little more quality than that. I actually would be interested to learn about different ways to process digital signals for a live audio application, if that makes sense. Alternatively, a better question would be what are the practical uses of digital signals for gathering raw data to support programs on the Uno designed to perform diverse functions not limited to audio output?

Digital signal processing is not a beginners topic. However it can be done and I have just had a book published about some aspects of it.

It would help if you tell us EXACTLY what you're trying to do...

Technically, I have little experience with the software that powers digital audio processing and as much practical experience as just having spent time as an amateur musician who has seen a lot of guitar pedals and effects in action.

DSP is an advanced programming topic. If you were studying university computer science or engineering it's probably a 4th year class. There is a [u]free online DSP book[/u] if you want to look into it.

And, the Arduino is not really powerful enough for any "serious" audio processing (although some people have made guitar pedals).

Most guitar pedals are analog. Some are digital, and some things (like delay) can be done digitally without a processor.

I wouldn't recommend real-time audio processing on a regular computer either. It can be done but the multitasking operating system means you need input & output buffers, and buffers are delays. People who do real time audio through a computer often struggle to get the latency (delay) down to an acceptable level.

I know that there are Shields out there that are specialized for audio application.

Most of these shields have all of the electronics for playing an audio file. There's memory, a clock, and a digital-to-analog converter. The Arduino isn't even "seeing" the audio, it's just selecting a file and starting/stopping playback (and maybe volume control or some other control-inputs to the audio shield).

I actually would be interested to learn about different ways to process digital signals for a live audio application, if that makes sense.

Get an audio equalizer or other [u]effects processor[/u]. (These usually process analog audio, even if they are digital internally.)

Alternatively, a better question would be what are the practical uses of digital signals for gathering raw data to support programs on the Uno designed to perform diverse functions not limited to audio output

The Arduino can do things like sound activated lighting. I've made some sound-activated lighting effects with the Arduino. The effects I've made only depend on "loudness", but you can do some frequency analysis in hardware or software. For my effects, I use a circuit called a peak detector, that puts-out a varying DC voltage that follows the peak signal level... That way my Arduino can sample the "loudness" slowly (about 10 times per second) and I don't have to read or "process" the actual audio signal.

If you want to do frequency analysis in software, there are Arduino libraries for that, so you don't have to do all of the DSP programming yourself.