Комментарии 18
Ностальгия! Писал когда-то то же самое на Квик Бейсике.
Идея хорошая, реализация удовлетворительная, но вам ещё чуть-чуть стоит подучить программирование. Используйте switch вместо вереницы if-else, не балуйтесь с First() где он не нужен, избавьтесь от рекурсии в Action() - это однозначный краш при переполнении стека, добавьте проверки вводимых данных на каждом шагу. И да, продолжайте писать то, что вам нравится!
Ваша форма записи напомнила мне редактор мелодий на Nokia 3310.
Потенциальная хвостовая рекурсия в последнем длинном листинге ногу не отстрелит в дебаге?
Знаете, как мгновенно распознать код начинающего? По плохому форматированию.
Используйте автоформатирование кода, код станет намного читабельней.
Хорошая статья, понравилась! Обязательно потренируюсь с "бипером" на досуге.
Метод Actions лучше переделать. Можно ведь использовать обычный цикл. Рекурсия там ни к чему. Тем более, что стек вызовов будет увеличиваться с каждой нажатой клавишей. Вряд ли получите переполнение стека, но все же...
А возможно написать драйвер под современную винду, чтобы она нормально играла спикером? Или ещё лучше, чтобы через спикер, установленный как системное аудиоустройство, выводились все звуки (есть ведь способ заставить спикер выводить wave-звук). Забавно было бы послушать свою старую музыку с хрипами через спикер. Причём, чтоб было канонично, перепаять пьезопищалку на маленькую динамическую головку на 1 Вт, 8 Ом, как было во всяких компах примерно до третьих пней. Все эмуляторы, вывод через тракт звуковой карты, - это всё не то.
Упрощаем создание мелодий C# Console.Beep. Нотная запись по-человечески, PC Speaker синтезатор