Ambient sound player/mixer - randomly play sound samples at same time

Hi, :slight_smile:

I was looking to make a ambient sound generator.
The idea is to be able to trigger additional sound layers.
So for example you start with a rain sound, can add a thunder layer, ad a lightning layer, remove thunder layer again, ad a animal howl etc.
As far as I understood, this might not be possible with arduino, correct?

Just asking, because if so, I might have to start with a Raspberry?

thanks in advance!

No matter what you use to control it, please explain where the sounds actually originate. Are they recorded somewhere and played back somehow or are they generated with program code?


Hi, thanks for your interest!
Well, since it will be hard to generate unique sounds, i was thinking to play loops of wave/mp3/.. files.
But maybe i am making it to hard for myself, because what i would love to end up with is an interactive device where you could place elements on (sound blocks you could say) where a controller notices what is put on (maybe nfc device or something) and according to the blocks placed play the according files with random delay or frequences..

But for starters I would already be happy to get something done like this by pushing buttons.. but i'm just not sure if arduino i capable of achieving something like that..

The venerable DF Player Mini can play one track at a time. You could have a bunch of those and an analog sound mixer behind it before the whole is going to an amplifier.

Or get something like a RPi which should have enough horsepower to digitally the sounds before playing it on some form of sound output. Probably the more appropriate board for this project.

Once again, thanks for thinking along!
So I guess it won't be a job for the arduino.. the only option I think if I wanted to use arduino, it would be that i make "soundboxes" with something like that DF player mini.. and when they are put on a power source, they start playing the sound, so you could put different instruments on a table or something.
But i'm not sure if that is the way i want to go, unless I could render them all through the same speaker. I guess I will have to look at another board like the Pi? Is that the cheapest board able to do so?
Or would it be an option to use an arduino to trigger something and send to a old android phone and let the phone do the work? (so they also get a new life ;))

The RPi is basically a cheap, stripped-down PC.

Or would it be an option to use an arduino to trigger something and send to a old android phone and let the phone do the work? (so they also get a new life ;))

Can do - using e.g. a Bluetooth connection. You're limited by the number of Bluetooth connections the phone supports, for the number of Arduinos that can be connected at the same time.

Thanks. :slight_smile:
So to summarize: Arduino itself is not powerfull enough to do so.
Using an old Smartphone will become to complex I guess, because although I can connect it through bluetooth, the real problem will be in triggering the selected tracks and mix those as requested.
So you will need a specific program to translate those.
Best option will be to use a rpi, so i can direct connect pins to trigger soundtracks playing (ok, with a little programming, but still. :wink: )
thanks for your support!

Just send a simple command over Bluetooth telling the phone which tracks to start or stop. Up to 128 tracks with start/stop command can be done with a 1-byte command, so you don't even need to do fancy command parsing.

Thanks again for the continuous support!
So it would actually be an option to use an old phone.. (what i would really like, since i have a few ;))
If you could point out what player supports these kind of commands, i would be gratefull!

So basically I could:
Register with arduino what "instruments" are connected.
According to those, start certain tracks and repeat/delay those (I could perhaps let them chose randomly certain tracks, add a random delay, repeat them maybe even randomize playback volume!)
If an instrument is removed, stop playing those tracks..

So basic operation:
Arduino on, connect to Bluetooth.
Read states of certain trigger points.
Start/stop tracks according to readings (this is still a bit blank on how to proceed on this exactly)
Maybe I could even add a timer element.. like play for 1 hour, 2 .. etc.
Enjoy :wink:

And i can't pinpoint enough.. thanks for the feedback and pointing out!