Dynamo Team Note:

At the close of 2025, the Dynamo community gathered for the “Good Old-Fashioned Holiday Modeling Contest with Dynamo”, inviting members to create festive and imaginative projects using Dynamo. You can read about the original contest here: https://forum.dynamobim.com/t/dynamo-challenge-good-old-fashioned-holiday-modeling-contest-with-dynamo/113324

We are delighted to share this guest blog post featuring the winning entry from community member, Alien. This entry is the “Auld Lang Syne” Player, a playful and technically inventive way to ring in the New Year with Dynamo.


What Does It Do?

Dynamo plays Auld Lang Syne, the traditional Scottish New Year’s song, by iterating through an ordered list of sound files.

As the tune plays, a miniature piano — created entirely with Dynamo geometry — lights up the correct key in real time, colouring each note as it sounds.

It’s part technical experiment, part festive absurdity… and entirely Dynamo.


🎬 Video (sound on!)


Setup

  • Created on a Windows 11 PC

  • Using Dynamo for Revit 2025

  • Graph uses OOTB (Out of the Box) nodes

  • Includes the Dynamo Text package

    • Used only to write “Happy 2026”

    • Does not affect the tune


Why?

Dynamo forum competitions tend to appear quietly — often in the middle of the night for those of us in Europe.

There’s usually a delightfully vague brief and absolutely no sensible reason to attempt the challenge.

But we do it anyway.

Because it’s fun.

Because you might learn something.

Because suddenly Dynamo is being asked to do something it was never designed to do — using tools meant for geometry, data, and order.

The task isn’t about usefulness or optimisation.

It’s about:

  • Taking a vague idea

  • An ordered list

  • A Python node

And seeing whether something technically absurd can be made to happen.

In this case?

Dynamo playing Auld Lang Syne.


Thought Process

As a Brit, New Year and Auld Lang Syne are basically synonymous.

It’s on the TV.
It’s on the radio.
It’s being sung somewhere slightly out of tune every single year.

Just as you can’t really have Christmas without mince pies, you can’t have New Year without Auld Lang Syne turning up — whether you asked for it or not.

I’d already experimented with text-to-voice in Dynamo a couple of years earlier, so this wasn’t a huge leap into the unknown.

The process:

  1. Grab sheet music

  2. Translate notes into text Dynamo could understand

  3. Name the .wav files to match

    • C.wav

    • FS.wav

    • C_high.wav

    • etc.

After that, it was mostly:

Wire it together.
Hit Run.
See if Dynamo would actually play along.


How It Works

🎹 Piano Geometry

The piano keys were created using Cuboids in Dynamo.


🎼 Writing the Tune

The tune itself was written in text.

DateTime.Now was used to step through the ordered list of notes.


🐍 Python + Windows Sound

The note names were mapped to file locations in a Python node.

Windows’ winsound module was used to locate and play the corresponding .wav file for each note.


Upgrade

Since the original competition entry, the code has been upgraded so you can now play a piano inside Revit.

🔗 Scripts available on GitHub:
https://github.com/MoosiestMoose


Requirements

  • Windows operating system
    (required for winsound)

  • Dynamo Run Mode: Periodic

  • Sound files (.wav) stored locally

    • Each file contains a single piano note

    • Files must follow consistent naming

Example filenames:

C.wav
D.wav
E.wav
FS.wav
C_high.wav
D_high.wav


Step-by-Step Instructions

  1. Download the .wav files and store them locally.

  2. Open Dynamo.

  3. Open the “Py: play selected note” Python node.

  4. Enter the folder path where your .wav files are stored.

  5. Set Dynamo to Periodic.

  6. Pour a whiskey.

  7. Imagine it’s midnight on 31st December.