Создание музыки в консоли

Последнее обновление: 25.12.2016

Немало распространенных классов, которые мы используем каждый день чуть ли не в каждой программе, имеют малоизвестные, но тем не менее интересные функциональные возможности. Так, класс Console имеет интересный метод Console.Beep(Int32, Int32). Первый параметр представляет значение частоты сигнала, который нужно проигрывать в динамике. А второй параметр - длительность этого сигнала.

Поскольку все ноты в различных октавах имеют определенную частоту (например, нота До в первой октаве имеет частоту 261,6 герц), то мы можем с помощью комбинации методов Beep(Int32, Int32) создать целые мелодии. Правда, такие медодии будут звучать несколько примитивно, как, например, на рингтонах старых телефонов. Итак, создадим консольное приложение со следующим содержанием:

using System.Threading; //Для создания пауз в мелодии
class Program
{
    static void Main(string[] args)
    {
        refrenSolo();
        coupleSolo();
        refrenSolo();
    }
    //Jingle Bells
    static void refrenSolo()
    {
        Console.Beep(659, 300);
        Console.Beep(659, 300);
        Console.Beep(659, 300);
        Thread.Sleep(300);
        Console.Beep(659, 300);
        Console.Beep(659, 300);
        Console.Beep(659, 300);
        Thread.Sleep(300);
        Console.Beep(659, 300);
        Console.Beep(783, 300);
        Console.Beep(523, 300);
        Console.Beep(587, 300);
        Console.Beep(659, 300);
        Console.Beep(261, 300);
        Console.Beep(293, 300);
        Console.Beep(329, 300);
        Console.Beep(698, 300);
        Console.Beep(698, 300);
        Console.Beep(698, 300);
        Thread.Sleep(300);
        Console.Beep(698, 300);
        Console.Beep(659, 300);
        Console.Beep(659, 300);
        Thread.Sleep(300);
        Console.Beep(659, 300);
        Console.Beep(587, 300);
        Console.Beep(587, 300);
        Console.Beep(659, 300);
        Console.Beep(587, 300);
        Thread.Sleep(300);
        Console.Beep(783, 300);
        Thread.Sleep(300);
        Console.Beep(659, 300);
        Console.Beep(659, 300);
        Console.Beep(659, 300);
        Thread.Sleep(300);
        Console.Beep(659, 300);
        Console.Beep(659, 300);
        Console.Beep(659, 300);
        Thread.Sleep(300);
        Console.Beep(659, 300);
        Console.Beep(783, 300);
        Console.Beep(523, 300);
        Console.Beep(587, 300);
        Console.Beep(659, 300);
        Console.Beep(261, 300);
        Console.Beep(293, 300);
        Console.Beep(329, 300);
        Console.Beep(698, 300);
        Console.Beep(698, 300);
        Console.Beep(698, 300);
        Thread.Sleep(300);
        Console.Beep(698, 300);
        Console.Beep(659, 300);
        Console.Beep(659, 300);
        Thread.Sleep(300);
        Console.Beep(783, 300);
        Console.Beep(783, 300);
        Console.Beep(698, 300);
        Console.Beep(587, 300);
        Console.Beep(523, 600);
        Thread.Sleep(600);
    }
    static void coupleSolo()
    {
        Console.Beep(392, 300);
        Console.Beep(659, 300);
        Console.Beep(587, 300);
        Console.Beep(523, 300);
        Console.Beep(392, 600);
        Thread.Sleep(300 * 2);
        Console.Beep(392, 300);
        Console.Beep(659, 300);
        Console.Beep(587, 300);
        Console.Beep(523, 300);
        Console.Beep(440, 600);
        Thread.Sleep(600);
        Console.Beep(440, 300);
        Console.Beep(698, 300);
        Console.Beep(659, 300);
        Console.Beep(587, 300);
        Console.Beep(783, 600);
        Thread.Sleep(600);
        Console.Beep(880, 300);
        Console.Beep(880, 300);
        Console.Beep(783, 300);
        Console.Beep(622, 300);
        Console.Beep(659, 600);
        Thread.Sleep(600);
        Console.Beep(392, 300);
        Console.Beep(659, 300);
        Console.Beep(587, 300);
        Console.Beep(523, 300);
        Console.Beep(392, 600);
        Thread.Sleep(600);
        Console.Beep(392, 300);
        Console.Beep(659, 300);
        Console.Beep(587, 300);
        Console.Beep(523, 300);
        Console.Beep(440, 600);
        Thread.Sleep(600);
        Console.Beep(440, 300);
        Console.Beep(698, 300);
        Console.Beep(659, 300);
        Console.Beep(587, 300);
        Console.Beep(783, 600);
        Thread.Sleep(600);
        Console.Beep(880, 300);
        Console.Beep(783, 300);
        Console.Beep(698, 300);
        Console.Beep(587, 300);
        Console.Beep(523, 600);
        Thread.Sleep(600);
    }
}

