Controlling Sound Samples with Arduino

Hey guys. I’m trying to trigger 6 different sound samples to 6 different speakers using a time-based sensor and an Arduino. The idea is that you cover the sensor, and the longer you hold on, a new speaker starts to play sound. Is this feasible??



The six sensors seems pretty easy. Just start a counter when the sensor is triggered and reset it to zero when it stops being triggered.

I have only made sound using Adafruit's WAVE shield. great, but only plays one sound at a time through one speaker. Not sure if you want all six sounds at once or the sound just switches to a new speaker the longer you trigger the sensor.

I think the hardest part would be figuring out how to wire 6 speakers.

Are the sounds on the 6 speakers supposed to be synchronized, like gradually each of 6 separate synchronized audio channels comes to life?

Are the sounds to be recorded sound clips, or generated tones or similar? Do they loop or just play once?

I think my approach would be to have separate MP3 players for each of the 6 channels.

Maybe something like this:,49979.0.html

Then the Arduino code has to command the player to rewind and play the clip on a given player. You'd have flexibility with different clips to choose from on each channel. But synchronizing the channels in any way would be tough.

ya so each speaker has it's own sample to be played. they are pre-recorded. the idea is that by the end of the time limit the whole chorus of a song has come to life with vocals, drums, guitar, etc. each to be played from a different speaker. so i'll have to get some cheap mp3 players and wire the arduino to them?

Try some of the MP3 modules here

I guess syncing 6 different mp3 players will be very difficult.

MikMo: I guess syncing 6 different mp3 players will be very difficult.

I agree. I think rather than starting them independently, have three and start them simultaneously. Then the L+R channels of the three are the 6 sound channels. Then sequence the sound on the channels by starting the channel's recording with X seconds of silence. I think it would be possible to start 3 players within a few dozen ms of each other.

There are MP3 player modules like the sparkfun one that are designed to be fed data direct from the MCU via SPI. It is possible the Arduino would be fast enough to feed three of these from a specially formatted file on an SD. Build a file with three stereo MP3 channels interleaved in 256 byte chunks. Read the file a chunk at a time, and select and feed each of the three MP3 players in turn. Something like that. It would be possible to keep the channels pretty well synchronized, I think.

you guys rule. thanks for all the info so far. i'll post up in the next couple days with my progress. thanks