Multifile - Multioutput Audio player

Hello there,

My first post and totally beginner. Doing my first workshop on Arduino in few days :slight_smile:

I was wondering if the following project is possible in Arduino.

For an art sound installation I need to play in loop 5 different mono audio files, all of different lengths, each through a different output.

But I need it to follow certain conditions:

  • Solar powered (looking at the right type of panels now)
  • The playback should start automatically for each file as soon as the device(s) receives power.
  • The last playing position of each file should be "remembered" in order to continue playing from the same spot whenever the power comes back on. Like pressing pause and play again.
  • If possible, I would like the device to automatically select a different set of 5 audio files depending on a calendar or days count.

It might too complicated for a beginners project, but at least I would like to know if it is potentially doable or I should better think about a different platform.

Thank you enormously!

a.

It might too complicated for a beginners project,

It is indeed.

It is possible but not with a simple Arduino Uno. You will need something with a lot more grunt and you will need external D/A converters, one for each channel. It sounds like you would need a Teensy 3.6, that has two internal D/As and so you would need three external ones. Streaming 5 audio files off an SD card sounds like it could be tricky as well.

The bit about remembering where something was when the power is removed is also quite tricky and it will depend exactly how the power is removed and if the processor can get some advanced notice of this and keep running for about half a second once that notice is received.

So not impossible but close.

should better think about a different platform.

These problems will face you no matter what platform you choose. Maybe using five DF player modules would help you simplify things and keep the system powered up with a back up battery providing a sleep mode during solar power outages.

Hey Mike,

Thanks a lot for your time and valuable feedback.

I thought my project would be too complicated, so I've been rethinking, removing functions and simplifying.

Would this be easier and doable?

  • Power grid connected. Forget about the solar power.
  • 1 car hifi amplifier for driving 5 speakers: 5 x 60W at 8 Ohm.
  • 1 Arduino with 5 players attached or 5 Arduinos, connected to the power grid and a rechargeable battery as back up power. Playing the 5 different loops endlessly from individual SD cards without ever stopping. They don't need to be synched. The DF modules you suggested have an onboard DAC right, so they can be connected straight to the amplifier.
  • Setting up some kind of master clock/calendar or time database that has the following functions:

a) Turns on and off the amplifier when the sun comes up and down. These info can be downloaded and stored in the device I suppose. Like a calendar of sun tracking for the next 10 years in a particular location on Earth. (EDIT: I guess this could be achieved easier with a simple light sensor)
b) Changes set of loops twice a year on fixed dates: winter and summer (21st March / 21st September).

For the moment I don't need the exact details on how to build this as I still need to get the budget approval from the art institution, but I would like to know if it is doable or if you guys see any impossibilities on my idea.

Thanks again! This forum is wonderful!

a.

  • 1 car hifi amplifier for driving 5 speakers: 5 x 60W at 8 Ohm.

While a car amplifier might have 5 speaker outputs it would not have 5 speaker inputs and that is what you would need if you wanted a different clip out of each speaker.

Changes set of loops twice a year on fixed dates: winter and summer (21st March / 21st September).

Yes you could do that although the equinox is not always on the same day. But having the same clips playing continually for 6 months is going to be quite tortuous.

  • Setting up some kind of master clock/calendar

A simple real time clock board could do this. But you have some calculations to do to work out sunrise and sunset from your specific location, but it is well within the capabilities of the Arduino to do this.