Запустим программу на выполнение и услышим знакомую мелодию. А теперь еще немного мелодий.

Мелодия "В траве сидел кузнечик":

private static void Grasshoper()
{
    Console.Beep(440, 300);
    Console.Beep(330, 300);
    Console.Beep(440, 300);
    Console.Beep(330, 300);
    Console.Beep(440, 300);
    Console.Beep(415, 300);
    Console.Beep(415, 300);
    Thread.Sleep(600);
    Console.Beep(415, 300);
    Console.Beep(330, 300);
    Console.Beep(415, 300);
    Console.Beep(330, 300);
    Console.Beep(415, 300);
    Console.Beep(440, 300);
    Console.Beep(440, 300);
    Thread.Sleep(600);
    Console.Beep(440, 300);
    Console.Beep(494, 300);
    Console.Beep(494, 100);
    Console.Beep(494, 100);
    Console.Beep(494, 300);
    Console.Beep(494, 300);
    Console.Beep(523, 300);
    Console.Beep(523, 100);
    Console.Beep(523, 100);
    Console.Beep(523, 300);
    Console.Beep(523, 300);
    Console.Beep(523, 300);
    Console.Beep(494, 300);
    Console.Beep(440, 300);
    Console.Beep(415, 300);
    Console.Beep(440, 800);
}

В лесу родилась елочка.

private static void Tannenbaum()
{
	Console.Beep(247, 500);
	Console.Beep(417, 500);
	Console.Beep(417, 500);
	Console.Beep(370, 500);
	Console.Beep(417, 500);
	Console.Beep(329, 500);
	Console.Beep(247, 500);
	Console.Beep(247, 500);
	Console.Beep(247, 500);
	Console.Beep(417, 500);
	Console.Beep(417, 500);
	Console.Beep(370, 500);
	Console.Beep(417, 500);
	Console.Beep(497, 500);
	Thread.Sleep(500);
	Console.Beep(497, 500);
	Console.Beep(277, 500);
	Console.Beep(277, 500);
	Console.Beep(440, 500);
	Console.Beep(440, 500);
	Console.Beep(417, 500);
	Console.Beep(370, 500);
	Console.Beep(329, 500);
	Console.Beep(247, 500);
	Console.Beep(417, 500);
	Console.Beep(417, 500);
	Console.Beep(370, 500);
	Console.Beep(417, 500);
	Console.Beep(329, 500);
}

Миссия невыполнима:

