Mp3 + Msgeq7 + LED + Linear actuator

Newbie here with ambition to make a present for beloved wife. Project: Box with a button. Button push starts mp3 track from a memory card (1:00 min long). LED rgb strip flashes with the help of Msgeq7 chip.

At some exact time points of that mp3 track I need 8 solenoid linear actuator to push sides of the box out. To be exact: 0:15sec 1st solenoid kicks 1st side out; 0:22,5sec 2nd solenoid just kicks; 0:23sec 3rd solenoid kicks 2nd side out Etc., up to the top 5th side of the box that is being kicked out by 3 short and consecutive kicks of 6th,7th and 8th solenoid.

Now comes the question. Cosidering the mp3 and LED should play continuously with no interruptions what is the best way to set time based triggers for solenoid linear actuators?

I was thinking first to do a frequency markers in mp3 track itself, so, i could use them as triggering points for Msgeq7 chip. But Msgeq7 only has 7 bands to detect frequency and with 8 solenoid and atleast 3 band for LED strip that seems not a good idea. Not mentioning that i have no clue (yet) how to change frequency in parts of mp3.

Next i thought of using millis() for timing solenoid after mp3 starts, but not sure if it will work the way i intend it to.

What do you think?

Now comes the question. Cosidering the mp3 and LED should play continuously with no interruptions what is the best way to set time based triggers for solenoid linear actuators?

...Next i thought of using millis() for timing

Yes, with millis() you can have several different timers running at the same time. Look at [u]Blink Without Delay Example[/u] and [u]several things at the same time[/u].

The MP3 shield has it's own clock and it runs on it's own. You just start/stop and select the track, etc.

You may not need the MSGEQ7... If there is only one song/track or if the number of tracks is limited, you get a LOT better results by hard-coding the events than with the MSGEQ7.

Thank you very much for reassuring my assumptions on millis(). And i will try to hard code it with out MSGEQ7 - might as well get a predictable light show out of it. That would be great. I'll try to share the results...

I think the MSGEQ7 is still a good way to go for the lightshow.

Hard-coding the actuators is the right approach though.

GypsumFantastic: You may not need the MSGEQ7... If there is only one song/track or if the number of tracks is limited, you get a LOT better results by hard-coding the events than with the MSGEQ7.

Box is going to have rgb led matrix at 4 sides (have not decided on led quantity yet). I have seen different leds (with/without drivers), shift registers, soft and libraries that help write code faster. In the end I am confused... What to choose for fast and efficient way to write code of lightmusic? Advice would be appreciated.