Carol of the Bells – Damien Kee

I know it’s late, but the end of the year just got a little too busy for me.
Here is my LEGO MINDSTORMS EV3 version of ‘Carol of the Bells’. I found a version of the song in 3 parts and assigned each voice to an EV3. Timing was particularly difficult as while the notes played as expected, things like Loop and Bluetooth functions all take a finite time, which can throw out the timing of the song. In the end I sent a bluetooth message from the Master EV3 (left hand one) to the two Slaves ever 4 bars of the song. It does a pretty good job of keeping it roughly in time.

To make the Brick Lights flash in time with each note, requires some multi-tasking. I start the musical note and turn on the brick light at the same time. Then as the note is still playing, I take the note duration, divide by 3 and wait for that amount of time before turning the light off. This gives a nice effect whereby longer notes have the light left on for a longer period of time. Rather than do this for every single note, I used the My Block Builder to create my own block. It accepts inputs of Note name, Note Duration and Volume and then send all those variables to the right places.
![]()
This is a screenshot of one of the programs. You can download the full project file here –
[carol_of_the_bells.ev3](/storage/carol of the bells.ev3)

