What it does
Syncs lights and needles on the dashboard to a music file, similar to a VU meter.
How we built it
We processed the audio with Audacity and MATLAB to make it easier to display on the dashboard. We then used the IntrepidCS SDK to push song data to the dashboard in a timed loop, syncing the show with the music.
Challenges we ran into
Setting up and learning a completely new SDK was definitely a challenge. We had no idea where to start, and it took us a while to just digest what tasks we needed to finish to accomplish our goal, but we were able to figure it out in the end.
We ran into problems with processing the audio files, since the CSV file of the song would have had over 8 million values if we didn't downsample it. We also had problems identifying the beat, and tried many different solutions before deciding on the combination of Audacity and MATLAB which worked out well for us.
Timing was a big issue for us, since it was critical that the motion of the needles aligned properly with the music that was playing. We tried many different timer methods, but ran into consistency issues with a few of them.
Accomplishments that we're proud of
The fact that we were able to reverse-engineer the car's CAN network to determine what memory addresses corresponded to the signals we wanted to modify, and pair that to a music file. None of us had ever done anything similar to any of these tasks (i.e. reverse-engineering and audio
What's next for DashDance
In the future, we would like to make this work with arbitrary audio files that haven't necessarily been preprocessed, and be able to process them within the same C++ code.
Our reach goal would be to possibly integrate this with the music playing from the car's auxiliary input, or even with Bluetooth, so that this could work anytime music is playing and the car is parked.