Merry Christmas in C#

Passend zur Weihnachtszeit ein kurzer C# Code der uns einen bunten Weihnachtsbaum in der Console zeichnet, und uns durch Console.Beep()
ein "Jingle Bells" piept.
Die Frequenzen lassen sich leicht Noten zuordnen und laden zum experimentieren ein.
            

using System;
using System.Threading;

class Program
{
    static void Main(string[] args)
    {
        int C4 = 261;
        int D4 = 293;
        int E4 = 329;
        int C5 = 523;
        int D5 = 587;
        int E5 = 659;
        int F5 = 698;
        int G5 = 783;

        Random rand = new Random();
        int treeColor;
        int treeHeight = 12;
        int w = treeHeight - 2;
        
        ConsoleColor[] colors = (ConsoleColor[])Enum.GetValues(typeof(ConsoleColor));

        Console.ForegroundColor = ConsoleColor.Yellow;
        Console.WriteLine("*".PadLeft(w + 9));

        int i = 0;
        while (i <= w)
        {
            treeColor = rand.Next(0, colors.Length);
            Console.ForegroundColor = colors[treeColor];
            Console.WriteLine(new string('^', i++ * 2 + 1).PadLeft(w + i + 8));
        }
        Console.ForegroundColor = ConsoleColor.Gray;
        Console.WriteLine(new string('|', 3).PadLeft(w + 10));
        Console.ForegroundColor = ConsoleColor.Green;
        Console.WriteLine("Frohe Weihnachten wuenscht kleincodiert.at");

        int beepLength = 275;

        for (int j = 0; j < 3; j++)
        {
            Console.Beep(E5, beepLength);
            Console.Beep(E5, beepLength);
            Console.Beep(E5, beepLength);

            Thread.Sleep(beepLength);

            Console.Beep(E5, beepLength);
            Console.Beep(E5, beepLength);
            Console.Beep(E5, beepLength);

            Thread.Sleep(beepLength);

            Console.Beep(E5, beepLength);
            Console.Beep(G5, beepLength);
            Console.Beep(C5, beepLength);
            Console.Beep(D5, beepLength);
            Console.Beep(E5, beepLength);
            Console.Beep(C4, beepLength);
            Console.Beep(D4, beepLength);
            Console.Beep(E4, beepLength);
            Console.Beep(F5, beepLength);
            Console.Beep(F5, beepLength);
            Console.Beep(F5, beepLength);

            Thread.Sleep(beepLength);

            Console.Beep(F5, beepLength);
            Console.Beep(E5, beepLength);
            Console.Beep(E5, beepLength);

            Thread.Sleep(beepLength);

            Console.Beep(E5, beepLength);
            Console.Beep(D5, beepLength);
            Console.Beep(D5, beepLength);
            Console.Beep(E5, beepLength);
            Console.Beep(D5, beepLength);

            Thread.Sleep(beepLength);

            Console.Beep(G5, beepLength);

            Thread.Sleep(beepLength);
        }
    }
}

Unser Baum sieht in dem Fall (je nach Zufallsfarbe) so aus:
ASCII Christmas Tree