private static void MissionImpossible()
{
	Console.Beep(784,150);
	Thread.Sleep(300);
	Console.Beep(784,150);
	Thread.Sleep(300);
	Console.Beep(932,150);
	Thread.Sleep(150);
	Console.Beep(1047,150);
	Thread.Sleep(150);
	Console.Beep(784,150);
	Thread.Sleep(300);
	Console.Beep(784,150);
	Thread.Sleep(300);
	Console.Beep(699,150);
	Thread.Sleep(150);
	Console.Beep(740,150);
	Thread.Sleep(150);
	Console.Beep(784,150);
	Thread.Sleep(300);
	Console.Beep(784,150);
	Thread.Sleep(300);
	Console.Beep(932,150);
	Thread.Sleep(150);
	Console.Beep(1047,150);
	Thread.Sleep(150);
	Console.Beep(784,150);
	Thread.Sleep(300);
	Console.Beep(784,150);
	Thread.Sleep(300);
	Console.Beep(699,150);
	Thread.Sleep(150);
	Console.Beep(740,150);
	Thread.Sleep(150);
	Console.Beep(932,150);
	Console.Beep(784,150);
	Console.Beep(587,1200);
	Thread.Sleep(75);
	Console.Beep(932,150);
	Console.Beep(784,150);
	Console.Beep(554,1200);
	Thread.Sleep(75);
	Console.Beep(932,150);
	Console.Beep(784,150);
	Console.Beep(523,1200);
	Thread.Sleep(150);
	Console.Beep(466,150);
	Console.Beep(523, 150);
}

Тема из звездных войн:

	private static void StarWars()
        {
            Console.Beep(300, 500);
            Thread.Sleep(50);
            Console.Beep(300, 500);
            Thread.Sleep(50);
            Console.Beep(300, 500);
            Thread.Sleep(50);
            Console.Beep(250, 500);
            Thread.Sleep(50);
            Console.Beep(350, 250);
            Console.Beep(300, 500);
            Thread.Sleep(50);
            Console.Beep(250, 500);
            Thread.Sleep(50);
            Console.Beep(350, 250);
            Console.Beep(300, 500);
            Thread.Sleep(50);
        }

