Чтобы написть синтезатор на С++ достаточно знать всего 2 ключевых слова

Как известно, программировать на С++ очень весело и просто, если при этом использовать хорошую библиотеку, которая делает создание простых вещей простым а сложных — возможным (да, конечно же я говорю об Arctic Engine)

Ноты основной октавы и соответствующие им коды.
Ноты основной октавы и соответствующие им коды.

Рассмотрим программу «синтезатор», на написание которой у вас уйдет всего пара минут, после чего вы сможете называть себя программистом! Программа, которая обрабатывает нажатия кнопок Z, X, С так будто это клавиши синтезатора ДО, РЕ, МИ, состоит из 12 строк:

1 s: 2 if (IsKey("Z")) { 3 Beep(0.25, 0); 4 } 5 if (IsKey("X")) { 6 Beep(0.25, 2); 7 } 8 if (IsKey("C")) { 9 Beep(0.25, 4); 10 } 11 Show(); 12 goto s;

Блок-схему этой программы можно изобразить следующим образом:

Блок-схема программы "Синтезатор"
Блок-схема программы "Синтезатор"

Рассмотрим что делает каждая строка программы:

1 s:

Строка 1 ничего не делает, но в этой строке стоит метка с именем s. На эту метку можно переходить при помощи goto.

2 if (IsKey("Z")) {

В строке 2 при помощи функции IsKey() определяется, нажата ли кнопка Z клавиатуры. Если кнопка нажата, функция возвращает значение «истина» и выполняется код, заключенный в фигурные скобки (открывающаяся скобка в конце строки 2 и закрывающаяся в строке 4.)

3 Beep(0.25, 0);

Код в строке 3 проигрывает на протяжении 0.25 секунд ноту с числовым кодом 0. Соответствие числовых кодов нотам основной октавы приведено выше на картинке, нота с кодом 0 это нота «ДО».

4 }

Код в строке 4 сам по себе ничего не делает, закрывающаяся фигурная скобка обозначает завершение блока кода, начавшегося в конце строки 2.

5 if (IsKey("X")) {

В строке 5 снова используется функция IsKey(), на этот раз проверяется, нажата ли кнопка X. Если нажата, то функция возвращает значение «истина» и выполняется код, заключенный в фигурные скобки (открывающаяся скобка в конце строки 5 и закрывающаяся в строке 7.)

6 Beep(0.25, 2);

Код в строке 6 проигрывает на протяжении 0.25 секунд ноту с числовым кодом 2, то есть «РЕ» основной откавы.

7 }

Фигурная скобка в строке 7 обозначает завершение блока кода, начавшегося в конце строки 5.

8 if (IsKey("C")) {

В строке 8 в третий раз используется функция IsKey(), проверяется, нажата ли кнопка C. Если нажата, то функция возвращает значение «истина» и выполняется код, заключенный в фигурные скобки (открывающаяся скобка в конце строки 8 и закрывающаяся в строке 10.)

9 Beep(0.25, 4);

Код в строке 9 проигрывает на протяжении 0.25 секунд ноту «МИ», то есть ноту с числовым кодом 4.

10 }

Фигурная скобка в строке 10 завершает блок кода начавшийся в строке 8.

11 Show();

Функция Show() выводит на экран подготовленное изображение и получает в программу обновленное состояние клавиатуры и мышки.

12 goto s;

Эта команда безусловного перехода на метку s приводит к тому, что выполнение программы продолжается с того места, в котором стоит метка s, то есть со строки 1.

Вот так, используя всего 2 ключевых слова можно написать на С++ синтезатор. Да, конечно, у этого синтезатора всего 3 кнопки, но я не сомневаюсь, что вы с легкостью допишете еще несколько строк кода и ваш синтезатор получит столько кнопок сколько вы пожелаете.

1212
6 комментариев

А где бемоли?🤔 (Спрашиваю скорее как музыкант)

ДО-диез это ведь РЕ-бемоль, это же энгармонизм

Конечно прикольно ,но нет допустим косинусоидальной волны ,волны square