Audio frequency modulation

Hi people :slight_smile:

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 !

Have a good day :slight_smile:

The Arduino is not powerful enough for that.

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.)

There is an old book called [u]Active Filter Cookbook[/u] but I'm sure you can find the same information online.

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.

2-way and 3-way hi-fi speakers have a built-in [u]passive crossover network[/u].


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".

Antoninbln:
Hi people :slight_smile:

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 !

Have a good day :slight_smile:

You want to make an active crossover?

I have some issue with its tones

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.