Ну а эту мелодию должны знать все

    private static void SuperMario()
        {
            Console.Beep(659, 125);
            Console.Beep(659, 125);
            Thread.Sleep(125);
            Console.Beep(659, 125);
            Thread.Sleep(167);
            Console.Beep(523, 125);
            Console.Beep(659, 125);
            Thread.Sleep(125);
            Console.Beep(784, 125);
            Thread.Sleep(375);
            Console.Beep(392, 125);
            Thread.Sleep(375);
            Console.Beep(523, 125);
            Thread.Sleep(250);
            Console.Beep(392, 125);
            Thread.Sleep(250);
            Console.Beep(330, 125);
            Thread.Sleep(250);
            Console.Beep(440, 125);
            Thread.Sleep(125);
            Console.Beep(494, 125);
            Thread.Sleep(125);
            Console.Beep(466, 125);
            Thread.Sleep(42);
            Console.Beep(440, 125);
            Thread.Sleep(125);
            Console.Beep(392, 125);
            Thread.Sleep(125);
            Console.Beep(659, 125);
            Thread.Sleep(125);
            Console.Beep(784, 125);
            Thread.Sleep(125);
            Console.Beep(880, 125);
            Thread.Sleep(125);
            Console.Beep(698, 125);
            Console.Beep(784, 125);
            Thread.Sleep(125);
            Console.Beep(659, 125);
            Thread.Sleep(125);
            Console.Beep(523, 125);
            Thread.Sleep(125);
            Console.Beep(587, 125);
            Console.Beep(494, 125);
            Thread.Sleep(125);
            Console.Beep(523, 125);
            Thread.Sleep(250);
            Console.Beep(392, 125);
            Thread.Sleep(250);
            Console.Beep(330, 125);
            Thread.Sleep(250);
            Console.Beep(440, 125);
            Thread.Sleep(125);
            Console.Beep(494, 125);
            Thread.Sleep(125);
            Console.Beep(466, 125);
            Thread.Sleep(42);
            Console.Beep(440, 125);
            Thread.Sleep(125);
            Console.Beep(392, 125);
            Thread.Sleep(125);
            Console.Beep(659, 125);
            Thread.Sleep(125);
            Console.Beep(784, 125);
            Thread.Sleep(125);
            Console.Beep(880, 125);
            Thread.Sleep(125);
            Console.Beep(698, 125);
            Console.Beep(784, 125);
            Thread.Sleep(125);
            Console.Beep(659, 125);
            Thread.Sleep(125);
            Console.Beep(523, 125);
            Thread.Sleep(125);
            Console.Beep(587, 125);
            Console.Beep(494, 125);
            Thread.Sleep(375);
            Console.Beep(784, 125);
            Console.Beep(740, 125);
            Console.Beep(698, 125);
            Thread.Sleep(42);
            Console.Beep(622, 125);
            Thread.Sleep(125);
            Console.Beep(659, 125);
            Thread.Sleep(167);
            Console.Beep(415, 125);
            Console.Beep(440, 125);
            Console.Beep(523, 125);
            Thread.Sleep(125);
            Console.Beep(440, 125);
            Console.Beep(523, 125);
            Console.Beep(587, 125);
            Thread.Sleep(250);
            Console.Beep(784, 125);
            Console.Beep(740, 125);
            Console.Beep(698, 125);
            Thread.Sleep(42);
            Console.Beep(622, 125);
            Thread.Sleep(125);
            Console.Beep(659, 125);
            Thread.Sleep(167);
            Console.Beep(698, 125);
            Thread.Sleep(125);
            Console.Beep(698, 125);
            Console.Beep(698, 125);
            Thread.Sleep(625);
            Console.Beep(784, 125);
            Console.Beep(740, 125);
            Console.Beep(698, 125);
            Thread.Sleep(42);
            Console.Beep(622, 125);
            Thread.Sleep(125);
            Console.Beep(659, 125);
            Thread.Sleep(167);
            Console.Beep(415, 125);
            Console.Beep(440, 125);
            Console.Beep(523, 125);
            Thread.Sleep(125);
            Console.Beep(440, 125);
            Console.Beep(523, 125);
            Console.Beep(587, 125);
            Thread.Sleep(250);
            Console.Beep(622, 125);
            Thread.Sleep(250);
            Console.Beep(587, 125);
            Thread.Sleep(250);
            Console.Beep(523, 125);
            Thread.Sleep(1125);
            Console.Beep(784, 125);
            Console.Beep(740, 125);
            Console.Beep(698, 125);
            Thread.Sleep(42);
            Console.Beep(622, 125);
            Thread.Sleep(125);
            Console.Beep(659, 125);
            Thread.Sleep(167);
            Console.Beep(415, 125);
            Console.Beep(440, 125);
            Console.Beep(523, 125);
            Thread.Sleep(125);
            Console.Beep(440, 125);
            Console.Beep(523, 125);
            Console.Beep(587, 125);
            Thread.Sleep(250);
            Console.Beep(784, 125);
            Console.Beep(740, 125);
            Console.Beep(698, 125);
            Thread.Sleep(42);
            Console.Beep(622, 125);
            Thread.Sleep(125);
            Console.Beep(659, 125);
            Thread.Sleep(167);
            Console.Beep(698, 125);
            Thread.Sleep(125);
            Console.Beep(698, 125);
            Console.Beep(698, 125);
            Thread.Sleep(625);
            Console.Beep(784, 125);
            Console.Beep(740, 125);
            Console.Beep(698, 125);
            Thread.Sleep(42);
            Console.Beep(622, 125);
            Thread.Sleep(125);
            Console.Beep(659, 125);
            Thread.Sleep(167);
            Console.Beep(415, 125);
            Console.Beep(440, 125);
            Console.Beep(523, 125);
            Thread.Sleep(125);
            Console.Beep(440, 125);
            Console.Beep(523, 125);
            Console.Beep(587, 125);
            Thread.Sleep(250);
            Console.Beep(622, 125);
            Thread.Sleep(250);
            Console.Beep(587, 125);
            Thread.Sleep(250);
            Console.Beep(523, 125);
            Thread.Sleep(625);
        }

"К Элизе" Бетховена:

