I'm searching around some information for a personal project. I'm wondering if it is possible to use an arduino as a custom audio amplifier.
The context is the following : as an audio amplifier I would like it to process an audio numeric signal (input) to reduce volume or amplitude of a specified window of frequencies to the output. I'm looking for a way to code that kind of program, so I would be able to control the process a maximum, and choose frequencies windows to work on.
Why ? It would allow me to modulate signal by defining myself frequencies windows for basses / middle and high frequencies and process them.
I'm sorry if my post and my reflexion seems unclear, I've been searching for multiple hours and didn't find anwsers I expected. I hope you guys could help me in my reflexion or giving me any idea, even a little one. Thanks you very much !
The cheapest and easiest way is with analog op-amp filters. Standard filter configurations are high-pass, low-pass, bandpass, and band-reject.
It can also be done with digital signal processing but it generally takes a computer or a specialized DSP chip. There is something called the [u]MiniDSP[/u] which comes in a variety of configurations and I think it's "easy" to program. (In general, DSP is advanced programming.)
Why ? It would allow me to modulate signal by defining myself frequencies windows for basses / middle and high frequencies and process them.
It sounds like you want a [u]crossover[/u]. "Electronic" crossovers (like the link) are used with line-level signals which go into separate power amplifiers in a [u]bi-amplified or tri-amplified[/u] (or more) setup with separate amplifiers for the woofer, midrange, and tweeter. Big stage-show systems are usually tri or quad-amped. Some "big" car audio systems are configured like this.
There are [u]pro audio power amplifiers[/u] with built-in DSP filtering so you don't need a separate crossover and there are car amplifiers with built-in filters (probably analog).
Something similar is done with home theater systems... The bass from the surround speakers is usually re-routed to an "active" subwoofer with an amplifier (and sometimes a low-pass filter) built-in.
An "amplifier" boosts the signal. A microphone preamp boosts the millivolt microphone level to audio line level (about 1V). A power amplifier takes a line-level input and boosts the voltage & current to drive a speaker. A guitar amplifier has a preamp and power amp built-in.
"Modulation" is variation. AM (amplitude modulation) varies the signal up and down. If you rapidly cycle your volume control up & down, that's modulation. That can be done electronically or digitally and it can be used as a special effect called "tremolo". Frequency modulation as an audio effect is "vibrato".
I'm searching around some information for a personal project. I'm wondering if it is possible to use an arduino as a custom audio amplifier.
The context is the following : as an audio amplifier I would like it to process an audio numeric signal (input) to reduce volume or amplitude of a specified window of frequencies to the output. I'm looking for a way to code that kind of program, so I would be able to control the process a maximum, and choose frequencies windows to work on.
Why ? It would allow me to modulate signal by defining myself frequencies windows for basses / middle and high frequencies and process them.
I'm sorry if my post and my reflexion seems unclear, I've been searching for multiple hours and didn't find anwsers I expected. I hope you guys could help me in my reflexion or giving me any idea, even a little one. Thanks you very much !
This statement was true long ago. Technology has improved greatly in the last 10 years!
DVDdoug:
It can also be done with digital signal processing but it generally takes a computer or a specialized DSP chip.
Today 4 categories of 32 bit ARM microcontrollers exist.
Cortex M7 (Teensy 4.0) would be massively overkill, unless many filters are needed.
Cortex M4 (Teensy 3.x & Adafruit Metro M4) is plenty powerful enough to run this sort of filtering & remixing with variable gain.
Cortex M3 (Arduino Due) could probably do it.
Cortex M0+ (Adruino Zero & MKR, Teensy LC) might be able to do this in a very limited way, but getting to keep up in real time would be a huge challenge.
Of course this is far beyond the old 8 bit AVR chips.