private static void Beethoven()
        {
            Console.Beep(659, 120);
            Thread.Sleep(130);
            Console.Beep(622, 120);
            Thread.Sleep(130);

            Console.Beep(659, 120);
            Thread.Sleep(130);
            Console.Beep(622, 120);
            Thread.Sleep(130);
            Console.Beep(659, 120);
            Thread.Sleep(130);
            Console.Beep(494, 120);
            Thread.Sleep(130);
            Console.Beep(587, 120);
            Thread.Sleep(130);
            Console.Beep(523, 120);
            Thread.Sleep(130);

            Console.Beep(440, 120);
            Thread.Sleep(150);
            Console.Beep(262, 120);
            Thread.Sleep(130);
            Console.Beep(330, 120);
            Thread.Sleep(130);
            Console.Beep(440, 120);
            Thread.Sleep(130);

            Console.Beep(494, 120);
            Thread.Sleep(150);
            Console.Beep(330, 120);
            Thread.Sleep(130);
            Console.Beep(415, 120);
            Thread.Sleep(130);
            Console.Beep(494, 120);
            Thread.Sleep(130);

            Console.Beep(523, 120);
            Thread.Sleep(150);
            Console.Beep(330, 120);
            Thread.Sleep(130);
            Console.Beep(659, 120);
            Thread.Sleep(130);
            Console.Beep(622, 120);
            Thread.Sleep(130);

            Console.Beep(659, 120);
            Thread.Sleep(130);
            Console.Beep(622, 120);
            Thread.Sleep(130);
            Console.Beep(659, 120);
            Thread.Sleep(130);
            Console.Beep(494, 120);
            Thread.Sleep(130);
            Console.Beep(587, 120);
            Thread.Sleep(130);
            Console.Beep(523, 120);
            Thread.Sleep(130);

            Console.Beep(440, 120);
            Thread.Sleep(150);
            Console.Beep(262, 120);
            Thread.Sleep(130);
            Console.Beep(330, 120);
            Thread.Sleep(130);
            Console.Beep(440, 120);
            Thread.Sleep(130);

            Console.Beep(494, 120);
            Thread.Sleep(150);
            Console.Beep(330, 120);
            Thread.Sleep(130);
            Console.Beep(523, 120);
            Thread.Sleep(130);
            Console.Beep(494, 120);
            Thread.Sleep(150);
            Console.Beep(440, 120);
        }

И на последок Happy Birthday:

	private static void HappyBirthday()
        {
            Thread.Sleep(2000);
            Console.Beep(264, 125);
            Thread.Sleep(250);
            Console.Beep(264, 125);
            Thread.Sleep(125);
            Console.Beep(297, 500);
            Thread.Sleep(125);
            Console.Beep(264, 500);
            Thread.Sleep(125);
            Console.Beep(352, 500);
            Thread.Sleep(125);
            Console.Beep(330, 1000);
            Thread.Sleep(250);
            Console.Beep(264, 125);
            Thread.Sleep(250);
            Console.Beep(264, 125);
            Thread.Sleep(125);
            Console.Beep(297, 500);
            Thread.Sleep(125);
            Console.Beep(264, 500);
            Thread.Sleep(125);
            Console.Beep(396, 500);
            Thread.Sleep(125);
            Console.Beep(352, 1000);
            Thread.Sleep(250);
            Console.Beep(264, 125);
            Thread.Sleep(250);
            Console.Beep(264, 125);
            Thread.Sleep(125);
            Console.Beep(2642, 500);
            Thread.Sleep(125);
            Console.Beep(440, 500);
            Thread.Sleep(125);
            Console.Beep(352, 250);
            Thread.Sleep(125);
            Console.Beep(352, 125);
            Thread.Sleep(125);
            Console.Beep(330, 500);
            Thread.Sleep(125);
            Console.Beep(297, 1000);
            Thread.Sleep(250);
            Console.Beep(466, 125);
            Thread.Sleep(250);
            Console.Beep(466, 125);
            Thread.Sleep(125);
            Console.Beep(440, 500);
            Thread.Sleep(125);
            Console.Beep(352, 500);
            Thread.Sleep(125);
            Console.Beep(396, 500);
            Thread.Sleep(125);
            Console.Beep(352, 1000);
        }
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850